Skip to content

Commit 20288ec

Browse files
committed
fix: remove system OpenMPI from NVHPC containers; enable IPO for all versions
- Remove openmpi-bin/libopenmpi-dev from NVHPC container apt install. The system OpenMPI (gfortran-compiled) was overriding the NVHPC-bundled MPI at runtime via ldconfig, causing ABI mismatch segfaults in all CPU tests (rayleigh_taylor_muscl crash in s_interface_compression). - Remove NVHPC version exclusion range for two-pass IPO. Binary search identified s_compute_dt as the single function causing ICE on 24.11; add noinline directive to prevent its extraction into the inline library.
1 parent 4ad88a9 commit 20288ec

3 files changed

Lines changed: 4 additions & 7 deletions

File tree

.github/workflows/test.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -301,8 +301,7 @@ jobs:
301301
run: |
302302
apt-get update -y
303303
apt-get install -y cmake python3 python3-venv python3-pip \
304-
libfftw3-dev libhdf5-dev hdf5-tools \
305-
openmpi-bin libopenmpi-dev git
304+
libfftw3-dev libhdf5-dev hdf5-tools git
306305
git config --global --add safe.directory /__w/MFC/MFC
307306
308307
# --- Standard build + test ---

CMakeLists.txt

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -262,11 +262,6 @@ if (CMAKE_BUILD_TYPE STREQUAL "Release")
262262
elseif (CMAKE_Fortran_COMPILER_ID STREQUAL "NVHPC")
263263
if (MFC_Unified)
264264
message(STATUS "LTO/IPO is not available with NVHPC using Unified Memory")
265-
elseif (CMAKE_Fortran_COMPILER_VERSION VERSION_GREATER "24.11" AND CMAKE_Fortran_COMPILER_VERSION VERSION_LESS "25.9")
266-
message(STATUS "LTO/IPO is not supported in NVHPC Version 24.11 to 25.9. Use >=25.9 or (<=24.11 && > 23.11) Performance will be degraded.")
267-
set(NVHPC_USE_TWO_PASS_IPO FALSE)
268-
elseif(CMAKE_Fortran_COMPILER_VERSION VERSION_LESS "23.11")
269-
message(STATUS "LTO/IPO is not supported in NVHPC Version < 23.11. Use a newer version of NVHPC for best performance.")
270265
else()
271266
message(STATUS "Performing IPO using -Mextract followed by -Minline")
272267
set(NVHPC_USE_TWO_PASS_IPO TRUE)

src/simulation/m_time_steppers.fpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -625,6 +625,9 @@ contains
625625

626626
!> Compute the global time step size from CFL stability constraints across all cells
627627
impure subroutine s_compute_dt()
628+
#ifdef __NVCOMPILER
629+
!dir$ noinline
630+
#endif
628631

629632
real(wp) :: rho !< Cell-avg. density
630633

0 commit comments

Comments
 (0)