-
Notifications
You must be signed in to change notification settings - Fork 306
rewrite GROMACS easyblock to build all four variations in the same build #1991
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
rewrite GROMACS easyblock to build all four variations in the same build #1991
Conversation
…ild. single precision without MPI, single precision with MPI, double precision without MPI, double precision with MPI. Change the default for double_precision from False to None And a bunch of other changes.
Flamefire
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
General:
- Needs rebase on master, especially as CMakeMake supports
build_typeandbuild_shared_libs - Always check for the longest possible string when checking for a config option. So
-DFoo=barnotDFoo=barjust to avoid false positives, the extra dash doesn't hurt but makes it safer, even though only slightly - Check for uses of
self.cfg['foo']wherefoois fromextra_options. @boegel insisted thatself.cfg.get(foo, default)is used so deriving classes not calling the baseextra_optionsdon't make this throw aKeyError. However as this EB is unlikely to be derived from, I'd say this is OK especially here (I personally prefer theKeyErrorin general). Check with @boegel - Replace
self.dynamicbyself.cfg['build_shared_libs'], see note - Handle CUDA vs double in 1 place, e.g.
build_all_steps. BTW: Is this a limitation of GROMACS? CUDA generally can do double just fine. Maybe this doesn't apply anymore?
I'm not to confident on the multi-step builds, so comments are mostly general and CMake specific.
|
Attacking the comments from @Flamefire piece by piece... |
Update coment on CUDA with double precision Fix typo in comment
…incrementing in the loop
|
Reg "Replace self.dynamic by self.cfg['build_shared_libs']" perhaps later. The dynamic flag comes from the cray toolchain and self.dynamic been hijacked a bit and I need to be able to enforce it to be on for later versions. I can look at that later. |
|
Reg "Handle CUDA vs double in 1 place, e.g. build_all_steps", haven't look at what i can do in that. Can look again later, leaving it alone right now. |
…cs throughout. Makes the code cleaner.
…earching for mpiexec.
…variants_to_build
…ilding these variants"
… get "make install install" for the >= 5 versions.
Also restore runtest at the end of extension_step
|
Retested extensively with a whole range of easyconfigs, old and new, works like a charm. Thanks a lot @akesandgren! |
single precision without MPI, single precision with MPI,
double precision without MPI, double precision with MPI.
Change the default for double_precision from False to None
And a bunch of other changes.
This supersedes #1987