Rework ekobox.apply#415
Conversation
this is a good point, because in the other PR also the dumping was parallelized, |
|
If the bottleneck is writting the files it should be easily solvable as well. 1000 files are not that many and I don't think Fortran should be much faster. What do you need me to test @felixhekhorn ? Just try to use evolven3fit with this branch? I guess in order to use this branch we need to regenerate ekos from scratch? I'm getting the following error: errorWhere |
well it was just a conjecture, so to be proven. However, if that turns out true I can not see an easy solution ... also keep in mind that a single replica is 1.6MB, which is not a small amount I'd say ...
just plain running is not sufficient as the program flow will need to be adjusted: use
this specific case is a consequence the breaking change in #292 ; The easy solution is to regenerate the ekos, but then the question is do we need to provide an upgrade tool?
for that matter: I'm surprised about the v0.13 here - can you read that with v0.14 which is our latest tag? |
Yes, please. Otherwise we need to regenerate all ekos for all theories :___
If it was quick in Fortran I'm sure we can find a way. I see the by-block separation is also done per-replica and that could be vectorized as well (that can be done mostly in the evolven3fit, although some features of eko are used). |
|
I created a new eko for theory 40_000_000 and tested this branch with it (with a few changes to evolven3fit). I need to test that the numbers have not changed and all that* but it went from 20 minutes to about 2 minutes ^^ so this is a success! (the writting is still done sequentially and there's a few things that could be improved there still, I think the writting might now be taking a good chunck of those 2 minutes left). *and this is not trivial because turns out we never updated the ekos in the 4.0 theories with the few fixes since... most importantly, they are not starting at Q=1 GeV |
|
we will need to fix the tutorial https://eko.readthedocs.io/en/latest/overview/tutorials/pdf.html#Method-1:-Using-apply_pdf |
Closes #408
einsuminstructions, which are now"ajbk,rbk->raj".evolven3fitside? 😇apply.apply_grids, which accepts an EKO and a 3D tensor sorted(replica, flavor, xgrid), which is hopefully what you wanted.genpdfutilities, as the writing of replica has to be done replica by replica. Actually now I wonder, if the performance bottleneck is/was really the EKO contraction, or is it rather the writing of the LHAPDF files? as is well known writing files is expensive and I even expect a major increase in time between Python (eko) and Fortran (apfel)apply.apply_pdfhas changed (evolven3fitis currently using this function, but as said above it should switch toapply.apply_grids) - effectively this is "transposed" on the first two "dimensions". However, I think I prefer this as then it is easier to discard errors.