MPI_Comm_spawn_multiple - Starts a number of MPI
processes, possibly using multiple executables, and
establishes communication with them, returning an
intercommunicator
SYNOPSIS
C:
#include <mpi.h>
int MPI_Comm_spawn_multiple( count,array_of_commands, array_of_argv,
array_of_maxprocs, array_of_info, root, comm, intercomm,
array_of_errcodes )
int count, array_of_maxprocs[], root, array_of_errcodes[];
char *command[],**array_of_argv[];
MPI_Comm comm,*intercomm;
MPI_Info info[];
Fortran:
INCLUDE "mpif.h" (or USE MPI)
INTEGER count, array_of_info(*), array_of_maxprocs(*), root,
comm, intercomm, array_of_errcodes(*), ierror
CHARACTER*(*) array_of_commands(*), array_of_argv(count,*)
CALL MPI_COMM_SPAWN_MULTIPLE(count, array_of_commands, array_of_argv,
array_of_maxprocs, array_of_info, root, comm, intercomm,
array_of_errcodes, ierror)
DESCRIPTION
The MPI_Comm_spawn_multiple routine is identical to
MPI_Comm_spawn except that there are multiple executable
specifications. The first argument, count, gives the
number of specifications. Each of the next four arguments
are simply arrays of the corresponding arguments in
MPI_Comm_spawn. This routine accepts the following
parameters:
count Specifies the number of commands (positive
integer, significant to MPI only at root).
array_of_commands
Programs to be executed (array of strings,
significant only at root).
array_of_argv Specifies arguments for commands.
MPI_ARGVS_NULL should be used if no
arguments are to be passed to the program
(array of array of strings, significant
only at root).
Specifies the maximum number of processes
to start for each command (array of
integers, significant only at root).
array_of_info Info objects telling the runtime system
where and how to start processes.
Currently this value is ignored.
MPI_INFO_NULL should be used if no info
argument is supplied. (array of handles,
significant only at root).
root The rank of the process in which previous
arguments are examined (integer).
comm The intracommunicator containg the group of
spawning processes (handle).
intercomm Upon return, the intercommunicator between
the original group and the newly spawned
group (handle).
array_of_errcodes
Upon return, reports the status of the
spawned program, one code per process.
MPI_ERRCODES_IGNORE should be used if no
argument is provided (array of integers).
ierror Specifies the return code value for
successful completion, which is in
MPI_SUCCESS. MPI_SUCCESS is defined in the
mpif.h file (integer).
NOTES
In this implementation, all of the spawned processes have
access to stdout and stderr. However, none of the
spawned processes have access to stdin.
Each of the array of strings in array_of_argv must conform
to the syntax described for the argv argument to
MPI_Comm_spawn(3).
In this implementation, a maximum of eight commands can be
spawned in a single call to MPI_Comm_spawn_multiple. Using
a value of count exceeding 8 generates an MPI_ERR_ARG
message.
Error codes are the values returned by MPI routines (in C)
or in the ierror argument (in Fortran). These can be
converted to error classes by using the MPI_Error_class(3)
routine.
SEE ALSO
MPI_Comm_spawn(3), MPI_Comm_get_parent(3),MPI_Finalize(3)
Man(1) output converted with
man2html