From 7a9381dd4dffd7bc803bbd9baf7b5df6ff8e3c62 Mon Sep 17 00:00:00 2001 From: hategan Date: Wed, 19 Feb 2025 14:46:16 -0800 Subject: [PATCH 1/2] mpirun, on some systems, can print "helpful messages". Except they aren't helpful for us trying to run automated systems with predictable behavior. --- src/psij/launchers/scripts/mpi_launch.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/psij/launchers/scripts/mpi_launch.sh b/src/psij/launchers/scripts/mpi_launch.sh index 7a76d108..ff4692d8 100644 --- a/src/psij/launchers/scripts/mpi_launch.sh +++ b/src/psij/launchers/scripts/mpi_launch.sh @@ -14,7 +14,7 @@ pre_launch set +e if [ "$IS_OPENMPI" == "1" ]; then - mpirun --oversubscribe -n $_PSI_J_PROCESS_COUNT "$@" 1>$_PSI_J_STDOUT 2>$_PSI_J_STDERR <$_PSI_J_STDIN + 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 From c2954fbe6542cb9122f9933ef088e6d695d279f0 Mon Sep 17 00:00:00 2001 From: hategan Date: Thu, 20 Feb 2025 09:53:52 -0800 Subject: [PATCH 2/2] Fixed -q on mpirun from Open MPI 5. --- src/psij/launchers/scripts/mpi_launch.sh | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/psij/launchers/scripts/mpi_launch.sh b/src/psij/launchers/scripts/mpi_launch.sh index ff4692d8..153fc2b6 100644 --- a/src/psij/launchers/scripts/mpi_launch.sh +++ b/src/psij/launchers/scripts/mpi_launch.sh @@ -6,14 +6,20 @@ _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