Skip to content

Commit 2eb1b4f

Browse files
committed
Fix MPI include path for Ubuntu
1 parent 3a3e92b commit 2eb1b4f

File tree

2 files changed

+52
-15
lines changed

2 files changed

+52
-15
lines changed

auto_hpl/build_run_hpl.sh

Lines changed: 28 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -505,17 +505,34 @@ build_hpl()
505505
cd hpl-$HPL_VER
506506

507507
# Determine architecture-specific MPI include path
508-
case "$arch" in
509-
x86_64)
510-
mpi_inc="/usr/include/openmpi-x86_64"
511-
;;
512-
aarch64)
513-
mpi_inc="/usr/include/openmpi-aarch64"
514-
;;
515-
*)
516-
mpi_inc="/usr/include/openmpi"
517-
;;
518-
esac
508+
os=$(get_os)
509+
if [[ "$os" == "ubuntu" ]]; then
510+
# Ubuntu uses multiarch lib path for MPI includes
511+
case "$arch" in
512+
x86_64)
513+
mpi_inc="/usr/lib/x86_64-linux-gnu/openmpi/include"
514+
;;
515+
aarch64)
516+
mpi_inc="/usr/lib/aarch64-linux-gnu/openmpi/include"
517+
;;
518+
*)
519+
mpi_inc="/usr/include/openmpi"
520+
;;
521+
esac
522+
else
523+
# RHEL, Amazon Linux, SLES use include path
524+
case "$arch" in
525+
x86_64)
526+
mpi_inc="/usr/include/openmpi-x86_64"
527+
;;
528+
aarch64)
529+
mpi_inc="/usr/include/openmpi-aarch64"
530+
;;
531+
*)
532+
mpi_inc="/usr/include/openmpi"
533+
;;
534+
esac
535+
fi
519536

520537
# Choose base template makefile and set BLAS library name
521538
if [[ "$blaslib" == *"MKL"* ]]; then

auto_hpl/generate_makefile.sh

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -83,10 +83,30 @@ if [ -n "$BLAS_DIR" ]; then
8383
"$TEMPLATE" > "$OUTPUT"
8484
else
8585
# For system libraries (OpenBLAS/FlexiBLAS)
86-
sed -e "s|^ARCH.*=.*Linux_.*|ARCH = $ARCH|" \
87-
-e "s|^MPinc.*=.*-I/usr/include/openmpi.*|MPinc = -I$MPI_INC|" \
88-
-e "s|^LAlib.*=.*|LAlib = \$(LAdir)/$BLAS_LIB|" \
89-
"$TEMPLATE" > "$OUTPUT"
86+
# Detect if Ubuntu - needs different library paths
87+
if [[ "$MPI_INC" == *"x86_64-linux-gnu"* ]]; then
88+
# Ubuntu x86_64 uses multiarch paths
89+
sed -e "s|^ARCH.*=.*Linux_.*|ARCH = $ARCH|" \
90+
-e "s|^MPdir.*=.*|MPdir = /usr/lib/x86_64-linux-gnu/openmpi|" \
91+
-e "s|^MPinc.*=.*-I/usr/include/openmpi.*|MPinc = -I$MPI_INC|" \
92+
-e "s|^LAdir.*=.*|LAdir = /usr/lib/x86_64-linux-gnu|" \
93+
-e "s|^LAlib.*=.*|LAlib = \$(LAdir)/$BLAS_LIB|" \
94+
"$TEMPLATE" > "$OUTPUT"
95+
elif [[ "$MPI_INC" == *"aarch64-linux-gnu"* ]]; then
96+
# Ubuntu aarch64 uses multiarch paths
97+
sed -e "s|^ARCH.*=.*Linux_.*|ARCH = $ARCH|" \
98+
-e "s|^MPdir.*=.*|MPdir = /usr/lib/aarch64-linux-gnu/openmpi|" \
99+
-e "s|^MPinc.*=.*-I/usr/include/openmpi.*|MPinc = -I$MPI_INC|" \
100+
-e "s|^LAdir.*=.*|LAdir = /usr/lib/aarch64-linux-gnu|" \
101+
-e "s|^LAlib.*=.*|LAlib = \$(LAdir)/$BLAS_LIB|" \
102+
"$TEMPLATE" > "$OUTPUT"
103+
else
104+
# RHEL, Amazon Linux, SLES use standard paths
105+
sed -e "s|^ARCH.*=.*Linux_.*|ARCH = $ARCH|" \
106+
-e "s|^MPinc.*=.*-I/usr/include/openmpi.*|MPinc = -I$MPI_INC|" \
107+
-e "s|^LAlib.*=.*|LAlib = \$(LAdir)/$BLAS_LIB|" \
108+
"$TEMPLATE" > "$OUTPUT"
109+
fi
90110
fi
91111

92112
if [ $? -eq 0 ]; then

0 commit comments

Comments
 (0)