22#include <unordered_map>
26namespace shamcomm::mpi {
35 const std::unordered_map<std::string, f64> &
get_timers();
45 MPI_Datatype datatype,
53 MPI_Datatype sendtype,
56 MPI_Datatype recvtype,
63 MPI_Datatype sendtype,
65 const int recvcounts[],
67 MPI_Datatype recvtype,
74 MPI_Datatype datatype,
78 MPI_Request *request);
84 MPI_Datatype datatype,
88 MPI_Request *request);
95 MPI_Datatype datatype,
100 void Wait(MPI_Request *request, MPI_Status *status);
103 void Waitall(
int count, MPI_Request array_of_requests[], MPI_Status *array_of_statuses);
109 void Probe(
int source,
int tag, MPI_Comm comm, MPI_Status *status);
115 MPI_Datatype datatype,
122 void Get_count(
const MPI_Status *status, MPI_Datatype datatype,
int *count);
125 void Send(
const void *buf,
int count, MPI_Datatype datatype,
int dest,
int tag, MPI_Comm comm);
132 MPI_Datatype filetype,
137 void Type_size(MPI_Datatype type,
int *size);
141 MPI_File fh,
const void *buf,
int count, MPI_Datatype datatype, MPI_Status *status);
145 MPI_File fh,
const void *buf,
int count, MPI_Datatype datatype, MPI_Status *status);
148 void File_read(MPI_File fh,
void *buf,
int count, MPI_Datatype datatype, MPI_Status *status);
156 MPI_Datatype datatype,
165 MPI_Datatype datatype,
172 void File_open(MPI_Comm comm,
const char *filename,
int amode, MPI_Info info, MPI_File *fh);
175 void Test(MPI_Request *request,
int *flag, MPI_Status *status);
181 MPI_Datatype sendtype,
184 MPI_Datatype recvtype,
192 MPI_Datatype sendtype,
194 const int recvcounts[],
196 MPI_Datatype recvtype,
double f64
Alias for double.
Use this header to include MPI properly.
void File_set_view(MPI_File fh, MPI_Offset disp, MPI_Datatype etype, MPI_Datatype filetype, const char *datarep, MPI_Info info)
MPI wrapper for MPI_File_set_view.
void Get_count(const MPI_Status *status, MPI_Datatype datatype, int *count)
MPI wrapper for MPI_Get_count.
void Recv(void *buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Status *status)
MPI wrapper for MPI_Recv.
void Irecv(void *buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Request *request)
MPI wrapper for MPI_Irecv.
void Exscan(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
MPI wrapper for MPI_Exscan.
void Gatherv(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, const int recvcounts[], const int displs[], MPI_Datatype recvtype, int root, MPI_Comm comm)
MPI wrapper for MPI_Gatherv.
void Probe(int source, int tag, MPI_Comm comm, MPI_Status *status)
MPI wrapper for MPI_Probe.
void Barrier(MPI_Comm comm)
MPI wrapper for MPI_Barrier.
void File_close(MPI_File *fh)
MPI wrapper for MPI_File_close.
void File_read(MPI_File fh, void *buf, int count, MPI_Datatype datatype, MPI_Status *status)
MPI wrapper for MPI_File_read.
void Allgatherv(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, const int recvcounts[], const int displs[], MPI_Datatype recvtype, MPI_Comm comm)
MPI wrapper for MPI_Allgatherv.
const std::vector< std::string > & get_possible_keys()
return all possible keys for the internal timers
void register_time(std::string timername, f64 time)
Register a timer value.
f64 get_timer(std::string timername)
get a timer value
void File_write_at(MPI_File fh, MPI_Offset offset, const void *buf, int count, MPI_Datatype datatype, MPI_Status *status)
MPI wrapper for MPI_File_write_at.
void File_open(MPI_Comm comm, const char *filename, int amode, MPI_Info info, MPI_File *fh)
MPI wrapper for MPI_File_open.
void Allreduce(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
MPI wrapper for MPI_Allreduce.
void Waitall(int count, MPI_Request array_of_requests[], MPI_Status *array_of_statuses)
MPI wrapper for MPI_Waitall.
void Wait(MPI_Request *request, MPI_Status *status)
MPI wrapper for MPI_Wait.
void Type_size(MPI_Datatype type, int *size)
MPI wrapper for MPI_Type_size.
const std::unordered_map< std::string, f64 > & get_timers()
return all internal timers
void Gather(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm)
MPI wrapper for MPI_Gather.
void File_write(MPI_File fh, const void *buf, int count, MPI_Datatype datatype, MPI_Status *status)
MPI wrapper for MPI_File_write.
void Test(MPI_Request *request, int *flag, MPI_Status *status)
MPI wrapper for MPI_Test.
void Allgather(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm)
MPI wrapper for MPI_Allgather.
void Isend(const void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request *request)
MPI wrapper for MPI_Isend.
void File_read_at(MPI_File fh, MPI_Offset offset, void *buf, int count, MPI_Datatype datatype, MPI_Status *status)
MPI wrapper for MPI_File_read_at.
void File_write_all(MPI_File fh, const void *buf, int count, MPI_Datatype datatype, MPI_Status *status)
MPI wrapper for MPI_File_write_all.