Set MPI-executable for ParFlow to $SLURM_SRUN when Slurm#90
Conversation
This is needed when GCC+OpenMPI is used. This is tested on JURECA.
With Intel+ParaStationMPI this already went right; there is no effect
when compiling with Intel LLVM. It only has effect if ${SLURM_SRUN} is
set, which means it is a Slurm system (as is already assumed).
Resolves: #87
|
The only additional assumption, I can think of, is that some system where |
|
Only here I found a case where it was set. This is for a specific machine (same for two other NERSC machines). Instead of |
|
It's not okay. On Marvin it fails with this message: whereas
WDYT? |
|
How about this solution:
|
|
I think I need to if(JSC)
set(MPIEXEC_EXECUTABLE "${SLURM_SRUN}")
endif()in How do I properly check if I'm on JSC hardware? |
It's best to keep the CMake scripts as system-agnostic as possible. All machine-specific settings should be configured thru the environment files (that's why they exist). In this case you can set |
|
I've done this in 30bfbcb. But I cannot reproduce the original problem anymore. I went back to |
|
This or some variant (based on above comments) should be merged if it helps on Marvin and does not break running elsewhere especially JSC. If this is not the case or difficult, please close this PR. Jan Martin and Gayatri could be involved. |
|
@mvhulten the change looks harmless to me; moreover having the EDIT: Also @mvhulten you can remove the "draft" status of this PR if you wish this to be reviewed and merged soon.. otherwise I would just assume that this PR is not ready for review yet |
|
Will do, I'm testing changes. |
Set this in machine environment file and do not set everywhere to $SLURM_SRUN. On JSC machines srun is used, but on Marvin mpirun must be used. The latter requirement may relate to the missing or incomplete support of PMIx on Marvin.
|
Runtime is not tested on Marvin, but we know that running with Please squash and merge with the commit message of the latest commit. |
This is needed when GCC+OpenMPI is used. This is tested on JURECA.
With Intel+ParaStationMPI this already went right; there is no effect when compiling with Intel LLVM. It only has effect if ${SLURM_SRUN} is set, which means it is a Slurm system (as is already assumed).
Resolves: #87
Replaces: #88