-
Notifications
You must be signed in to change notification settings - Fork 284
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
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.
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_type
andbuild_shared_libs
- Always check for the longest possible string when checking for a config option. So
-DFoo=bar
notDFoo=bar
just 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']
wherefoo
is fromextra_options
. @boegel insisted thatself.cfg.get(
foo, default)
is used so deriving classes not calling the baseextra_options
don'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 theKeyError
in general). Check with @boegel - Replace
self.dynamic
byself.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. |
…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