diff --git a/src/psij/launchers/scripts/mpi_launch.sh b/src/psij/launchers/scripts/mpi_launch.sh index 7a76d108..153fc2b6 100644 --- a/src/psij/launchers/scripts/mpi_launch.sh +++ b/src/psij/launchers/scripts/mpi_launch.sh @@ -6,15 +6,21 @@ _PSI_J_PROCESS_COUNT="$1" shift IS_OPENMPI=0 -if mpirun -version | grep "Open MPI" >/dev/null 2>&1; then +IS_OPENMPI_5=0 +if mpirun -version | grep "(Open MPI) 5" >/dev/null 2>&1; then + IS_OPENMPI_5=1 +elif mpirun -version | grep "Open MPI" >/dev/null 2>&1; then IS_OPENMPI=1 fi pre_launch set +e -if [ "$IS_OPENMPI" == "1" ]; then +if [ "$IS_OPENMPI_5" == "1" ]; then + # there is no -q parameter in OMPI 5 mpirun --oversubscribe -n $_PSI_J_PROCESS_COUNT "$@" 1>$_PSI_J_STDOUT 2>$_PSI_J_STDERR <$_PSI_J_STDIN +elif [ "$IS_OPENMPI" == "1" ]; then + mpirun --oversubscribe -q -n $_PSI_J_PROCESS_COUNT "$@" 1>$_PSI_J_STDOUT 2>$_PSI_J_STDERR <$_PSI_J_STDIN else mpirun -n $_PSI_J_PROCESS_COUNT "$@" 1>$_PSI_J_STDOUT 2>$_PSI_J_STDERR <$_PSI_J_STDIN fi