Extreme slowdown in MET executables built with GNU compilers vs Intel #2800
Replies: 2 comments 4 replies
-
Just to follow-up with more information: I was also able to test a version of MET 11.1.1 built with GNU 13.3 compilers, and observed nearly identical slowdowns as were observed with GNU 9.2, so I don't believe this to be a version-specific problem. |
Beta Was this translation helpful? Give feedback.
-
HI @mkavulich. Thank you for bringing this to our attention. As you noted we would usually expect GNU to be a bit slower, but I think the slowdown you observed is interesting. I was not aware of this behavior, and I don't believe others on the team are either. You are correct that the builds available in /config/met are all built with Intel. I'd be happy to install a version in /contrib built with GNU. Would you like me to install version 11.1.1? Is there a specific version of GNU you'd like me to use - 13.2 or 9.2? |
Beta Was this translation helpful? Give feedback.
-
The UFS SRW App is using MET builds on Hera via spack-stack. On Hera specifically there are builds of both Intel and GNU software stacks, so some tests are run using GNU and others with Intel to ensure good coverage of different configurations. We recently noticed that, for MET 11.1 (it may affect other versions too, this is just the only version we have built right now), the Intel-compiled MET tools (specifically Intel 2021.5) are significantly faster than the GNU-compiled MET tools (specifically, GNU 9.2.0). I understand that due to optimization differences you would usually expect GNU to be a bit slower, but here we are seeing a nearly 2-times slowdown for most tools, and for GenEnsProd specifically it is 5-6 times slower! This seems like a way bigger performance hit than I would expect from just compiler differences.
I am curious if this behavior is known, or is perhaps some problem specific to our particular configuration. Just a brief look at the build logs (on Hera:
/scratch1/NCEPDEV/nems/role.epic/spack-stack/spack-stack-1.6.0/envs/upp-addon-env/log.install.met
) indicates pretty standard compile flags (no -O0 or anything like that), but I was not the person who built this stack and I have not dug into it deeply. It would be nice to find a solution because some of our fairly simple ensemble verification tests are taking hours to run with GNU, and we'd rather not just stop running these tests. It would also be great if there were a GNU build by the MET team we could test out to see if we observe the same behavior; I know there are shared builds available in/contrib/met/
but as far as I can tell those are all built with Intel.Let me know if there's any more details I should provide. Thanks!
Beta Was this translation helpful? Give feedback.
All reactions