-
Notifications
You must be signed in to change notification settings - Fork 17
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
Optimising the computation time for the running of the RG equations #53
Comments
I haven't yet tried to implement it, but this is more or less what I think it could be done (this is mostly a note to myself, I will try it in the following days):
|
Looks like one can't add new things to the |
Actually, most of the calls come from |
Hi @Jorge-Alda, the reduction of the computation time of smelli is actually an important point, on which I have been working in several directions (reducing the time needed for computing theory predictions as well as RG running and SMEFT-WET matching), but it will still take some time until these optimizations are done and will be made available in smelli. Concerning your suggestions, please note that |
Regarding import wilson
import flavio
w = wilson.Wilson({'lq1_3323': -1e-7}, scale=1e3, eft="SMEFT", basis="Warsaw")
rd_np = flavio.np_prediction("Rtaul(B->Dlnu)", w)
print(w._cache) If you use a Python debugger and set a breakpoint here, you will see indeed that rds_np = flavio.np_prediction("Rtaul(B->D*lnu)", w) then If you want a working cache at the I can confirm that my code reduces the computation time of |
Nope, that's wrong. The problem, I believe, is that, to make flavio (which predates wilson) compatible with |
I would be interested in reducing
smelli
's computation times, and I think that the running of the RG equations and matching could be an easy starting point.For reference, I am using the following Wilson coefficients:
The computation of
.log_likelihood_dict()
with the default likelihoods takes 9.61s in my computer.wilson.run.smeft.rge.smeft_evolved
is called 23 times, taking a total of 1.06s. All of the calls except one had the same arguments, they were from the NP scale down to the EW scale (the other one corresponded to the Higgs mass), so it would be possible to compute it once and cache the result.wilson.match.smeft.match_all
is called 21 times, taking a total of 0.39s. Again, all the calls have the same arguments, the matching is always performed at the EW scale, so it would be possible to cache it.wilson.run.wet.classes.WETrunner.run
is called 217 times, taking a total of 0.83s. But only 10 different scales were used, so cacheing would also be helpful.A rough estimate, assuming that the SMEFT running is called twice, the matching once and the WET running ten times, it would be a reduction by 2.13s, a 22% of the total computation time.
The text was updated successfully, but these errors were encountered: