MPI_Comm_spawn_multiple(3)

MPI_Comm_spawn_multiple - Starts a number of MPI processes, possibly using multiple executables, and establishes communication with them, returning an intercommunicator

As shipped in IRIX 6.5.19. Added in IRIX 6.5.19.

NAME
     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).
     array_of_maxprocs
                    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(1), mpirun(1)