From 3abe09025a030d0dbfd1da80e8c27c351dc095d0 Mon Sep 17 00:00:00 2001 From: Christoph Lehner Date: Thu, 6 Aug 2020 14:42:38 +0200 Subject: [PATCH] when using SHM_NONE allow multiple ranks per node but without using shared memory --- Grid/communicator/SharedMemoryMPI.cc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Grid/communicator/SharedMemoryMPI.cc b/Grid/communicator/SharedMemoryMPI.cc index 45fefc71..0ee55a1c 100644 --- a/Grid/communicator/SharedMemoryMPI.cc +++ b/Grid/communicator/SharedMemoryMPI.cc @@ -47,7 +47,12 @@ void GlobalSharedMemory::Init(Grid_MPI_Comm comm) ///////////////////////////////////////////////////////////////////// // Split into groups that can share memory ///////////////////////////////////////////////////////////////////// +#ifndef GRID_MPI3_SHM_NONE MPI_Comm_split_type(comm, MPI_COMM_TYPE_SHARED, 0, MPI_INFO_NULL,&WorldShmComm); +#else + MPI_Comm_split(comm, WorldRank, 0, &WorldShmComm); +#endif + MPI_Comm_rank(WorldShmComm ,&WorldShmRank); MPI_Comm_size(WorldShmComm ,&WorldShmSize); @@ -705,7 +710,11 @@ void SharedMemory::SetCommunicator(Grid_MPI_Comm comm) ///////////////////////////////////////////////////////////////////// // Split into groups that can share memory ///////////////////////////////////////////////////////////////////// +#ifndef GRID_MPI3_SHM_NONE MPI_Comm_split_type(comm, MPI_COMM_TYPE_SHARED, 0, MPI_INFO_NULL,&ShmComm); +#else + MPI_Comm_split(comm, rank, 0, &ShmComm); +#endif MPI_Comm_rank(ShmComm ,&ShmRank); MPI_Comm_size(ShmComm ,&ShmSize); ShmCommBufs.resize(ShmSize);