1<mpi2>
2# A.8.1 Miscellany
3void* MPI::Alloc_mem(MPI::Aint size, const MPI::Info& info)
4static MPI::Errhandler MPI::Comm::Create_errhandler(MPI::Comm::Errhandler_fn* function)
5MPI::Errhandler MPI::Comm::Get_errhandler() const
6void MPI::Comm::Set_errhandler(const MPI::Errhandler& errhandler)
7MPI::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
8MPI::Datatype MPI::Datatype::Create_hindexed(int count, const int array_of_blocklengths[], const MPI::Aint array_of_displacements[]) const
9MPI::Datatype MPI::Datatype::Create_hvector(int count, int blocklength, MPI::Aint stride) const
10MPI::Datatype MPI::Datatype::Create_indexed_block( int count, int blocklength, const int array_of_displacements[]) const
11static 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[])
12MPI::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
13void MPI::Datatype::Get_extent(MPI::Aint& lb, MPI::Aint& extent) const
14void MPI::Datatype::Get_true_extent(MPI::Aint& true_lb, MPI::Aint& true_extent) const
15void MPI::Datatype::Pack_external(const char* datarep, const void* inbuf, int incount, void* outbuf, MPI::Aint outsize, MPI::Aint& position) const
16MPI::Aint MPI::Datatype::Pack_external_size(const char* datarep, int incount) const
17MPI::Datatype MPI::Datatype::Resized(const MPI::Aint lb, const MPI::Aint extent) const
18void MPI::Datatype::Unpack_external(const char* datarep, const void* inbuf, MPI::Aint insize, MPI::Aint& position, void* outbuf, int outcount) const
19static MPI::Errhandler MPI::File::Create_errhandler(MPI::File::Errhandler_fn* function)
20MPI::Errhandler MPI::File::Get_errhandler() const
21void MPI::File::Set_errhandler(const MPI::Errhandler& errhandler)
22void MPI::Free_mem(void *base)
23MPI::Aint MPI::Get_address(void* location)
24static MPI::Info MPI::Info::Create()
25void MPI::Info::Delete(const char* key)
26MPI::Info MPI::Info::Dup() const
27void MPI::Info::Free()
28bool MPI::Info::Get(const char* key, int valuelen, char* value) const
29int MPI::Info::Get_nkeys() const
30void MPI::Info::Get_nthkey(int n, char* key) const
31bool MPI::Info::Get_valuelen(const char* key, int& valuelen) const
32void MPI::Info::Set(const char* key, const char* value)
33bool MPI::Is_finalized()
34bool MPI::Request::Get_status(MPI::Status& status) const
35bool MPI::Request::Get_status() const
36static MPI::Errhandler MPI::Win::Create_errhandler(MPI::Win::Errhandler_fn* function)
37MPI::Errhandler MPI::Win::Get_errhandler() const
38void MPI::Win::Set_errhandler(const MPI::Errhandler& errhandler)
39# A.8.2 Process creation
40void MPI::Close_port(const char* port_name)
41void MPI::Comm::Disconnect()
42static MPI::Intercomm MPI::Comm::Get_parent()
43static MPI::Intercomm MPI::Comm::Join(const int fd)
44MPI::Intercomm MPI::Intracomm::Accept(const char* port_name, const MPI::Info& info, int root) const
45MPI::Intercomm MPI::Intracomm::Connect(const char* port_name, const MPI::Info& info, int root) const
46MPI::Intercomm MPI::Intracomm::Spawn(const char* command, const char* argv[], int maxprocs, const MPI::Info& info, int root) const
47MPI::Intercomm MPI::Intracomm::Spawn(const char* command, const char* argv[], int maxprocs, const MPI::Info& info, int root, int array_of_errcodes[]) const
48MPI::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)
49MPI::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[])
50void MPI::Lookup_name(const char* service_name, const MPI::Info& info, char* port_name)
51void MPI::Open_port(const MPI::Info& info, char* port_name)
52void MPI::Publish_name(const char* service_name, const MPI::Info& info, const char* port_name)
53void MPI::Unpublish_name(const char* service_name, const MPI::Info& info, const char* port_name)
54# A.8.3 One sided
55void 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
56void MPI::Win::Complete() const
57static MPI::Win MPI::Win::Create(const void* base, MPI::Aint size, int disp_unit, const MPI::Info& info, const MPI::Intracomm& comm)
58void MPI::Win::Fence(int assert) const
59void MPI::Win::Free()
60void 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
61MPI::Group MPI::Win::Get_group() const
62void MPI::Win::Lock(int lock_type, int rank, int assert) const
63void MPI::Win::Post(const MPI::Group& group, int assert) const
64void 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
65void MPI::Win::Start(const MPI::Group& group, int assert) const
66bool MPI::Win::Test() const
67void MPI::Win::Unlock(int rank) const
68void MPI::Win::Wait() const
69# A 8.4 Extended collective
70oid MPI::Comm::Allgather(const void* sendbuf, int sendcount, const MPI::Datatype& sendtype, void* recvbuf, int recvcount, const MPI::Datatype& recvtype) const = 0
71void 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
72void MPI::Comm::Allreduce(const void* sendbuf, void* recvbuf, int count, const MPI::Datatype& datatype, const MPI::Op& op) const = 0
73void MPI::Comm::Alltoall(const void* sendbuf, int sendcount, const MPI::Datatype& sendtype, void* recvbuf, int recvcount, const MPI::Datatype& recvtype) const = 0
74void 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
75void 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
76void MPI::Comm::Barrier() const = 0
77void MPI::Comm::Bcast(void* buffer, int count, const MPI::Datatype& datatype, int root) const = 0
78void MPI::Comm::Gather(const void* sendbuf, int sendcount, const MPI::Datatype& sendtype, void* recvbuf, int recvcount, const MPI::Datatype& recvtype, int root) const = 0
79void 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
80void MPI::Comm::Reduce(const void* sendbuf, void* recvbuf, int count, const MPI::Datatype& datatype, const MPI::Op& op, int root) const = 0
81void MPI::Comm::Reduce_scatter(const void* sendbuf, void* recvbuf, int recvcounts[], const MPI::Datatype& datatype, const MPI::Op& op) const = 0
82void MPI::Comm::Scatter(const void* sendbuf, int sendcount, const MPI::Datatype& sendtype, void* recvbuf, int recvcount, const MPI::Datatype& recvtype, int root) const = 0
83void 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
84MPI::Intercomm MPI::Intercomm::Create(const Group& group) const
85MPI::Intercomm MPI::Intercomm::Split(int color, int key) const
86#MPI::Intracomm MPI::Intracomm::Create(const Group& group) const
87void MPI::Intracomm::Exscan(const void* sendbuf, void* recvbuf, int count, const MPI::Datatype& datatype, const MPI::Op& op) const
88#MPI::Intracomm MPI::Intracomm::Split(int color, int key) const
89# A.8.5 External
90int MPI::Add_error_class()
91int MPI::Add_error_code(int errorclass)
92void MPI::Add_error_string(int errorcode, const char* string)
93void MPI::Comm::Call_errhandler(int errorcode) const
94static 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)
95void MPI::Comm::Delete_attr(int comm_keyval)
96static void MPI::Comm::Free_keyval(int& comm_keyval)
97bool MPI::Comm::Get_attr(int comm_keyval, void* attribute_val) const
98void MPI::Comm::Get_name(char* comm_name, int& resultlen) const
99void MPI::Comm::Set_attr(int comm_keyval, const void* attribute_val) const
100void MPI::Comm::Set_name(const char* comm_name)
101static 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)
102void MPI::Datatype::Delete_attr(int type_keyval)
103MPI::Datatype MPI::Datatype::Dup() const
104static void MPI::Datatype::Free_keyval(int& type_keyval)
105bool MPI::Datatype::Get_attr(int type_keyval, void* attribute_val) const
106void 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
107void MPI::Datatype::Get_envelope(int& num_integers, int& num_addresses, int& num_datatypes, int& combiner) const
108void MPI::Datatype::Get_name(char* type_name, int& resultlen) const
109void MPI::Datatype::Set_attr(int type_keyval, const void* attribute_val)
110void MPI::Datatype::Set_name(const char* type_name)
111void MPI::File::Call_errhandler(int errorcode) const
112void MPI::Grequest::Complete()
113static 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)
114int MPI::Init_thread(int required)
115int MPI::Init_thread(int& argc, char**& argv, int required)
116bool MPI::Is_thread_main()
117int MPI::Query_thread()
118void MPI::Status::Set_cancelled(bool flag)
119void MPI::Status::Set_elements(const MPI::Datatype& datatype, int count)
120void MPI::Win::Call_errhandler(int errorcode) const
121static 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)
122void MPI::Win::Delete_attr(int win_keyval)
123static void MPI::Win::Free_keyval(int& win_keyval)
124# Get_attr for Win had the wrong prototype in the 2.0 standard (see the errata)
125bool MPI::Win::Get_attr(int win_keyval, void* attribute_val) const
126void MPI::Win::Get_name(char* win_name, int& resultlen) const
127void MPI::Win::Set_attr(int win_keyval, const void* attribute_val)
128void MPI::Win::Set_name(const char* win_name)
129# A8.6 I/O
130void MPI::File::Close()
131static void MPI::File::Delete(const char* filename, const MPI::Info& info)
132int MPI::File::Get_amode() const
133bool MPI::File::Get_atomicity() const
134MPI::Offset MPI::File::Get_byte_offset(const MPI::Offset disp) const
135MPI::Group MPI::File::Get_group() const
136MPI::Info MPI::File::Get_info() const
137MPI::Offset MPI::File::Get_position() const
138MPI::Offset MPI::File::Get_position_shared() const
139MPI::Offset MPI::File::Get_size() const
140MPI::Aint MPI::File::Get_type_extent(const MPI::Datatype& datatype) const
141void MPI::File::Get_view(MPI::Offset& disp, MPI::Datatype& etype, MPI::Datatype& filetype, char* datarep) const
142MPI::Request MPI::File::Iread(void* buf, int count, const MPI::Datatype& datatype)
143MPI::Request MPI::File::Iread_at(MPI::Offset offset, void* buf, int count, const MPI::Datatype& datatype)
144MPI::Request MPI::File::Iread_shared(void* buf, int count, const MPI::Datatype& datatype)
145MPI::Request MPI::File::Iwrite(const void* buf, int count, const MPI::Datatype& datatype)
146MPI::Request MPI::File::Iwrite_at(MPI::Offset offset, const void* buf, int count, const MPI::Datatype& datatype)
147MPI::Request MPI::File::Iwrite_shared(const void* buf, int count, const MPI::Datatype& datatype)
148static MPI::File MPI::File::Open(const MPI::Intracomm& comm, const char* filename, int amode, const MPI::Info& info)
149void MPI::File::Preallocate(MPI::Offset size)
150void MPI::File::Read(void* buf, int count, const MPI::Datatype& datatype, MPI::Status& status)
151void MPI::File::Read(void* buf, int count, const MPI::Datatype& datatype)
152void MPI::File::Read_all(void* buf, int count, const MPI::Datatype& datatype, MPI::Status& status)
153void MPI::File::Read_all(void* buf, int count, const MPI::Datatype& datatype)
154void MPI::File::Read_all_begin(void* buf, int count, const MPI::Datatype& datatype)
155void MPI::File::Read_all_end(void* buf, MPI::Status& status)
156void MPI::File::Read_all_end(void* buf)
157void MPI::File::Read_at(MPI::Offset offset, void* buf, int count, const MPI::Datatype& datatype, MPI::Status& status)
158void MPI::File::Read_at(MPI::Offset offset, void* buf, int count, const MPI::Datatype& datatype)
159void MPI::File::Read_at_all(MPI::Offset offset, void* buf, int count, const MPI::Datatype& datatype, MPI::Status& status)
160void MPI::File::Read_at_all(MPI::Offset offset, void* buf, int count, const MPI::Datatype& datatype)
161void MPI::File::Read_at_all_begin(MPI::Offset offset, void* buf, int count, const MPI::Datatype& datatype)
162void MPI::File::Read_at_all_end(void* buf, MPI::Status& status)
163void MPI::File::Read_at_all_end(void* buf)
164void MPI::File::Read_ordered(void* buf, int count, const MPI::Datatype& datatype, MPI::Status& status)
165void MPI::File::Read_ordered(void* buf, int count, const MPI::Datatype& datatype)
166void MPI::File::Read_ordered_begin(void* buf, int count, const MPI::Datatype& datatype)
167void MPI::File::Read_ordered_end(void* buf, MPI::Status& status)
168void MPI::File::Read_ordered_end(void* buf)
169void MPI::File::Read_shared(void* buf, int count, const MPI::Datatype& datatype, MPI::Status& status)
170void MPI::File::Read_shared(void* buf, int count, const MPI::Datatype& datatype)
171void MPI::File::Seek(MPI::Offset offset, int whence)
172void MPI::File::Seek_shared(MPI::Offset offset, int whence)
173void MPI::File::Set_atomicity(bool flag)
174void MPI::File::Set_info(const MPI::Info& info)
175void MPI::File::Set_size(MPI::Offset size)
176void MPI::File::Set_view(MPI::Offset disp, const MPI::Datatype& etype, const MPI::Datatype& filetype, const char* datarep, const MPI::Info& info)
177void MPI::File::Sync()
178void MPI::File::Write(const void* buf, int count, const MPI::Datatype& datatype, MPI::Status& status)
179void MPI::File::Write(const void* buf, int count, const MPI::Datatype& datatype)
180void MPI::File::Write_all(const void* buf, int count, const MPI::Datatype& datatype, MPI::Status& status)
181void MPI::File::Write_all(const void* buf, int count, const MPI::Datatype& datatype)
182void MPI::File::Write_all_begin(const void* buf, int count, const MPI::Datatype& datatype)
183void MPI::File::Write_all_end(const void* buf, MPI::Status& status)
184void MPI::File::Write_all_end(const void* buf)
185void MPI::File::Write_at(MPI::Offset offset, const void* buf, int count, const MPI::Datatype& datatype, MPI::Status& status)
186void MPI::File::Write_at(MPI::Offset offset, const void* buf, int count, const MPI::Datatype& datatype)
187void MPI::File::Write_at_all(MPI::Offset offset, const void* buf, int count, const MPI::Datatype& datatype, MPI::Status& status)
188void MPI::File::Write_at_all(MPI::Offset offset, const void* buf, int count, const MPI::Datatype& datatype)
189void MPI::File::Write_at_all_begin(MPI::Offset offset, const void* buf, int count, const MPI::Datatype& datatype)
190void MPI::File::Write_at_all_end(const void* buf, MPI::Status& status)
191void MPI::File::Write_at_all_end(const void* buf)
192void MPI::File::Write_ordered(const void* buf, int count, const MPI::Datatype& datatype, MPI::Status& status)
193void MPI::File::Write_ordered(const void* buf, int count, const MPI::Datatype& datatype)
194void MPI::File::Write_ordered_begin(const void* buf, int count, const MPI::Datatype& datatype)
195void MPI::File::Write_ordered_end(const void* buf, MPI::Status& status)
196void MPI::File::Write_ordered_end(const void* buf)
197void MPI::File::Write_shared(const void* buf, int count, const MPI::Datatype& datatype, MPI::Status& status)
198void MPI::File::Write_shared(const void* buf, int count, const MPI::Datatype& datatype)
199void 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)
200# A8.7 Language bindings
201static MPI::Datatype MPI::Datatype::Create_f90_complex(int p, int r)
202static MPI::Datatype MPI::Datatype::Create_f90_integer(int r)
203static MPI::Datatype MPI::Datatype::Create_f90_real(int p, int r)
204static MPI::Datatype MPI::Datatype::Match_size(int typeclass, int size)
205
206# B.4 MPI-1 pt-2-pt
207<mpi1>
208void Comm::Send(const void* buf, int count, const Datatype& datatype, int dest, int tag) const
209void Comm::Recv(void* buf, int count, const Datatype& datatype, int source, int tag, Status& status) const
210void Comm::Recv(void* buf, int count, const Datatype& datatype, int source, int tag) const
211int Status::Get_count(const Datatype& datatype) const
212void Comm::Bsend(const void* buf, int count, const Datatype& datatype, int dest, int tag) const
213void Comm::Ssend(const void* buf, int count, const Datatype& datatype, int dest, int tag) const
214void Comm::Rsend(const void* buf, int count, const Datatype& datatype, int dest, int tag) const
215
216void Attach_buffer(void* buffer, int size)
217int Detach_buffer(void*& buffer)
218
219
220Request Comm::Isend(const void* buf, int count, const Datatype& datatype, int dest, int tag) const
221Request Comm::Ibsend(const void* buf, int count, const Datatype& datatype, int dest, int tag) const
222Request Comm::Issend(const void* buf, int count, const Datatype& datatype, int dest, int tag) const
223Request Comm::Irsend(const void* buf, int count, const Datatype& datatype, int dest, int tag) const
224Request Comm::Irecv(void* buf, int count, const Datatype& datatype, int source, int tag) const
225
226
227void Request::Wait(Status& status)
228void Request::Wait()
229bool Request::Test(Status& status)
230bool Request::Test()
231void Request::Free()
232static int Request::Waitany(int count, Request array_of_requests[], Status& status)
233static int Request::Waitany(int count, Request array_of_requests[])
234static bool Request::Testany(int count, Request array_of_requests[], int& index, Status& status)
235static bool Request::Testany(int count, Request array_of_requests[], int& index)
236static void Request::Waitall(int count, Request array_of_requests[], Status array_of_statuses[])
237static void Request::Waitall(int count, Request array_of_requests[])
238static bool Request::Testall(int count, Request array_of_requests[], Status array_of_statuses[])
239static bool Request::Testall(int count, Request array_of_requests[])
240static int Request::Waitsome(int incount, Request array_of_requests[], int array_of_indices[], Status array_of_statuses[])
241static int Request::Waitsome(int incount, Request array_of_requests[], int array_of_indices[])
242static int Request::Testsome(int incount, Request array_of_requests[], int array_of_indices[], Status array_of_statuses[])
243static int Request::Testsome(int incount, Request array_of_requests[], int array_of_indices[])
244
245
246bool Comm::Iprobe(int source, int tag, Status& status) const
247bool Comm::Iprobe(int source, int tag) const
248void Comm::Probe(int source, int tag, Status& status) const
249void Comm::Probe(int source, int tag) const
250
251
252void Request::Cancel() const
253bool Status::Is_cancelled() const
254
255
256Prequest Comm::Send_init(const void* buf, int count, const Datatype& datatype, int dest, int tag) const
257Prequest Comm::Bsend_init(const void* buf, int count, const Datatype& datatype, int dest, int tag) const
258Prequest Comm::Ssend_init(const void* buf, int count, const Datatype& datatype, int dest, int tag) const
259Prequest Comm::Rsend_init(const void* buf, int count, const Datatype& datatype, int dest, int tag) const
260Prequest Comm::Recv_init(void* buf, int count, const Datatype& datatype, int source, int tag) const
261void Prequest::Start()
262static void Prequest::Startall(int count, Prequest array_of_requests[])
263
264
265void 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
266void 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
267void Comm::Sendrecv_replace(void* buf, int count, const Datatype& datatype, int dest, int sendtag, int source, int recvtag, Status& status) const
268void Comm::Sendrecv_replace(void* buf, int count, const Datatype& datatype, int dest, int sendtag, int source, int recvtag) const
269
270
271Datatype Datatype::Create_contiguous(int count) const
272Datatype Datatype::Create_vector(int count, int blocklength, int stride) const
273
274
275Datatype Datatype::Create_indexed(int count, const int array_of_blocklengths[], const int array_of_displacements[]) const
276
277
278
279int Datatype::Get_size() const
280
281
282void Datatype::Commit()
283void Datatype::Free()
284int Status::Get_elements(const Datatype& datatype) const
285void Datatype::Pack(const void* inbuf, int incount, void *outbuf, int outsize, int& position, const Comm &comm) const
286void Datatype::Unpack(const void* inbuf, int insize, void *outbuf, int outcount, int& position, const Comm& comm) const
287int Datatype::Pack_size(int incount, const Comm& comm) const
288
289# B.5 MPI-1 Collective
290void Intracomm::Barrier() const
291void Intracomm::Bcast(void* buffer, int count, const Datatype& datatype, int root) const
292void Intracomm::Gather(const void* sendbuf, int sendcount, const Datatype& sendtype, void* recvbuf, int recvcount, const Datatype& recvtype, int root) const
293void Intracomm::Gatherv(const void* sendbuf, int sendcount, const Datatype& sendtype, void* recvbuf, const int recvcounts[], const int displs[], const Datatype& recvtype, int root) const
294void Intracomm::Scatter(const void* sendbuf, int sendcount, const Datatype& sendtype, void* recvbuf, int recvcount, const Datatype& recvtype, int root) const
295void Intracomm::Scatterv(const void* sendbuf, const int sendcounts[], const int displs[], const Datatype& sendtype, void* recvbuf, int recvcount, const Datatype& recvtype, int root) const
296void Intracomm::Allgather(const void* sendbuf, int sendcount, const Datatype& sendtype, void* recvbuf, int recvcount, const Datatype& recvtype) const
297void Intracomm::Allgatherv(const void* sendbuf, int sendcount, const Datatype& sendtype, void* recvbuf, const int recvcounts[], const int displs[], const Datatype& recvtype) const
298void Intracomm::Alltoall(const void* sendbuf, int sendcount, const Datatype& sendtype, void* recvbuf, int recvcount, const Datatype& recvtype) const
299void 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
300void Intracomm::Reduce(const void* sendbuf, void* recvbuf, int count, const Datatype& datatype, const Op& op, int root) const
301void Op::Init(User_function* function, bool commute)
302void Op::Free()
303void Intracomm::Allreduce(const void* sendbuf, void* recvbuf, int count, const Datatype& datatype, const Op& op) const
304void Intracomm::Reduce_scatter(const void* sendbuf, void* recvbuf, int recvcounts[], const Datatype& datatype, const Op& op) const
305void Intracomm::Scan(const void* sendbuf, void* recvbuf, int count, const Datatype& datatype, const Op& op) const
306
307# B.6 MPI-1 Groups, Contexts, and Communicators
308int Group::Get_size() const
309int Group::Get_rank() const
310
311
312static void Group::Translate_ranks (const Group& group1, int n, const int ranks1[], const Group& group2, int ranks2[])
313static int Group::Compare(const Group& group1, const Group& group2)
314
315
316
317Group Comm::Get_group() const
318
319
320
321static Group Group::Union(const Group& group1, const Group& group2)
322static Group Group::Intersect(const Group& group1, const Group& group2)
323static Group Group::Difference(const Group& group1, const Group& group2)
324
325
326
327Group Group::Incl(int n, const int ranks[]) const
328Group Group::Excl(int n, const int ranks[]) const
329Group Group::Range_incl(int n, const int ranges[][3]) const
330Group Group::Range_excl(int n, const int ranges[][3]) const
331void Group::Free()
332int Comm::Get_size() const
333int Comm::Get_rank() const
334
335
336
337static int Comm::Compare(const Comm& comm1, const Comm& comm2)
338
339
340
341
342Intracomm Intracomm::Dup() const
343Intercomm Intercomm::Dup() const
344Cartcomm Cartcomm::Dup() const
345Graphcomm Graphcomm::Dup() const
346Comm& Comm::Clone() const = 0
347Intracomm& Intracomm::Clone() const
348Intercomm& Intercomm::Clone() const
349Cartcomm& Cartcomm::Clone() const
350Graphcomm& Graphcomm::Clone() const
351
352
353
354Intracomm Intracomm::Create(const Group& group) const
355Intracomm Intracomm::Split(int color, int key) const
356void Comm::Free()
357
358
359bool Comm::Is_inter() const
360int Intercomm::Get_remote_size() const
361Group Intercomm::Get_remote_group() const
362Intercomm Intracomm::Create_intercomm(int local_leader, const Comm& peer_comm, int remote_leader, int tag) const
363
364
365Intracomm Intercomm::Merge(bool high) const
366
367# B.7 MPI-1 Process topologies
368Cartcomm Intracomm::Create_cart(int ndims, const int dims[], const bool periods[], bool reorder) const
369void Compute_dims(int nnodes, int ndims, int dims[])
370Graphcomm Intracomm::Create_graph(int nnodes, const int index[], const int edges[], bool reorder) const
371int Comm::Get_topology() const
372void Graphcomm::Get_dims(int nnodes[], int nedges[]) const
373void Graphcomm::Get_topo(int maxindex, int maxedges, int index[], int edges[]) const
374int Cartcomm::Get_dim() const
375void Cartcomm::Get_topo(int maxdims, int dims[], bool periods[], int coords[]) const
376int Cartcomm::Get_cart_rank(const int coords[]) const
377void Cartcomm::Get_coords(int rank, int maxdims, int coords[]) const
378int Graphcomm::Get_neighbors_count(int rank) const
379void Graphcomm::Get_neighbors(int rank, int maxneighbors, int neighbors[]) const
380void Cartcomm::Shift(int direction, int disp, int& rank_source, int& rank_dest) const
381Cartcomm Cartcomm::Sub(const bool remain_dims[]) const
382int Cartcomm::Map(int ndims, const int dims[], const bool periods[]) const
383int Graphcomm::Map(int nnodes, const int index[], const int edges[]) const
384
385# B.8 MPI-1 Environment
386void Get_processor_name(char* name, int& resultlen)
387void Errhandler::Free()
388void Get_error_string(int errorcode, char* name, int& resultlen)
389int Get_error_class(int errorcode)
390
391double Wtime()
392double Wtick()
393
394
395void Init(int& argc, char**& argv)
396void Init()
397void Finalize()
398bool Is_initialized()
399void Comm::Abort(int errorcode)
400
401
402# B.9 MPI-1 Profiling
403void Pcontrol(const int level, ...)
404
405# B.10 Status access
406
407int Status::Get_source() const
408void Status::Set_source(int source)
409int Status::Get_tag() const
410void Status::Set_tag(int tag)
411int Status::Get_error() const
412void Status::Set_error(int error)
413
414# B.11 MPI-1.2
415void Get_version(int& version, int& subversion)
416
417