diff --git a/ompi/mpi/man/man3/MPI_Comm_create_from_group.3.md b/ompi/mpi/man/man3/MPI_Comm_create_from_group.3.md new file mode 100644 index 00000000000..52739ef9f20 --- /dev/null +++ b/ompi/mpi/man/man3/MPI_Comm_create_from_group.3.md @@ -0,0 +1,89 @@ +# Name + +`MPI_Comm_create_from_group` - Creates a new communicator from a group and stringtag + +# Syntax + +## C Syntax + +```c +#include + +int MPI_Comm_create_from_group(MPI_Group group, const char *stringtag, MPI_Info info, MPI_Errhandler errhandler, MPI_Comm *newcomm) +``` + +## Fortran Syntax + +```fortran +USE MPI +! or the older form: INCLUDE 'mpif.h' + +MPI_COMM_CREATE_FROM_GROUP(GROUP, STRINGTAG, INFO, ERRHANDLER, NEWCOMM, IERROR) + INTEGER GROUP, INFO, ERRHANDLER, NEWCOMM, IERROR + CHARACTER*(*) STRINGTAG +``` + +## Fortran 2008 Syntax + +```fortran +USE mpi_f08 + +MPI_Comm_create_from_group(group, stringtag, info, errhandler, newcomm, ierror) + TYPE(MPI_Group), INTENT(IN) :: group + CHARACTER(LEN=*), INTENT(IN) :: stringtag + TYPE(MPI_Info), INTENT(IN) :: info + TYPE(MPI_Errhandler), INTENT(IN) :: errhandler + TYPE(MPI_Comm), INTENT(OUT) :: newcomm + INTEGER, OPTIONAL, INTENT(OUT) :: ierror +``` + +# Input Parameters + +* `group` : Group (handler) +* `stringtag` : Unique identifier for this operation (string) +* `info` : info object (handler) +* `errhandler` : error handler to be attached to the new intra-communicator (handle) + +# Output Parameters + +* `newcomm` : New communicator (handle). +* `IERROR` : Fortran only: Error status (integer). + +# Description + +`MPI_Comm_create_from_group` is similar to `MPI_Comm_create_group`, except +that the set of MPI processes involved in the creation of the new intra-communicator +is specified by a group argument, rather than the group associated with a pre-existing communicator. +If a non-empty group is specified, then all MPI processes in that group must call +the function and each of these MPI processes must provide the same arguments, including +a `group` that contains the same members with the same ordering, and identical `stringtag` +value. In the event that `MPI_GROUP_EMPTY` is supplied as the group argument, then the +call is a local operation and `MPI_COMM_NULL` is returned as `newcomm`. The `stringtag` argument +is analogous to the `tag` used for `MPI_Comm_create_group`. If multiple threads at +a given MPI process perform concurrent `MPI_Comm_create_from_group` operations, +the user must distinguish these operations by providing different `stringtag` arguments. The +`stringtag` shall not exceed MPI_MAX_STRINGTAG_LEN characters in length. For C, this includes +space for a null terminating character. + +# Notes + +The `errhandler` argument specifies an error handler to be attached to the new intracommunicator. +The `info` argument provides hints and assertions, possibly MPI implementation dependent, which +indicate desired characteristics and guide communicator creation. MPI_MAX_STRINGTAG_LEN shall have a value +of at least 63. + + +# Errors + +Almost all MPI routines return an error value; C routines as the value +of the function and Fortran routines in the last argument. +Before the error value is returned, the current MPI error handler is +called. By default, this error handler aborts the MPI job, except for +I/O function errors. The error handler may be changed with +`MPI_Comm_set_errhandler`; the predefined error handler `MPI_ERRORS_RETURN` +may be used to cause error values to be returned. Note that MPI does not +guarantee that an MPI program can continue past an error. + +# See Also + +[`MPI_Comm_create_group`(3)](MPI_Comm_create_group.html) diff --git a/ompi/mpi/man/man3/MPI_Group_from_session_pset.3.md b/ompi/mpi/man/man3/MPI_Group_from_session_pset.3.md new file mode 100644 index 00000000000..486d7cfcbb4 --- /dev/null +++ b/ompi/mpi/man/man3/MPI_Group_from_session_pset.3.md @@ -0,0 +1,75 @@ +# Name + +`MPI_Group_from_session_pset` - Creates a group using a provided session handle and process set. + +# Syntax + +## C Syntax + +```c +#include + +int MPI_Group_from_session_pset(MPI_Session session, const char *pset_name, MPI_Group *newgroup) +``` + +## Fortran Syntax + +```fortran +USE MPI +! or the older form: INCLUDE 'mpif.h' + +MPI_GROUP_FROM_SESSION_PSET(SESSION, PSET_NAME, NEWGROUP, IERROR) + INTEGER SESSION, NEWGROUP, IERROR + CHARACTER*(*) PSET_NAME +``` + +## Fortran 2008 Syntax + +```fortran +USE mpi_f08 + +MPI_Group_from_session_pset(session, pset_name, newgroup, ierror) + TYPE(MPI_Session), INTENT(IN) :: session + CHARACTER(LEN=*), INTENT(IN) :: pset_name + TYPE(MPI_Group), INTENT(OUT) :: newgroup + INTEGER, OPTIONAL, INTENT(OUT) :: ierror +``` + +# Input Parameters + +* `session` : Session (handle). +* `pset_name` : name of process set to use to create the new group (string) + +# Output Parameters + +* `newgroup` : New group derived from supplied session and process set (handle). +* `IERROR` : Fortran only: Error status (integer). + +# Description + +The function `MPI_Group_from_session_pset` creates a group `newgroup` using the +provided `session` handle and `process set`. The process set name must be one returned from +an invocation of `MPI_Session_get_nth_pset` using the supplied `session` handle. If the +`pset_name` does not exist, MPI_GROUP_NULL will be returned in the `newgroup` argument. + +# Note + +As with other group constructors, `MPI_Group_from_session_pset` is a local function. + +# Errors + +Almost all MPI routines return an error value; C routines as the value +of the function and Fortran routines in the last argument. + +Before the error value is returned, the current MPI error handler is +called. By default, this error handler aborts the MPI job, except for +I/O function errors. The error handler may be changed with +`MPI_Session_set_errhandler`; the predefined error handler `MPI_ERRORS_RETURN` +may be used to cause error values to be returned. Note that MPI does not +guarantee that an MPI program can continue past an error. + +# See Also + +[`MPI_Session_init`(3)](MPI_Session_init.html) +[`MPI_Session_get_nth_pset`(3)](MPI_Session_get_nth_pset.html) +[`MPI_Group_free`(3)](MPI_Group_free.html) diff --git a/ompi/mpi/man/man3/MPI_Intercomm_create_from_groups.3.md b/ompi/mpi/man/man3/MPI_Intercomm_create_from_groups.3.md new file mode 100644 index 00000000000..6cd96541653 --- /dev/null +++ b/ompi/mpi/man/man3/MPI_Intercomm_create_from_groups.3.md @@ -0,0 +1,92 @@ +# Name + +`MPI_Intercomm_create_from_groups` - Creates a new inter-communicator from a local and remote group and stringtag + +# Syntax + +## C Syntax + +```c +#include + +int MPI_Intercomm_create_from_groups(MPI_Group local_group, int local_leader, MPI_Group remote_group, int remote_leader, const char *stringtag, MPI_Info info, MPI_Errhandler errhandler, MPI_Comm *newintercomm) +``` + +## Fortran Syntax + +```fortran +USE MPI +! or the older form: INCLUDE 'mpif.h' + +MPI_INTERCOMM_CREATE_FROM_GROUPS(LOCAL_GROUP, LOCAL_LEADER, REMOTE_GROUP, REMOTE_LEADER, STRINGTAG, INFO, ERRHANDLER, NEWINTERCOMM, IERROR) + INTEGER LOCAL_GROUP, LOCAL_LEADER, REMOTE_GROUP, REMOTE_LEADER, INFO, ERRHANDLER, NEWINTERCOMM, IERROR + CHARACTER*(*) STRINGTAG +``` + +## Fortran 2008 Syntax + +```fortran +USE mpi_f08 + +MPI_Intercomm_create_from_groups(local_group, local_leader, remote_group, remote_leader, stringtag, info, errhandler, newintercomm, ierror) + TYPE(MPI_Group), INTENT(IN) :: local_group, remote_group + INTEGER, INTENT(IN) :: local_leader, remote_leader + CHARACTER(LEN=*), INTENT(IN) :: stringtag + TYPE(MPI_Info), INTENT(IN) :: info + TYPE(MPI_Errhandler), INTENT(IN) :: errhandler + TYPE(MPI_Comm), INTENT(OUT) :: newintercomm + INTEGER, OPTIONAL, INTENT(OUT) :: ierror +``` + +# Input Parameters + +* `local_group` : Local group (handler) +* `local_leader` : rank of local group leader in local_group (integer) +* `remote_group` : Remote group (handler) +* `remote_leader` : rank of remote leader in remote_group, significant only at local_leader (integer) +* `stringtag` : Unique identifier for this operation (string) +* `info` : info object (handler) +* `errhandler` : error handler to be attached to the new inter-communicator (handle) + +# Output Parameters + +* `newintercomm` : New inter-communicator (handle). +* `IERROR` : Fortran only: Error status (integer). + +# Description + +`MPI_Intercomm_create_from_groups` creates an inter-communicator. Unlike `MPI_Intercomm_create`, this function +uses as input previously defined, disjoint local and remote groups. The calling MPI +process must be a member of the local group. The call is collective over the union of +the local and remote groups. All involved MPI processes shall provide an identical value +for the `stringtag` argument. Within each group, all MPI processes shall provide identical +`local_group`, `local_leader` arguments. Wildcards are not permitted for the +`remote_leader` or `local_leader` arguments. The `stringtag` argument serves the same purpose +as the `stringtag` used in the `MPI_Comm_create_from_group` function; it differentiates +concurrent calls in a multithreaded environment. The `stringtag` shall not exceed +`MPI_MAX_STRINGTAG_LEN` characters in length. For C, this includes space for a null terminating +character. In the event that MPI_GROUP_EMPTY is supplied as the `local_group` or `remote_group1 or both, then the +call is a local operation and MPI_COMM_NULL is returned as the newintercomm`. + +# Notes + +The `errhandler` argument specifies an error handler to be attached to the new inter-communicator. +The `info` argument provides hints and assertions, possibly MPI implementation dependent, which +indicate desired characteristics and guide communicator creation. MPI_MAX_STRINGTAG_LEN shall have a value +of at least 63. + + +# Errors + +Almost all MPI routines return an error value; C routines as the value +of the function and Fortran routines in the last argument. +Before the error value is returned, the current MPI error handler is +called. By default, this error handler aborts the MPI job, except for +I/O function errors. The error handler may be changed with +`MPI_Comm_set_errhandler`; the predefined error handler `MPI_ERRORS_RETURN` +may be used to cause error values to be returned. Note that MPI does not +guarantee that an MPI program can continue past an error. + +# See Also + +[`MPI_Comm_create_from_group`(3)](MPI_Comm_create_from_group.html) diff --git a/ompi/mpi/man/man3/MPI_Session_create_errhandler.3.md b/ompi/mpi/man/man3/MPI_Session_create_errhandler.3.md new file mode 100644 index 00000000000..b2d74a3ad11 --- /dev/null +++ b/ompi/mpi/man/man3/MPI_Session_create_errhandler.3.md @@ -0,0 +1,76 @@ +# Name + +`MPI_Session_create_errhandler` - Creates an error handler that can be +attached to sessions + +# Syntax + +## C Syntax + +```c +#include + +int MPI_Session_create_errhandler(MPI_Session_errhandler_function *function, + MPI_Errhandler *errhandler) +``` + +## Fortran Syntax + +```fortran +USE MPI +! or the older form: INCLUDE 'mpif.h' + +MPI_SESSION_CREATE_ERRHANDLER(FUNCTION, ERRHANDLER, IERROR) + EXTERNAL FUNCTION + INTEGER ERRHANDLER, IERROR +``` + +## Fortran 2008 Syntax + +```fortran +USE mpi_f08 + +MPI_Session_create_errhandler(session_errhandler_fn, errhandler, ierror) + PROCEDURE(MPI_Session_errhandler_function) :: session_errhandler_fn + TYPE(MPI_Errhandler), INTENT(OUT) :: errhandler + INTEGER, OPTIONAL, INTENT(OUT) :: ierror +``` + +# Input Parameter + +* `function` : User-defined error handling procedure (function). + +# Output Parameters + +* `errhandler` : MPI error handler (handle). +* `IERROR` : Fortran only: Error status (integer). + +# Description + +`MPI_Session_create_errhandler` creates an error handler that can be attached +to sessions. This `function` is identical to `MPI_Errhandler_create`, +the use of which is deprecated. +In C, the user routine should be a `function` of type +`MPI_Session_errhandler_function`, which is defined as +```c +typedef void MPI_Session_errhandler_function(MPI_Session *, int *, ...); +``` +The first argument is the session in use. The second is the error +code to be returned by the MPI routine that raised the error. This +typedef replaces `MPI_Handler_function`, the use of which is deprecated. +In Fortran, the user routine should be of this form: +```fortran +SUBROUTINE SESSION_ERRHANDLER_FUNCTION(SESSION, ERROR_CODE, ...) + INTEGER SESSION, ERROR_CODE +``` + +# Errors + +Almost all MPI routines return an error value; C routines as the value +of the `function` and Fortran routines in the last argument. +Before the error value is returned, the current MPI error handler is +called. By default, this error handler aborts the MPI job, except for +I/O `function` errors. The error handler may be changed with +`MPI_Session_set_errhandler`; the predefined error handler `MPI_ERRORS_RETURN` +may be used to cause error values to be returned. Note that MPI does not +guarantee that an MPI program can continue past an error. diff --git a/ompi/mpi/man/man3/MPI_Session_f2c.3.md b/ompi/mpi/man/man3/MPI_Session_f2c.3.md new file mode 100644 index 00000000000..2deaa5915ac --- /dev/null +++ b/ompi/mpi/man/man3/MPI_Session_f2c.3.md @@ -0,0 +1,43 @@ +# NAME + +MPI_Session_c2f, MPI_Session_f2c - Translates a C session handle into a Fortran INTEGER-style session handle, or vice versa. + +# SYNTAX + +## C Syntax + +```c +#include + +int MPI_Session_f2c(const MPI_Fint *f_session, MPI_Session *c_session) +int MPI_Session_c2f(const MPI_Session *c_session, MPI_Fint *f_session) +``` + +# PARAMETERS + +* `f_session`: `mpi`-style `INTEGER` MPI session object +* `c_session`: C-style MPI session object + +# DESCRIPTION + +These two procedures are provided in C to convert from a Fortran +session (which is an array of integers) to a C session (which is a +structure), and vice versa. The conversion occurs on all the +information in `session`, including that which is hidden. That is, +no session information is lost in the conversion. + +When using `MPI_Session_f2c()`, if `f_session` is a valid Fortran +session, then `MPI_Session_f2c()` returns in `c_session` a +valid C session with the same content. If `f_session` is the Fortran +value of `MPI_SESSION_NULL`, or if +`f_session` is not a valid Fortran session, then the call is erroneous. + +When using `MPI_Session_c2f()`, the opposite conversion is applied. If +`c_session` is `MPI_SESSION_NULL`, or if +`c_session` is not a valid C session, then the call is erroneous. + +# NOTES + +These functions are only available in C; they are not available in any +of the Fortran MPI interfaces. + diff --git a/ompi/mpi/man/man3/MPI_Session_finalize.3.md b/ompi/mpi/man/man3/MPI_Session_finalize.3.md new file mode 100644 index 00000000000..c5d4d6d8219 --- /dev/null +++ b/ompi/mpi/man/man3/MPI_Session_finalize.3.md @@ -0,0 +1,78 @@ +# Name + +`MPI_Session_finalize` - releases all MPI state associated with a session + +# Syntax + +## C Syntax + +```c +#include + +int MPI_Session_finalize(MPI_Session *session) +``` + +## Fortran Syntax + +```fortran +USE MPI +! or the older form: INCLUDE 'mpif.h' + +MPI_SESSION_FINALIZE(SESSION, IERROR) + INTEGER SESSION, IERROR +``` + +## Fortran 2008 Syntax + +```fortran +USE mpi_f08 + +MPI_Session_finalize(session, ierror) + TYPE(MPI_Session), INTENT(IN) :: session + INTEGER, OPTIONAL, INTENT(OUT) :: ierror +``` + +# Input Parameters + +* `session` : session to be finalized (handle) + +# Output Parameters + +* `IERROR` : Fortran only: Error status (integer). + +# Description + +`MPI_Session_finalize` releases all MPI state associated with the supplied `session`. Every instantiated +session must be finalized using `MPI_Session_finalize`. The handle `session` is set to +MPI_SESSION_NULL by the call. + +# Notes + +Before an MPI process invokes `MPI_Session_finalize`, the process must perform +all MPI calls needed to complete its involvement in MPI communications: it must locally +complete all MPI operations that it initiated and it must execute matching calls needed to +complete MPI communications initiated by other processes. The call to `MPI_Session_finalize` does not free objects created by MPI calls; these +objects are freed using `MPI_XXX_FREE` calls. `MPI_Session_finalize` may be synchronizing on any or all of the groups associated +with communicators, windows, or  les derived from the session and not disconnected, freed, +or closed, respectively, before the call to `MPI_Session_finalize` procedure. +`MPI_Session_finalize` behaves as if all such synchronizations occur concurrently. As +`MPI_Comm_free` may mark a communicator for freeing later, `MPI_Session_finalize` +may be synchronizing on the group associated with a communicator that is only freed (with +`MPI_Comm_free) rather than disconnected (with `MPI_Comm_disconnect`). + + +# Errors + +Almost all MPI routines return an error value; C routines as the value +of the function and Fortran routines in the last argument. +Before the error value is returned, the current MPI error handler is +called. By default, this error handler aborts the MPI job, except for +I/O function errors. The error handler may be changed with +`MPI_Session_set_errhandler`; the predefined error handler `MPI_ERRORS_RETURN` +may be used to cause error values to be returned. Note that MPI does not +guarantee that an MPI program can continue past an error. + +# See Also + +[`MPI_Session_init`(3)](MPI_Session_init.html) +[`MPI_Comm_disconnect`(3)](MPI_Comm_disconnect.html) diff --git a/ompi/mpi/man/man3/MPI_Session_get_info.3.md b/ompi/mpi/man/man3/MPI_Session_get_info.3.md new file mode 100644 index 00000000000..e3fd2659fd3 --- /dev/null +++ b/ompi/mpi/man/man3/MPI_Session_get_info.3.md @@ -0,0 +1,71 @@ +# Name + +`MPI_Session_get_info` - Returns an info object containing the hints of an MPI Session + +# Syntax + +## C Syntax + +```c +#include + +int MPI_Session_get_info(MPI_Session session, MPI_Info *info_used) +``` + +## Fortran Syntax + +```fortran +USE MPI +! or the older form: INCLUDE 'mpif.h' + +MPI_SESSION_GET_INFO(SESSION, INFO_USED) + INTEGER SESSION, INFO_USED +``` + +## Fortran 2008 Syntax + +```fortran +USE mpi_f08 + +MPI_Session_get_info(session, info_used) + TYPE(MPI_Session), INTENT(IN) :: session + TYPE(MPI_Info), INTENT(OUT) :: info_used +``` + +# Input Parameters + +* `session` : session (handle) + +# Output Parameters + +* `info_used`: info object (handle) +* `IERROR` : Fortran only: Error status (integer). + +# Description + +`MPI_Session_get_info` returns a new info object containing the hints of the MPI +Session associated with session. The current setting of all hints related to this MPI Session +is returned in `info_used`. An MPI implementation is required to return all hints that are +supported by the implementation and have default values specified; any user-supplied hints +that were not ignored by the implementation; and any additional hints that were set by +the implementation. If no such hints exist, a handle to a newly created info object is +returned that contains no key/value pair. + +# Notes + +The user is responsible for freeing info_used via ` MPI_Info_free`. + +# Errors + +Almost all MPI routines return an error value; C routines as the value +of the function and Fortran routines in the last argument. +Before the error value is returned, the current MPI error handler is +called. By default, this error handler aborts the MPI job, except for +I/O function errors. The error handler may be changed with +`MPI_Session_set_errhandler`; the predefined error handler `MPI_ERRORS_RETURN` +may be used to cause error values to be returned. Note that MPI does not +guarantee that an MPI program can continue past an error. + +# See Also + +[`MPI_Session_init`(3)](MPI_Session_init.html) diff --git a/ompi/mpi/man/man3/MPI_Session_get_nth_pset.3.md b/ompi/mpi/man/man3/MPI_Session_get_nth_pset.3.md new file mode 100644 index 00000000000..f608930f7d6 --- /dev/null +++ b/ompi/mpi/man/man3/MPI_Session_get_nth_pset.3.md @@ -0,0 +1,86 @@ +# Name + +`MPI_Session_get_nth_pset` - Query runtime for name of the nth process set + +# Syntax + +## C Syntax + +```c +#include + +int MPI_Session_get_nth_pset(MPI_Session session, MPI_Info info, int n, int *pset_len, char *pset_name) +``` + +## Fortran Syntax + +```fortran +USE MPI +! or the older form: INCLUDE 'mpif.h' + +MPI_SESSION_GET_NTH_PSET(SESSION, INFO, N, PSET_LEN, PSET_NAME, IERROR) + INTEGER SESSION, INFO, N, PSET_LEN, IERROR + CHARACTER*(*) PSET_NAME +``` + +## Fortran 2008 Syntax + +```fortran +USE mpi_f08 + +MPI_Session_get_nth_pset(session, info, n, pset_len, pset_name, ierror) + TYPE(MPI_Session), INTENT(IN) :: session + TYPE(MPI_Info), INTENT(IN) :: info + INTEGER, INTENT(IN) :: n + INTEGER, INTENT(INOUT) :: pset_len + CHARACTER(LEN=*), INTENT(OUT) :: pset_name + INTEGER, OPTIONAL, INTENT(OUT) :: ierror +``` + +# Input Parameters + +* `session` : session (handle) +* `info`: info object (handle) +* `n`: index of the desired process set name (integer) + +## Input/Output Parameter + +* `pset_len`: length of the pset_name argument (integer) + +# Output Parameters + +* `pset_name` : name of the nth process set (string) +* `IERROR` : Fortran only: Error status (integer). + +# Description + +`MPI_Session_get_nth_pset` returns the name of the nth process set in the supplied `pset_name` buffer. +`pset_len` is the size of the buffer needed to store the nth process set name. If the `pset_len` +passed into the function is less than the actual buffer size needed for the process set name, +then the string value returned in `pset_name` is truncated. If `pset_len` is set to 0, `pset_name` is +not changed. On return, the value of `pset_len` will be set to the required buffer size to hold +the process set name. In C, `pset_len` includes the required space for the null terminator. In +C, this function returns a null terminated string in all cases where the `pset_len` input value +is greater than 0. + +# Notes + +Process set names have an implementation-defined maximum length of +`MPI_MAX_PSET_NAME_LEN` characters. `MPI_MAX_PSET_NAME_LEN` shall have a value of +at least 63. + +# Errors + +Almost all MPI routines return an error value; C routines as the value +of the function and Fortran routines in the last argument. +Before the error value is returned, the current MPI error handler is +called. By default, this error handler aborts the MPI job, except for +I/O function errors. The error handler may be changed with +`MPI_Session_set_errhandler`; the predefined error handler `MPI_ERRORS_RETURN` +may be used to cause error values to be returned. Note that MPI does not +guarantee that an MPI program can continue past an error. + +# See Also + +[`MPI_Session_init`(3)](MPI_Session_init.html) +[`MPI_Session_get_num_psets`(3)](MPI_Session_get_num_psets.html) diff --git a/ompi/mpi/man/man3/MPI_Session_get_num_psets.3.md b/ompi/mpi/man/man3/MPI_Session_get_num_psets.3.md new file mode 100644 index 00000000000..3c61cb4d2dc --- /dev/null +++ b/ompi/mpi/man/man3/MPI_Session_get_num_psets.3.md @@ -0,0 +1,77 @@ +# Name + +`MPI_Session_get_num_psets` - Query runtime for number of available process sets + +# Syntax + +## C Syntax + +```c +#include + +int MPI_Session_get_num_psets(MPI_Session session, MPI_Info info, int *npset_names) +``` + +## Fortran Syntax + +```fortran +USE MPI +! or the older form: INCLUDE 'mpif.h' + +MPI_SESSION_GET_NUM_PSETS(SESSION, INFO, NPSET_NAMES, IERROR) + INTEGER SESSION, INFO, SESSION, IERROR +``` + +## Fortran 2008 Syntax + +```fortran +USE mpi_f08 + +MPI_Session_get_num_psets(session, info, npset_names, ierror) + TYPE(MPI_Session), INTENT(IN) :: session + TYPE(MPI_Info), INTENT(IN) :: info + INTEGER, INTENT(OUT) :: npset_names + INTEGER, OPTIONAL, INTENT(OUT) :: ierror +``` + +# Input Parameters + +* `session` : session (handle) +* `info`: info object (handle) + +# Output Parameters + +* `npset_names` : number of available process sets (non-negtive integer) +* `IERROR` : Fortran only: Error status (integer). + +# Description + +`MPI_Session_get_num_psets` is used to query the runtime for the number of available process sets in +which the calling MPI process is a member. An MPI implementation is allowed to increase +the number of available process sets during the execution of an MPI application when new +process sets become available. However, MPI implementations are not allowed to change +the index of a particular process set name, or to change the name of the process set at a +particular index, or to delete a process set name once it has been added. + +# Notes + +When a process set becomes invalid, for example, when some processes become unreachable due to failures +in the communication system, subsequent usage of the process set name may raise an +error. For example, creating an `MPI_Group` from such a process set might succeed because it +is a local operation, but creating an `MPI_Comm` from that group and attempting collective +communication may raise an error. + +# Errors + +Almost all MPI routines return an error value; C routines as the value +of the function and Fortran routines in the last argument. +Before the error value is returned, the current MPI error handler is +called. By default, this error handler aborts the MPI job, except for +I/O function errors. The error handler may be changed with +`MPI_Session_set_errhandler`; the predefined error handler `MPI_ERRORS_RETURN` +may be used to cause error values to be returned. Note that MPI does not +guarantee that an MPI program can continue past an error. + +# See Also + +[`MPI_Session_init`(3)](MPI_Session_init.html) diff --git a/ompi/mpi/man/man3/MPI_Session_get_pset_info.3.md b/ompi/mpi/man/man3/MPI_Session_get_pset_info.3.md new file mode 100644 index 00000000000..038c70486bd --- /dev/null +++ b/ompi/mpi/man/man3/MPI_Session_get_pset_info.3.md @@ -0,0 +1,72 @@ +# Name + +`MPI_Session_get_pset_info` - Returns an info object containing properties of a specific process set + +# Syntax + +## C Syntax + +```c +#include + +int MPI_Session_get_pset_info(MPI_Session session, const char *pset_name, MPI_Info *info) +``` + +## Fortran Syntax + +```fortran +USE MPI +! or the older form: INCLUDE 'mpif.h' + +MPI_SESSION_GET_PSET_INFO(SESSION, PSET_NAME, INFO, IERROR) + INTEGER SESSION, INFO, IERROR + CHARACTER*(*) PSET_NAME +``` + +## Fortran 2008 Syntax + +```fortran +USE mpi_f08 + +MPI_Session_get_pset_info(session, pset_name, info, ierror) + TYPE(MPI_Session), INTENT(IN) :: session + CHARACTER(LEN=*), INTENT(IN) :: pset_name + TYPE(MPI_Info), INTENT(OUT) :: info + INTEGER, OPTIONAL, INTENT(OUT) :: ierror +``` + +# Input Parameters + +* `session` : session (handle) +* `pset_name` : name of process set (string) + +# Output Parameters + +* `info`: info object (handle) +* `IERROR` : Fortran only: Error status (integer). + +# Description + +`MPI_Session_get_pset_info` is used to query properties of a specific process set. The returned info +object can be queried with existing MPI info object query functions. One key/value pair +must be de ned, "mpi_size". The value of the "mpi_size" key specifies the number of MPI +processes in the process set. + +# Notes + +The user is responsible for freeing the returned info object via ` MPI_Info_free`. + +# Errors + +Almost all MPI routines return an error value; C routines as the value +of the function and Fortran routines in the last argument. +Before the error value is returned, the current MPI error handler is +called. By default, this error handler aborts the MPI job, except for +I/O function errors. The error handler may be changed with +`MPI_Session_set_errhandler`; the predefined error handler `MPI_ERRORS_RETURN` +may be used to cause error values to be returned. Note that MPI does not +guarantee that an MPI program can continue past an error. + +# See Also + +[`MPI_Session_init`(3)](MPI_Session_init.html) diff --git a/ompi/mpi/man/man3/MPI_Session_init.3.md b/ompi/mpi/man/man3/MPI_Session_init.3.md new file mode 100644 index 00000000000..5d3577954e8 --- /dev/null +++ b/ompi/mpi/man/man3/MPI_Session_init.3.md @@ -0,0 +1,76 @@ +# Name + +`MPI_Session_init` - Creates a new session handle + +# Syntax + +## C Syntax + +```c +#include + +int MPI_Session_init(MPI_Info info, MPI_Errhandler errhandler, MPI_Session *session) +``` + +## Fortran Syntax + +```fortran +USE MPI +! or the older form: INCLUDE 'mpif.h' + +MPI_SESSION_INIT(INFO, ERRHANDLER, SESSION, IERROR) + INTEGER INFO, ERRHANDLER, SESSION, IERROR +``` + +## Fortran 2008 Syntax + +```fortran +USE mpi_f08 + +MPI_Session_init(info, errhandler, session, ierror) + TYPE(MPI_Info), INTENT(IN) :: info + TYPE(MPI_Errhandler), INTENT(IN) :: errhandler + TYPE(MPI_Session), INTENT(OUT) :: session + INTEGER, OPTIONAL, INTENT(OUT) :: ierror +``` + +# Input Parameters + +* `info` : info object (handle) +* `errhandler` : error handler to be attached to the returned session (handle) + +# Output Parameters + +* `session` : New session (handle). +* `IERROR` : Fortran only: Error status (integer). + +# Description + +`MPI_Session_init` is used to instantiate an MPI Session. The returned session handle +can be used to query the runtime system about characteristics of the job within which the process is running, as well as other system resources. +An application can make multiple calls to `MPI_Session_init` and the related `MPI_Session_finalize` routine. + +# Notes + +The info argument is used to request MPI functionality requirements and possible MPI +implementation specific capabilities. + +The `errhandler` argument specifies an error handler to invoke in the event that the +Session instantiation call encounters an error. + +# Errors + +Almost all MPI routines return an error value; C routines as the value +of the function and Fortran routines in the last argument. +Before the error value is returned, the current MPI error handler is +called. By default, this error handler aborts the MPI job, except for +I/O function errors. The predefined error handler `MPI_ERRORS_RETURN` +may be used to cause error values to be returned. Note that MPI does not +guarantee that an MPI program can continue past an error. + +# See Also + +[`MPI_Session_get_num_psets`(3)](MPI_Session_get_num_psets.html) +[`MPI_Session_get_nth_pset`(3)](MPI_Session_get_nth_pset.html) +[`MPI_Session_group_from_pset`(3)](MPI_Session_group_from_pset.html) +[`MPI_Session_finalize`(3)](MPI_Session_finalize.html) diff --git a/ompi/mpi/man/man3/Makefile.am b/ompi/mpi/man/man3/Makefile.am index b3d41c57c83..324c4032866 100644 --- a/ompi/mpi/man/man3/Makefile.am +++ b/ompi/mpi/man/man3/Makefile.am @@ -4,6 +4,8 @@ # Copyright (c) 2012-2013 Los Alamos National Security, LLC. All rights reserved. # Copyright (c) 2020 Research Organization for Information Science # and Technology (RIST). All rights reserved. +# Copyright (c) 2021 Triad National Security, LLC. All rights +# reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -45,6 +47,7 @@ MD_FILES = \ MPI_Comm_connect.3.md \ MPI_Comm_create.3.md \ MPI_Comm_create_errhandler.3.md \ + MPI_Comm_create_from_group.3.md \ MPI_Comm_create_group.3.md \ MPI_Comm_create_keyval.3.md \ MPI_Comm_delete_attr.3.md \ @@ -84,8 +87,19 @@ MD_FILES = \ MPI_Group_difference.3.md \ MPI_Group_excl.3.md \ MPI_Group_free.3.md \ + MPI_Group_from_session_pset.3.md \ MPI_Group_incl.3.md \ - MPI_Group_intersection.3.md + MPI_Group_intersection.3.md \ + MPI_Intercomm_create_from_groups.3.md \ + MPI_Session_create_errhandler.3.md \ + MPI_Session_f2c.3.md \ + MPI_Session_finalize.3.md \ + MPI_Session_get_info.3.md \ + MPI_Session_get_num_psets.3.md \ + MPI_Session_get_nth_pset.3.md \ + MPI_Session_get_pset_info.3.md \ + MPI_Session_init.3.md + TEMPLATE_FILES = \ MPI_Abort.3in \