<mpi2>
# A.8.1 Miscellany
void* MPI::Alloc_mem(MPI::Aint size, const MPI::Info& info)
static MPI::Errhandler MPI::Comm::Create_errhandler(MPI::Comm::Errhandler_fn* function)
MPI::Errhandler MPI::Comm::Get_errhandler() const
void MPI::Comm::Set_errhandler(const MPI::Errhandler& errhandler)
MPI::Datatype MPI::Datatype::Create_darray(int size, int rank, int ndims, const int array_of_gsizes[], const int array_of_distribs[], const int array_of_dargs[], const int array_of_psizes[], int order) const
MPI::Datatype MPI::Datatype::Create_hindexed(int count, const int array_of_blocklengths[], const MPI::Aint array_of_displacements[]) const
MPI::Datatype MPI::Datatype::Create_hvector(int count, int blocklength, MPI::Aint stride) const
MPI::Datatype MPI::Datatype::Create_indexed_block( int count, int blocklength, const int array_of_displacements[]) const
static MPI::Datatype MPI::Datatype::Create_struct(int count, const int array_of_blocklengths[], const MPI::Aint array_of_displacements[], const MPI::Datatype array_of_types[])
MPI::Datatype MPI::Datatype::Create_subarray(int ndims, const int array_of_sizes[], const int array_of_subsizes[], const int array_of_starts[], int order) const
void MPI::Datatype::Get_extent(MPI::Aint& lb, MPI::Aint& extent) const
void MPI::Datatype::Get_true_extent(MPI::Aint& true_lb, MPI::Aint& true_extent) const
void MPI::Datatype::Pack_external(const char* datarep, const void* inbuf, int incount, void* outbuf, MPI::Aint outsize, MPI::Aint& position) const
MPI::Aint MPI::Datatype::Pack_external_size(const char* datarep, int incount) const
MPI::Datatype MPI::Datatype::Resized(const MPI::Aint lb, const MPI::Aint extent) const
void MPI::Datatype::Unpack_external(const char* datarep, const void* inbuf, MPI::Aint insize, MPI::Aint& position, void* outbuf, int outcount) const
static MPI::Errhandler MPI::File::Create_errhandler(MPI::File::Errhandler_fn* function)
MPI::Errhandler MPI::File::Get_errhandler() const
void MPI::File::Set_errhandler(const MPI::Errhandler& errhandler)
void MPI::Free_mem(void *base)
MPI::Aint MPI::Get_address(void* location)
static MPI::Info MPI::Info::Create()
void MPI::Info::Delete(const char* key)
MPI::Info MPI::Info::Dup() const
void MPI::Info::Free()
bool MPI::Info::Get(const char* key, int valuelen, char* value) const
int MPI::Info::Get_nkeys() const
void MPI::Info::Get_nthkey(int n, char* key) const
bool MPI::Info::Get_valuelen(const char* key, int& valuelen) const
void MPI::Info::Set(const char* key, const char* value)
bool MPI::Is_finalized()
bool MPI::Request::Get_status(MPI::Status& status) const
bool MPI::Request::Get_status() const
static MPI::Errhandler MPI::Win::Create_errhandler(MPI::Win::Errhandler_fn* function)
MPI::Errhandler MPI::Win::Get_errhandler() const
void MPI::Win::Set_errhandler(const MPI::Errhandler& errhandler)
# A.8.2 Process creation
void MPI::Close_port(const char* port_name)
void MPI::Comm::Disconnect()
static MPI::Intercomm MPI::Comm::Get_parent()
static MPI::Intercomm MPI::Comm::Join(const int fd)
MPI::Intercomm MPI::Intracomm::Accept(const char* port_name, const MPI::Info& info, int root) const
MPI::Intercomm MPI::Intracomm::Connect(const char* port_name, const MPI::Info& info, int root) const
MPI::Intercomm MPI::Intracomm::Spawn(const char* command, const char* argv[], int maxprocs, const MPI::Info& info, int root) const
MPI::Intercomm MPI::Intracomm::Spawn(const char* command, const char* argv[], int maxprocs, const MPI::Info& info, int root, int array_of_errcodes[]) const
MPI::Intercomm MPI::Intracomm::Spawn_multiple(int count, const char* array_of_commands[], const char** array_of_argv[], const int array_of_maxprocs[], const MPI::Info array_of_info[], int root)
MPI::Intercomm MPI::Intracomm::Spawn_multiple(int count, const char* array_of_commands[], const char** array_of_argv[], const int array_of_maxprocs[], const MPI::Info array_of_info[], int root, int array_of_errcodes[])
void MPI::Lookup_name(const char* service_name, const MPI::Info& info, char* port_name)
void MPI::Open_port(const MPI::Info& info, char* port_name)
void MPI::Publish_name(const char* service_name, const MPI::Info& info, const char* port_name)
void MPI::Unpublish_name(const char* service_name, const MPI::Info& info, const char* port_name)
# A.8.3 One sided
void MPI::Win::Accumulate(const void* origin_addr, int origin_count, const MPI::Datatype& origin_datatype, int target_rank, MPI::Aint target_disp, int target_count, const MPI::Datatype& target_datatype, const MPI::Op& op) const
void MPI::Win::Complete() const
static MPI::Win MPI::Win::Create(const void* base, MPI::Aint size, int disp_unit, const MPI::Info& info, const MPI::Intracomm& comm)
void MPI::Win::Fence(int assert) const
void MPI::Win::Free()
void MPI::Win::Get(void *origin_addr, int origin_count, const MPI::Datatype& origin_datatype, int target_rank, MPI::Aint target_disp, int target_count, const MPI::Datatype& target_datatype) const
MPI::Group MPI::Win::Get_group() const
void MPI::Win::Lock(int lock_type, int rank, int assert) const
void MPI::Win::Post(const MPI::Group& group, int assert) const
void MPI::Win::Put(const void* origin_addr, int origin_count, const MPI::Datatype& origin_datatype, int target_rank, MPI::Aint target_disp, int target_count, const MPI::Datatype& target_datatype) const
void MPI::Win::Start(const MPI::Group& group, int assert) const
bool MPI::Win::Test() const
void MPI::Win::Unlock(int rank) const
void MPI::Win::Wait() const
# A 8.4 Extended collective
oid MPI::Comm::Allgather(const void* sendbuf, int sendcount, const MPI::Datatype& sendtype, void* recvbuf, int recvcount, const MPI::Datatype& recvtype) const = 0
void MPI::Comm::Allgatherv(const void* sendbuf, int sendcount, const MPI::Datatype& sendtype, void* recvbuf, const int recvcounts[], const int displs[], const MPI::Datatype& recvtype) const = 0
void MPI::Comm::Allreduce(const void* sendbuf, void* recvbuf, int count, const MPI::Datatype& datatype, const MPI::Op& op) const = 0
void MPI::Comm::Alltoall(const void* sendbuf, int sendcount, const MPI::Datatype& sendtype, void* recvbuf, int recvcount, const MPI::Datatype& recvtype) const = 0
void MPI::Comm::Alltoallv(const void* sendbuf, const int sendcounts[], const int sdispls[], const MPI::Datatype& sendtype, void* recvbuf, const int recvcounts[], const int rdispls[], const MPI::Datatype& recvtype) const = 0
void MPI::Comm::Alltoallw(const void* sendbuf, const int sendcounts[], const int sdispls[], const MPI::Datatype sendtypes[], void* recvbuf, const int recvcounts[], const int rdispls[], const MPI::Datatype recvtypes[]) const = 0
void MPI::Comm::Barrier() const = 0
void MPI::Comm::Bcast(void* buffer, int count, const MPI::Datatype& datatype, int root) const = 0
void MPI::Comm::Gather(const void* sendbuf, int sendcount, const MPI::Datatype& sendtype, void* recvbuf, int recvcount, const MPI::Datatype& recvtype, int root) const = 0
void MPI::Comm::Gatherv(const void* sendbuf, int sendcount, const MPI::Datatype& sendtype, void* recvbuf, const int recvcounts[], const int displs[], const MPI::Datatype& recvtype, int root) const = 0
void MPI::Comm::Reduce(const void* sendbuf, void* recvbuf, int count, const MPI::Datatype& datatype, const MPI::Op& op, int root) const = 0
void MPI::Comm::Reduce_scatter(const void* sendbuf, void* recvbuf, int recvcounts[], const MPI::Datatype& datatype, const MPI::Op& op) const = 0
void MPI::Comm::Scatter(const void* sendbuf, int sendcount, const MPI::Datatype& sendtype, void* recvbuf, int recvcount, const MPI::Datatype& recvtype, int root) const = 0
void MPI::Comm::Scatterv(const void* sendbuf, const int sendcounts[], const int displs[], const MPI::Datatype& sendtype, void* recvbuf, int recvcount, const MPI::Datatype& recvtype, int root) const = 0
MPI::Intercomm MPI::Intercomm::Create(const Group& group) const
MPI::Intercomm MPI::Intercomm::Split(int color, int key) const
#MPI::Intracomm MPI::Intracomm::Create(const Group& group) const
void MPI::Intracomm::Exscan(const void* sendbuf, void* recvbuf, int count, const MPI::Datatype& datatype, const MPI::Op& op) const
#MPI::Intracomm MPI::Intracomm::Split(int color, int key) const
# A.8.5 External
int MPI::Add_error_class()
int MPI::Add_error_code(int errorclass)
void MPI::Add_error_string(int errorcode, const char* string)
void MPI::Comm::Call_errhandler(int errorcode) const
static int MPI::Comm::Create_keyval(MPI::Comm::Copy_attr_function* comm_copy_attr_fn, MPI::Comm::Delete_attr_function* comm_delete_attr_fn, void* extra_state)
void MPI::Comm::Delete_attr(int comm_keyval)
static void MPI::Comm::Free_keyval(int& comm_keyval)
bool MPI::Comm::Get_attr(int comm_keyval, void* attribute_val) const
void MPI::Comm::Get_name(char* comm_name, int& resultlen) const
void MPI::Comm::Set_attr(int comm_keyval, const void* attribute_val) const
void MPI::Comm::Set_name(const char* comm_name)
static int MPI::Datatype::Create_keyval(MPI::Datatype::Copy_attr_function* type_copy_attr_fn, MPI::Datatype::Delete_attr_function* type_delete_attr_fn, void* extra_state)
void MPI::Datatype::Delete_attr(int type_keyval)
MPI::Datatype MPI::Datatype::Dup() const
static void MPI::Datatype::Free_keyval(int& type_keyval)
bool MPI::Datatype::Get_attr(int type_keyval, void* attribute_val) const
void MPI::Datatype::Get_contents(int max_integers, int max_addresses, int max_datatypes, int array_of_integers[], MPI::Aint array_of_addresses[], MPI::Datatype array_of_datatypes[]) const
void MPI::Datatype::Get_envelope(int& num_integers, int& num_addresses, int& num_datatypes, int& combiner) const
void MPI::Datatype::Get_name(char* type_name, int& resultlen) const
void MPI::Datatype::Set_attr(int type_keyval, const void* attribute_val)
void MPI::Datatype::Set_name(const char* type_name)
void MPI::File::Call_errhandler(int errorcode) const
void MPI::Grequest::Complete()
static MPI::Grequest MPI::Grequest::Start(const MPI::Grequest::Query_function query_fn, const MPI::Grequest::Free_function free_fn, const MPI::Grequest::Cancel_function cancel_fn, void *extra_state)
int MPI::Init_thread(int required)
int MPI::Init_thread(int& argc, char**& argv, int required)
bool MPI::Is_thread_main()
int MPI::Query_thread()
void MPI::Status::Set_cancelled(bool flag)
void MPI::Status::Set_elements(const MPI::Datatype& datatype, int count)
void MPI::Win::Call_errhandler(int errorcode) const
static int MPI::Win::Create_keyval(MPI::Win::Copy_attr_function* win_copy_attr_fn, MPI::Win::Delete_attr_function* win_delete_attr_fn, void* extra_state)
void MPI::Win::Delete_attr(int win_keyval)
static void MPI::Win::Free_keyval(int& win_keyval)
# Get_attr for Win had the wrong prototype in the 2.0 standard (see the errata)
bool MPI::Win::Get_attr(int win_keyval, void* attribute_val) const
void MPI::Win::Get_name(char* win_name, int& resultlen) const
void MPI::Win::Set_attr(int win_keyval, const void* attribute_val)
void MPI::Win::Set_name(const char* win_name)
# A8.6 I/O
void MPI::File::Close()
static void MPI::File::Delete(const char* filename, const MPI::Info& info)
int MPI::File::Get_amode() const
bool MPI::File::Get_atomicity() const
MPI::Offset MPI::File::Get_byte_offset(const MPI::Offset disp) const
MPI::Group MPI::File::Get_group() const
MPI::Info MPI::File::Get_info() const
MPI::Offset MPI::File::Get_position() const
MPI::Offset MPI::File::Get_position_shared() const
MPI::Offset MPI::File::Get_size() const
MPI::Aint MPI::File::Get_type_extent(const MPI::Datatype& datatype) const
void MPI::File::Get_view(MPI::Offset& disp, MPI::Datatype& etype, MPI::Datatype& filetype, char* datarep) const
MPI::Request MPI::File::Iread(void* buf, int count, const MPI::Datatype& datatype)
MPI::Request MPI::File::Iread_at(MPI::Offset offset, void* buf, int count, const MPI::Datatype& datatype)
MPI::Request MPI::File::Iread_shared(void* buf, int count, const MPI::Datatype& datatype)
MPI::Request MPI::File::Iwrite(const void* buf, int count, const MPI::Datatype& datatype)
MPI::Request MPI::File::Iwrite_at(MPI::Offset offset, const void* buf, int count, const MPI::Datatype& datatype)
MPI::Request MPI::File::Iwrite_shared(const void* buf, int count, const MPI::Datatype& datatype)
static MPI::File MPI::File::Open(const MPI::Intracomm& comm, const char* filename, int amode, const MPI::Info& info)
void MPI::File::Preallocate(MPI::Offset size)
void MPI::File::Read(void* buf, int count, const MPI::Datatype& datatype, MPI::Status& status)
void MPI::File::Read(void* buf, int count, const MPI::Datatype& datatype)
void MPI::File::Read_all(void* buf, int count, const MPI::Datatype& datatype, MPI::Status& status)
void MPI::File::Read_all(void* buf, int count, const MPI::Datatype& datatype)
void MPI::File::Read_all_begin(void* buf, int count, const MPI::Datatype& datatype)
void MPI::File::Read_all_end(void* buf, MPI::Status& status)
void MPI::File::Read_all_end(void* buf)
void MPI::File::Read_at(MPI::Offset offset, void* buf, int count, const MPI::Datatype& datatype, MPI::Status& status)
void MPI::File::Read_at(MPI::Offset offset, void* buf, int count, const MPI::Datatype& datatype)
void MPI::File::Read_at_all(MPI::Offset offset, void* buf, int count, const MPI::Datatype& datatype, MPI::Status& status)
void MPI::File::Read_at_all(MPI::Offset offset, void* buf, int count, const MPI::Datatype& datatype)
void MPI::File::Read_at_all_begin(MPI::Offset offset, void* buf, int count, const MPI::Datatype& datatype)
void MPI::File::Read_at_all_end(void* buf, MPI::Status& status)
void MPI::File::Read_at_all_end(void* buf)
void MPI::File::Read_ordered(void* buf, int count, const MPI::Datatype& datatype, MPI::Status& status)
void MPI::File::Read_ordered(void* buf, int count, const MPI::Datatype& datatype)
void MPI::File::Read_ordered_begin(void* buf, int count, const MPI::Datatype& datatype)
void MPI::File::Read_ordered_end(void* buf, MPI::Status& status)
void MPI::File::Read_ordered_end(void* buf)
void MPI::File::Read_shared(void* buf, int count, const MPI::Datatype& datatype, MPI::Status& status)
void MPI::File::Read_shared(void* buf, int count, const MPI::Datatype& datatype)
void MPI::File::Seek(MPI::Offset offset, int whence)
void MPI::File::Seek_shared(MPI::Offset offset, int whence)
void MPI::File::Set_atomicity(bool flag)
void MPI::File::Set_info(const MPI::Info& info)
void MPI::File::Set_size(MPI::Offset size)
void MPI::File::Set_view(MPI::Offset disp, const MPI::Datatype& etype, const MPI::Datatype& filetype, const char* datarep, const MPI::Info& info)
void MPI::File::Sync()
void MPI::File::Write(const void* buf, int count, const MPI::Datatype& datatype, MPI::Status& status)
void MPI::File::Write(const void* buf, int count, const MPI::Datatype& datatype)
void MPI::File::Write_all(const void* buf, int count, const MPI::Datatype& datatype, MPI::Status& status)
void MPI::File::Write_all(const void* buf, int count, const MPI::Datatype& datatype)
void MPI::File::Write_all_begin(const void* buf, int count, const MPI::Datatype& datatype)
void MPI::File::Write_all_end(const void* buf, MPI::Status& status)
void MPI::File::Write_all_end(const void* buf)
void MPI::File::Write_at(MPI::Offset offset, const void* buf, int count, const MPI::Datatype& datatype, MPI::Status& status)
void MPI::File::Write_at(MPI::Offset offset, const void* buf, int count, const MPI::Datatype& datatype)
void MPI::File::Write_at_all(MPI::Offset offset, const void* buf, int count, const MPI::Datatype& datatype, MPI::Status& status)
void MPI::File::Write_at_all(MPI::Offset offset, const void* buf, int count, const MPI::Datatype& datatype)
void MPI::File::Write_at_all_begin(MPI::Offset offset, const void* buf, int count, const MPI::Datatype& datatype)
void MPI::File::Write_at_all_end(const void* buf, MPI::Status& status)
void MPI::File::Write_at_all_end(const void* buf)
void MPI::File::Write_ordered(const void* buf, int count, const MPI::Datatype& datatype, MPI::Status& status)
void MPI::File::Write_ordered(const void* buf, int count, const MPI::Datatype& datatype)
void MPI::File::Write_ordered_begin(const void* buf, int count, const MPI::Datatype& datatype)
void MPI::File::Write_ordered_end(const void* buf, MPI::Status& status)
void MPI::File::Write_ordered_end(const void* buf)
void MPI::File::Write_shared(const void* buf, int count, const MPI::Datatype& datatype, MPI::Status& status)
void MPI::File::Write_shared(const void* buf, int count, const MPI::Datatype& datatype)
void MPI::Register_datarep(const char* datarep, MPI::Datarep_conversion_function* read_conversion_fn, MPI::Datarep_conversion_function* write_conversion_fn, MPI::Datarep_extent_function* dtype_file_extent_fn, void* extra_state)
# A8.7 Language bindings
static MPI::Datatype MPI::Datatype::Create_f90_complex(int p, int r)
static MPI::Datatype MPI::Datatype::Create_f90_integer(int r)
static MPI::Datatype MPI::Datatype::Create_f90_real(int p, int r)
static MPI::Datatype MPI::Datatype::Match_size(int typeclass, int size)
# B.4 MPI-1 pt-2-pt
<mpi1>
void Comm::Send(const void* buf, int count, const Datatype& datatype, int dest, int tag) const
void Comm::Recv(void* buf, int count, const Datatype& datatype, int source, int tag, Status& status) const
void Comm::Recv(void* buf, int count, const Datatype& datatype, int source, int tag) const
int Status::Get_count(const Datatype& datatype) const
void Comm::Bsend(const void* buf, int count, const Datatype& datatype, int dest, int tag) const
void Comm::Ssend(const void* buf, int count, const Datatype& datatype, int dest, int tag) const
void Comm::Rsend(const void* buf, int count, const Datatype& datatype, int dest, int tag) const
void Attach_buffer(void* buffer, int size)
int Detach_buffer(void*& buffer)
Request Comm::Isend(const void* buf, int count, const Datatype& datatype, int dest, int tag) const
Request Comm::Ibsend(const void* buf, int count, const Datatype& datatype, int dest, int tag) const
Request Comm::Issend(const void* buf, int count, const Datatype& datatype, int dest, int tag) const
Request Comm::Irsend(const void* buf, int count, const Datatype& datatype, int dest, int tag) const
Request Comm::Irecv(void* buf, int count, const Datatype& datatype, int source, int tag) const
void Request::Wait(Status& status)
void Request::Wait()
bool Request::Test(Status& status)
bool Request::Test()
void Request::Free()
static int Request::Waitany(int count, Request array_of_requests[], Status& status)
static int Request::Waitany(int count, Request array_of_requests[])
static bool Request::Testany(int count, Request array_of_requests[], int& index, Status& status)
static bool Request::Testany(int count, Request array_of_requests[], int& index)
static void Request::Waitall(int count, Request array_of_requests[], Status array_of_statuses[])
static void Request::Waitall(int count, Request array_of_requests[])
static bool Request::Testall(int count, Request array_of_requests[], Status array_of_statuses[])
static bool Request::Testall(int count, Request array_of_requests[])
static int Request::Waitsome(int incount, Request array_of_requests[], int array_of_indices[], Status array_of_statuses[])
static int Request::Waitsome(int incount, Request array_of_requests[], int array_of_indices[])
static int Request::Testsome(int incount, Request array_of_requests[], int array_of_indices[], Status array_of_statuses[])
static int Request::Testsome(int incount, Request array_of_requests[], int array_of_indices[])
bool Comm::Iprobe(int source, int tag, Status& status) const
bool Comm::Iprobe(int source, int tag) const
void Comm::Probe(int source, int tag, Status& status) const
void Comm::Probe(int source, int tag) const
void Request::Cancel() const
bool Status::Is_cancelled() const
Prequest Comm::Send_init(const void* buf, int count, const Datatype& datatype, int dest, int tag) const
Prequest Comm::Bsend_init(const void* buf, int count, const Datatype& datatype, int dest, int tag) const
Prequest Comm::Ssend_init(const void* buf, int count, const Datatype& datatype, int dest, int tag) const
Prequest Comm::Rsend_init(const void* buf, int count, const Datatype& datatype, int dest, int tag) const
Prequest Comm::Recv_init(void* buf, int count, const Datatype& datatype, int source, int tag) const
void Prequest::Start()
static void Prequest::Startall(int count, Prequest array_of_requests[])
void Comm::Sendrecv(const void *sendbuf, int sendcount, const Datatype& sendtype, int dest, int sendtag, void *recvbuf, int recvcount, const Datatype& recvtype, int source, int recvtag, Status& status) const
void Comm::Sendrecv(const void *sendbuf, int sendcount, const Datatype& sendtype, int dest, int sendtag, void *recvbuf, int recvcount, const Datatype& recvtype, int source, int recvtag) const
void Comm::Sendrecv_replace(void* buf, int count, const Datatype& datatype, int dest, int sendtag, int source, int recvtag, Status& status) const
void Comm::Sendrecv_replace(void* buf, int count, const Datatype& datatype, int dest, int sendtag, int source, int recvtag) const
Datatype Datatype::Create_contiguous(int count) const
Datatype Datatype::Create_vector(int count, int blocklength, int stride) const
Datatype Datatype::Create_indexed(int count, const int array_of_blocklengths[], const int array_of_displacements[]) const
int Datatype::Get_size() const
void Datatype::Commit()
void Datatype::Free()
int Status::Get_elements(const Datatype& datatype) const
void Datatype::Pack(const void* inbuf, int incount, void *outbuf, int outsize, int& position, const Comm &comm) const
void Datatype::Unpack(const void* inbuf, int insize, void *outbuf, int outcount, int& position, const Comm& comm) const
int Datatype::Pack_size(int incount, const Comm& comm) const
# B.5 MPI-1 Collective
void Intracomm::Barrier() const
void Intracomm::Bcast(void* buffer, int count, const Datatype& datatype, int root) const
void Intracomm::Gather(const void* sendbuf, int sendcount, const Datatype& sendtype, void* recvbuf, int recvcount, const Datatype& recvtype, int root) const
void Intracomm::Gatherv(const void* sendbuf, int sendcount, const Datatype& sendtype, void* recvbuf, const int recvcounts[], const int displs[], const Datatype& recvtype, int root) const
void Intracomm::Scatter(const void* sendbuf, int sendcount, const Datatype& sendtype, void* recvbuf, int recvcount, const Datatype& recvtype, int root) const
void Intracomm::Scatterv(const void* sendbuf, const int sendcounts[], const int displs[], const Datatype& sendtype, void* recvbuf, int recvcount, const Datatype& recvtype, int root) const
void Intracomm::Allgather(const void* sendbuf, int sendcount, const Datatype& sendtype, void* recvbuf, int recvcount, const Datatype& recvtype) const
void Intracomm::Allgatherv(const void* sendbuf, int sendcount, const Datatype& sendtype, void* recvbuf, const int recvcounts[], const int displs[], const Datatype& recvtype) const
void Intracomm::Alltoall(const void* sendbuf, int sendcount, const Datatype& sendtype, void* recvbuf, int recvcount, const Datatype& recvtype) const
void Intracomm::Alltoallv(const void* sendbuf, const int sendcounts[], const int sdispls[], const Datatype& sendtype, void* recvbuf, const int recvcounts[], const int rdispls[], const Datatype& recvtype) const
void Intracomm::Reduce(const void* sendbuf, void* recvbuf, int count, const Datatype& datatype, const Op& op, int root) const
void Op::Init(User_function* function, bool commute)
void Op::Free()
void Intracomm::Allreduce(const void* sendbuf, void* recvbuf, int count, const Datatype& datatype, const Op& op) const
void Intracomm::Reduce_scatter(const void* sendbuf, void* recvbuf, int recvcounts[], const Datatype& datatype, const Op& op) const
void Intracomm::Scan(const void* sendbuf, void* recvbuf, int count, const Datatype& datatype, const Op& op) const
# B.6 MPI-1 Groups, Contexts, and Communicators
int Group::Get_size() const
int Group::Get_rank() const
static void Group::Translate_ranks (const Group& group1, int n, const int ranks1[], const Group& group2, int ranks2[])
static int Group::Compare(const Group& group1, const Group& group2)
Group Comm::Get_group() const
static Group Group::Union(const Group& group1, const Group& group2)
static Group Group::Intersect(const Group& group1, const Group& group2)
static Group Group::Difference(const Group& group1, const Group& group2)
Group Group::Incl(int n, const int ranks[]) const
Group Group::Excl(int n, const int ranks[]) const
Group Group::Range_incl(int n, const int ranges[][3]) const
Group Group::Range_excl(int n, const int ranges[][3]) const
void Group::Free()
int Comm::Get_size() const
int Comm::Get_rank() const
static int Comm::Compare(const Comm& comm1, const Comm& comm2)
Intracomm Intracomm::Dup() const
Intercomm Intercomm::Dup() const
Cartcomm Cartcomm::Dup() const
Graphcomm Graphcomm::Dup() const
Comm& Comm::Clone() const = 0
Intracomm& Intracomm::Clone() const
Intercomm& Intercomm::Clone() const
Cartcomm& Cartcomm::Clone() const
Graphcomm& Graphcomm::Clone() const
Intracomm Intracomm::Create(const Group& group) const
Intracomm Intracomm::Split(int color, int key) const
void Comm::Free()
bool Comm::Is_inter() const
int Intercomm::Get_remote_size() const
Group Intercomm::Get_remote_group() const
Intercomm Intracomm::Create_intercomm(int local_leader, const Comm& peer_comm, int remote_leader, int tag) const
Intracomm Intercomm::Merge(bool high) const
# B.7 MPI-1 Process topologies
Cartcomm Intracomm::Create_cart(int ndims, const int dims[], const bool periods[], bool reorder) const
void Compute_dims(int nnodes, int ndims, int dims[])
Graphcomm Intracomm::Create_graph(int nnodes, const int index[], const int edges[], bool reorder) const
int Comm::Get_topology() const
void Graphcomm::Get_dims(int nnodes[], int nedges[]) const
void Graphcomm::Get_topo(int maxindex, int maxedges, int index[], int edges[]) const
int Cartcomm::Get_dim() const
void Cartcomm::Get_topo(int maxdims, int dims[], bool periods[], int coords[]) const
int Cartcomm::Get_cart_rank(const int coords[]) const
void Cartcomm::Get_coords(int rank, int maxdims, int coords[]) const
int Graphcomm::Get_neighbors_count(int rank) const
void Graphcomm::Get_neighbors(int rank, int maxneighbors, int neighbors[]) const
void Cartcomm::Shift(int direction, int disp, int& rank_source, int& rank_dest) const
Cartcomm Cartcomm::Sub(const bool remain_dims[]) const
int Cartcomm::Map(int ndims, const int dims[], const bool periods[]) const
int Graphcomm::Map(int nnodes, const int index[], const int edges[]) const
# B.8 MPI-1 Environment
void Get_processor_name(char* name, int& resultlen)
void Errhandler::Free()
void Get_error_string(int errorcode, char* name, int& resultlen)
int Get_error_class(int errorcode)
double Wtime()
double Wtick()
void Init(int& argc, char**& argv)
void Init()
void Finalize()
bool Is_initialized()
void Comm::Abort(int errorcode)
# B.9 MPI-1 Profiling
void Pcontrol(const int level, ...)
# B.10 Status access
int Status::Get_source() const
void Status::Set_source(int source)
int Status::Get_tag() const
void Status::Set_tag(int tag)
int Status::Get_error() const
void Status::Set_error(int error)
# B.11 MPI-1.2
void Get_version(int& version, int& subversion)