38 #ifndef TRANSFER_MPITHREADFULL_H
39 #define TRANSFER_MPITHREADFULL_H
49 #include "utils/logger.h"
129 unsigned long blockCount,
130 unsigned long blockSize,
169 void transfer(
int remoteRank,
unsigned long offset,
170 unsigned char *cache)
172 int mpiResult; NDBG_UNUSED(mpiResult);
179 assert(mpiResult == MPI_SUCCESS);
182 void recv(
int sender,
unsigned long blockId)
186 int mpiResult; NDBG_UNUSED(mpiResult);
190 assert(mpiResult == MPI_SUCCESS);
194 #endif // ASAGI_NOMPI
198 #endif // TRANSFER_MPITHREADFULL_H
static CommThread commThread
asagi::Grid::Error broadcast(T &value, unsigned int rootDomain=0)
const unsigned char * m_data
unsigned int m_numaDomainId
void unregisterReceiver(int tag)
void recv(int sender, unsigned long blockId)
asagi::Grid::Error init(unsigned char *data, unsigned long blockCount, unsigned long blockSize, const types::Type &type, const mpi::MPIComm &mpiComm, numa::NumaComm &numaComm)
asagi::Grid::Error registerReceiver(MPI_Comm comm, Receiver &receiver, int &tag)
Include file for C and C++ API.
threads::Mutex * m_sendRecvMutex
void transfer(int remoteRank, unsigned long offset, unsigned char *cache)
void send(int tag, int recv, message_t data)
unsigned int domainId() const
virtual MPI_Datatype getMPIType() const =0
virtual unsigned int size() const =0
unsigned long m_blockSize