Dear VTK developers,
we have encountered problems with the MPI InitializeCommunicator calls in VTK 9.3.0 when compiling with the newest Intel compilers (l_HPCKit_p_2024.2.0.635_offline.sh
).
The building and installation of VTK worked without errors.
The error appears in the functions this->InitializeCommunicator(vtkMPICommunicator::GetWorldCommunicator());
in line 135 of vtkMPIController.cxx
and, respectively, MPI_Comm_set_errhandler(MPI_COMM_WORLD, errhandler);
in line 573 of vtkMPICommunicator.cxx
.
The result is a complete crash of the program. To reproduce, run test vtkParallelMPICxxTests-MPI
No. 1 (MPIController
).
We reproduced the problem with various different MPI implementations:
- Stock MPI, installed through
apt
, on Ubuntu 22 (Open MPI 4.1.2) - The MPI installation that comes with the intel compilers (Intel(R) MPI Library for Linux* OS, Version 2021.13 Build 20240515 (id: df72937))
- Standalone compilation of Open MPI using the Intel OneAPI compilers (Open MPI 4.0.4)
When compiling using GNU compilers (gcc 12.3.0 + Open MPI 4.1.2 (apt)), everything works fine.
Attached is a excerpt of the CMakeCache.txt, from when we tried to compile with Open MPI 4.0.4, if that is of any help:
BUILD_SHARED_LIBS:BOOL=ON
CMAKE_BUILD_TYPE:STRING=Debug
VTK_GROUP_ENABLE_MPI:STRING=DEFAULT
VTK_USE_MPI:BOOL=ON
CMAKE_CXX_COMPILER:FILEPATH=/opt/intel/oneapi/compiler/2024.2/bin/icpx
CMAKE_C_COMPILER:FILEPATH=/opt/intel/oneapi/compiler/2024.2/bin/icx
MPIEXEC_EXECUTABLE:FILEPATH=<path-to-MPI>/openmpi-4.0.4/install-intel-debug/bin/mpiexec
MPI_C_COMPILER:FILEPATH=<path-to-MPI>/openmpi-4.0.4/install-intel-debug/bin/mpicc
MPI_C_COMPILER_INCLUDE_DIRS:STRING=<path-to-MPI>/openmpi-4.0.4/install-intel-debug/include
MPI_C_HEADER_DIR:PATH=<path-to-MPI>/openmpi-4.0.4/install-intel-debug/include
MPI_C_LINK_FLAGS:STRING=-Wl,-rpath -Wl,<path-to-MPI>/openmpi-4.0.4/install-intel-debug/lib -Wl,--enable-new-dtags
MPI_mpi_LIBRARY:FILEPATH=<path-to-MPI>/openmpi-4.0.4/install-intel-debug/lib/libmpi.so
Any help is appreciated.
Thanks a lot in advance.