What if the user explicitly requests a non-MPI compiler for an MPI build? #335
hiker
started this conversation in
Discussion
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
That's mostly a question for an upcoming PR: I have added support to specify in the BuildConfiguration if a build is MPI or not (same for openmp, though as far as I can tell all compilers nowadays support openmp). If you rely on default compilers, the ToolRepository will make sure that you get an MPI-enabled compiler (e.g. you can set
intel-classic
as default-compiler-suite, when you then ask for the default Fortran compiler, you will get (say)mpif90
as wrapper aroundifort
).But the user can explicitly enforce a certain compiler, and atm I assume 'the user is always right' and don't reject this in this case. My idea is that it could (for whatever reason) be possible that the user uses (say)
ifort
directly, and adds the required include paths explicitly (same for the linker). That was actually done with the original LFRic make build scripts if I am not mistaken (since the compiler name was used to pick the right set of default flags, so you couldn't usempif90
).This is not required with the new Fab builds anymore (since it can distinguish between mpif90 wrapper for ifort and gfortran, thanks to the new versioning handling).
So, should we verify that a user is right (i.e. that an MPI-enabled compiler is used in an MPI build)?
Beta Was this translation helpful? Give feedback.
All reactions