Is asynchronous prefetching implemented in windows?

I am using root release 5.34/01 on windows platform. I cannot seem to get the asynchronouse prefetching to work as described in … notes.html. - perhaps its a platform issue? Thanks

Hi Ed,

The new asynchronous prefetching code in conjunction with the TTreeCache should be platform independent. What issue are you seeing?



I seem to have failed enabling asynchronous prefetching as well.

I’ve tried in Linux with ROOT 5.34 and 6.02. The test was reading a TTree from a local file on a quad core machine. For each event a simple loop was executed which used about the same amount of CPU as the file reading. The input file had a size of about 700MB and I’ve set the cache to 10MB.

From the following call I was expecting the real time to be reduced by a factor of 2 and a CPU usage of about 200% during the job:

Unfortunately, I could not observe any effect.

Maybe I was looking for the wrong thing. How should asynchronous prefetching show up?

Would it otherwise be possible to provide a working example?


Hi Daniel,

The asynchronous prefetching only function is to download/load the bytes from the file in parallel. You will see the biggest gain when the link to the (remote) disk is slow.

In particular it does not unzip the basket nor unstream the object asynchronously. I.e. for a local disk, I expect only very small difference in total run-time and in all case, I expect almost no CPU usage increase (as the extra thread sole job is to request and wait for the raw data from the file).


PS. To Speed-up analysis, you may want to look into using PROOF-lite to enable the use of multiple core.