Skip to content

Commit 0c849aa

Browse files
authored
ci: add --bind-to none to Phoenix syscheck smoke-test (fixes GPU-node MPI bind failure) (#1834)
1 parent b44c811 commit 0c849aa

1 file changed

Lines changed: 8 additions & 1 deletion

File tree

.github/workflows/common/build.sh

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,16 @@ source .github/scripts/retry-build.sh
4141
# aborts in MPI_Init ("OPAL ERROR: Unreachable in file ext3x_client.c"). mpirun
4242
# is unaffected, and it is how MFC launches every binary anyway. Output is left
4343
# on stdout so a future failure is diagnosable from the CI log.
44+
#
45+
# --bind-to none is required, not cosmetic: on a busy GPU node SLURM hands the job
46+
# an offset/partial cpuset (e.g. cores 32-47), and Open MPI's default --bind-to
47+
# core then dies with "hwloc_set_cpubind Error for bitmap" before the binary even
48+
# starts. The run templates, coverage_build.py and preflight.sh all already pass
49+
# it; this smoke-test was the lone launch that did not, and it red-crossed jobs
50+
# that backfilled onto shared GPU nodes.
4451
validate_cmd=""
4552
if [ "$job_cluster" = "phoenix" ]; then
46-
validate_cmd='syscheck_bin=$(find build/install -name syscheck -type f 2>/dev/null | head -1); [ -z "$syscheck_bin" ] || mpirun -np 1 "$syscheck_bin"'
53+
validate_cmd='syscheck_bin=$(find build/install -name syscheck -type f 2>/dev/null | head -1); [ -z "$syscheck_bin" ] || mpirun --bind-to none -np 1 "$syscheck_bin"'
4754
fi
4855

4956
# --- Variant selection ---

0 commit comments

Comments
 (0)