-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rework ekobox.apply #415
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: error
Where |
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
einsum
instructions, which are now"ajbk,rbk->raj"
.evolven3fit
side? 😇apply.apply_grids
, which accepts an EKO and a 3D tensor sorted(replica, flavor, xgrid)
, which is hopefully what you wanted.genpdf
utilities, 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_pdf
has changed (evolven3fit
is 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.