You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This repo also gives an example of a workaround for OpenMPI 4.x and mpiexec race condition with large CPU count by setting TMPDIR to a short path name so as not to exceed 100 characters for UNIX sockets.
Message Passing
Pass data between two MPI threads.
In this usage, MPI_Recv blocks waiting for MPI_Send
mpiexec -np 2 mpi/mpi_pass
Notes
See
OpenMPI docs
re: setting PATH and LD_LIBRARY_PATH if CMake has trouble finding OpenMPI for a compiler.
FindMPI.cmake on Cray defines a rather sparse imported target MPI::MPI_C and MPI::MPI_Fortran like
-- Target: MPI::MPI_Fortran properties
-- MPI::MPI_Fortran IMPORTED = TRUE
-- MPI::MPI_Fortran NAME = MPI::MPI_Fortran
-- MPI::MPI_Fortran SYSTEM = ON
-- MPI::MPI_Fortran TYPE = INTERFACE_LIBRARY
-- Target: MPI::MPI_C properties
-- MPI::MPI_C IMPORTED = TRUE
-- MPI::MPI_C NAME = MPI::MPI_C
-- MPI::MPI_C SYSTEM = ON
-- MPI::MPI_C TYPE = INTERFACE_LIBRARY
while on most non-Cray platforms the typical properties are also defined: INTERFACE_INCLUDE_DIRECTORIES, INTERFACE_LINK_LIBRARIES, INTERFACE_LINK_OPTIONS.
Also on Cray. these typically defined variables are empty: MPI_Fortran_LIBRARIES, MPI_Fortran_MODULE_DIR, MPI_Fortran_INCLUDE_DIRS, MPI_Fortran_COMPILE_OPTIONS, MPI_Fortran_LINK_FLAGS.
MPI-3 Fortran
If "mpi_f08.mod" is not found, typically the MPI include directories are also missing.
You can manually check if mpi_f08.mod is preset under the include "-I" directories from: