NewMadeleine

Documentation

« back to PM2 home.
nm_mpi_communicator.h
Go to the documentation of this file.
1/*
2 * NewMadeleine
3 * Copyright (C) 2006-2024 (see AUTHORS file)
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or (at
8 * your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful, but
11 * WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * General Public License for more details.
14 */
15
16
17#ifndef NM_MPI_COMMUNICATOR_H
18#define NM_MPI_COMMUNICATOR_H
19
39 int *size);
40
49 int *rank);
50
51int MPI_Keyval_create(MPI_Copy_function*copy_fn, MPI_Delete_function*delete_fn, int*keyval, void*extra_state);
52
53int MPI_Keyval_free(int*keyval);
54
58int MPI_Attr_get(MPI_Comm comm, int keyval, void*attr_value, int*flag);
59
63int MPI_Attr_put(MPI_Comm comm, int keyval, void*attr_value);
64
65int MPI_Attr_delete(MPI_Comm comm, int keyval);
66
67
68int MPI_Comm_create_keyval(MPI_Comm_copy_attr_function*comm_copy_attr_fn, MPI_Comm_delete_attr_function*comm_delete_attr_fn, int*comm_keyval, void*extra_state);
69
70int MPI_Comm_free_keyval(int*comm_keyval);
71
72int MPI_Comm_get_attr(MPI_Comm comm, int comm_keyval, void*attr_value, int*flag);
73
74int MPI_Comm_set_attr(MPI_Comm comm, int comm_keyval, void*attr_value);
75
76int MPI_Comm_delete_attr(MPI_Comm comm, int comm_keyval);
77
78
80
81int MPI_Comm_get_info(MPI_Comm comm, MPI_Info*info_used);
82
90 MPI_Group group,
91 MPI_Comm*newcomm);
92
93int MPI_Comm_create_group(MPI_Comm comm, MPI_Group group, int tag, MPI_Comm*newcomm);
94
95int MPI_Comm_create_from_group(MPI_Group group, const char*stringtag,
96 MPI_Info info, MPI_Errhandler errhandler, MPI_Comm*newcomm);
97
105 MPI_Group *group);
106
117 int color,
118 int key,
119 MPI_Comm *newcomm);
120
133 int split_type,
134 int key,
135 MPI_Info info,
136 MPI_Comm *newcomm);
137
145int MPI_Comm_dup(MPI_Comm comm, MPI_Comm*newcomm);
146
148
149
156
162int MPI_Comm_test_inter(MPI_Comm comm, int*flag);
163
164int MPI_Comm_set_name(MPI_Comm comm, const char*comm_name);
165
166int MPI_Comm_get_name(MPI_Comm comm, char*comm_name, int *resultlen);
167
169
171
173
174int MPI_Intercomm_create(MPI_Comm local_comm, int local_leader,
175 MPI_Comm peer_comm, int remote_leader,
176 int tag, MPI_Comm*newintercomm);
177
178int MPI_Intercomm_merge(MPI_Comm intercomm, int high, MPI_Comm*newcomm);
179
183int MPI_Comm_compare(MPI_Comm comm1, MPI_Comm comm2, int*result);
184
185
189#endif /* NM_MPI_COMMUNICATOR_H */
nm_tag_t tag
the user-supplied tag
int MPI_Comm_get_attr(MPI_Comm comm, int comm_keyval, void *attr_value, int *flag)
int MPI_Comm_create_keyval(MPI_Comm_copy_attr_function *comm_copy_attr_fn, MPI_Comm_delete_attr_function *comm_delete_attr_fn, int *comm_keyval, void *extra_state)
int MPI_Comm_delete_attr(MPI_Comm comm, int comm_keyval)
int MPI_Comm_split(MPI_Comm comm, int color, int key, MPI_Comm *newcomm)
Partitions the group associated to the communicator into disjoint subgroups, one for each value of co...
int MPI_Comm_create(MPI_Comm comm, MPI_Group group, MPI_Comm *newcomm)
Creates a new communicator.
int MPI_Comm_remote_size(MPI_Comm comm, int *size)
int MPI_Comm_compare(MPI_Comm comm1, MPI_Comm comm2, int *result)
Compares two communicators.
int MPI_Comm_rank(MPI_Comm comm, int *rank)
This function gives the rank of the process in the particular communicator's group.
int MPI_Comm_test_inter(MPI_Comm comm, int *flag)
Tests to see if a comm is an inter-communicator.
int MPI_Comm_set_attr(MPI_Comm comm, int comm_keyval, void *attr_value)
int MPI_Comm_dup(MPI_Comm comm, MPI_Comm *newcomm)
Creates a new intracommunicator with the same fixed attributes as the input intracommunicator.
int MPI_Comm_set_name(MPI_Comm comm, const char *comm_name)
int MPI_Keyval_create(MPI_Copy_function *copy_fn, MPI_Delete_function *delete_fn, int *keyval, void *extra_state)
int MPI_Comm_group(MPI_Comm comm, MPI_Group *group)
Returns a handle to the group of the given communicator.
int MPI_Comm_create_group(MPI_Comm comm, MPI_Group group, int tag, MPI_Comm *newcomm)
int MPI_Keyval_free(int *keyval)
int MPI_Comm_get_parent(MPI_Comm *parent)
int MPI_Comm_get_info(MPI_Comm comm, MPI_Info *info_used)
int MPI_Comm_free_keyval(int *comm_keyval)
int MPI_Attr_get(MPI_Comm comm, int keyval, void *attr_value, int *flag)
This function returns attributes values from communicators.
int MPI_Comm_dup_with_info(MPI_Comm comm, MPI_Info info, MPI_Comm *newcomm)
int MPI_Comm_split_type(MPI_Comm comm, int split_type, int key, MPI_Info info, MPI_Comm *newcomm)
Partitions the group associated to the communicator into disjoint subgroups, based on the type specif...
int MPI_Comm_set_info(MPI_Comm comm, MPI_Info info)
int MPI_Comm_create_from_group(MPI_Group group, const char *stringtag, MPI_Info info, MPI_Errhandler errhandler, MPI_Comm *newcomm)
int MPI_Intercomm_create(MPI_Comm local_comm, int local_leader, MPI_Comm peer_comm, int remote_leader, int tag, MPI_Comm *newintercomm)
int MPI_Comm_free(MPI_Comm *comm)
Marks the communication object for deallocation.
int MPI_Intercomm_merge(MPI_Comm intercomm, int high, MPI_Comm *newcomm)
int MPI_Attr_put(MPI_Comm comm, int keyval, void *attr_value)
Stores attribute value associated with a key.
int MPI_Attr_delete(MPI_Comm comm, int keyval)
int MPI_Comm_remote_group(MPI_Comm comm, MPI_Group *group)
int MPI_Comm_size(MPI_Comm comm, int *size)
This function indicates the number of processes involved in a an intracommunicator.
int MPI_Comm_get_name(MPI_Comm comm, char *comm_name, int *resultlen)
void * extra_state
int MPI_Errhandler
int MPI_Group
Group handle.
int() MPI_Delete_function(MPI_Comm comm, int keyval, void *attribute_val, void *extra_state)
int() MPI_Copy_function(MPI_Comm oldcomm, int keyval, void *extra_state, void *attribute_val_in, void *attribute_val_out, int *flag)
int MPI_Comm
Communicator handle.
int MPI_Info
An info opaque object.
int() MPI_Comm_copy_attr_function(MPI_Comm oldcomm, int comm_keyval, void *extra_state, void *attribute_val_in, void *attribute_val_out, int *flag)
int() MPI_Comm_delete_attr_function(MPI_Comm comm, int comm_keyval, void *attribute_val, void *extra_state)
nm_len_t size
size of the onsided data (not incuding target-side completion)