Cleaned up the MPI implementation, removed all older implementations (removed also MPI window implementation which might be handy in the future when CUDA-aware support is introduced). If the removed stuff is needed later, here are some keywords to help find this commit: MPI_window, sendrecv, bidirectional, unidirectional transfer, real-time pinning, a0s, b0s.

This commit is contained in:
jpekkila
2020-05-28 16:42:50 +03:00
parent 0d62f56e27
commit f1138b04ac
2 changed files with 67 additions and 1035 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -5,25 +5,15 @@
#include <mpi.h>
#include <stdbool.h>
#define AC_MPI_UNIDIRECTIONAL_COMM (0)
#define AC_MPI_BIDIRECTIONAL_SCHEME_A (0)
#define AC_MPI_BIDIRECTIONAL_SCHEME_B (0)
#define AC_MPI_RT_PINNING_IMPROVED (1)
#define AC_MPI_RT_PINNING (1)
#define MPI_GPUDIRECT_DISABLED (0)
#endif // AC_MPI_ENABLED
typedef struct {
int3 dims;
AcReal* data;
#if (AC_MPI_ENABLED && AC_MPI_RT_PINNING)
AcReal* data_pinned;
bool pinned = false; // Set if data was received to pinned memory
#endif // (AC_MPI_ENABLED && AC_MPI_RT_PINNING)
#if (AC_MPI_ENABLED && AC_MPI_UNIDIRECTIONAL_COMM)
MPI_Win win; // MPI window for RMA
#endif // (AC_MPI_ENABLED && AC_MPI_UNIDIRECTIONAL_COMM)
} PackedData;
typedef struct {