-
Notifications
You must be signed in to change notification settings - Fork 12
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
Ir generation is too slow. #227
Comments
Hi @ecossevin this one looks actually pretty loaded, so let me start with a few general comments:
Nevertheless, the ratio fparser's AST processing to Loki's IR generation seems off (I get a total of ~68s, with 8s for FP AST and 60s for Loki IR), which does indeed hint at a severe performance problem in our frontend (usually I'd expect roughly a 1-to-1 ratio). I've tracked this down to some very inefficient searches in some utility passes and a sub-optimal feature in our So, many thanks for flagging this and please hold tight - we were aware of some sub-optimalities from the early days, but I wasn't aware how bad this one was. 🙏 |
Hi, |
Hi, so after some digging I've managed to drop the frontend processing times for this example quite a bit - for a detailed description of the problem please see PR #229 . Taking a slightly different version of the source file linked in the issue description, I get the following timings:
vs.
There's probably a little more that can be done for the ~6s call to |
Ok, following the merges of PRs #241 #242 and #245 we now have the FP-frontend parsing time for this pathological file down to this:
This might not fix the "many small, unscoped parses" issue (discussed offline), but I think this is enough for this one to be closed. |
When parsing apl_arpege_parallel.F90 (https://github.com/pmarguinaud/IAL/blob/openacccpglagstack84/arpifs/phys_dmn/apl_arpege_parallel.F90) with
Sourcefile.from_file("apl_arpege_parallel.F90)"
, it takes about 50 seconds, which is far too long for what I'm doing.Is there any way of running it faster please?
The text was updated successfully, but these errors were encountered: