MPI_Comm_spawn_multiple man page on YellowDog

Man page or keyword search:  
man Server   18644 pages
apropos Keyword Search (all sections)
Output format
YellowDog logo
[printable version]

MPI_Comm_spawn_multiple(3OpenMPI)	     MPI_Comm_spawn_multiple(3OpenMPI)

NAME
       MPI_Comm_spawn_multiple	- Spawns multiple binaries, or the same binary
       with multiple sets of arguments.

SYNTAX
C Syntax
       #include <mpi.h>
       int MPI_Comm_spawn_multiple(int count, char *array_of_commands[],
	    char **array_of_argv[], int array_of_maxprocs[], MPI_Info
	    array_of_info[], int root, MPI_Comm comm, MPI_Comm *intercomm,
	    int array_of_errcodes[])

Fortran Syntax
       INCLUDE 'mpif.h'
       MPI_COMM_SPAWN_MULTIPLE(COUNT, ARRAY_OF_COMMANDS, ARRAY_OF_ARGV,
	    ARRAY_OF_MAXPROCS, ARRAY_OF_INFO, ROOT, COMM, INTERCOMM,
	    ARRAY_OF_ERRCODES, IERROR)
	    INTEGER   COUNT, ARRAY_OF_INFO(*), ARRAY_OF_MAXPROCS(*), ROOT,
		 COMM, INTERCOMM, ARRAY_OF_ERRCODES(*), IERROR
	    CHARACTER*(*) ARRAY_OF_COMMANDS(*), ARRAY_OF_ARGV(COUNT, *)

C++ Syntax
       #include <mpi.h>
       MPI::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[])

       MPI::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)

INPUT PARAMETERS
       count	 Number of commands (positive integer, significant to MPI only
		 at root -- see NOTES).

       array_of_commands
		 Programs  to  be executed (array of strings, significant only
		 at root).

       array_of_argv
		 Arguments for commands (array of array of strings,   signifi‐
		 cant only at root).

       array_of_maxprocs
		 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 (array of handles, significant only at root).

       root	 Rank  of  process  in	which  previous arguments are examined
		 (integer).

       comm	 Intracommunicator  containing	group  of  spawning  processes
		 (handle).

OUTPUT PARAMETERS
       intercomm Intercommunicator   between  original	group  and  the	 newly
		 spawned group (handle).

       array_of_errcodes
		 One code per process (array of integers).

       IERROR	 Fortran only: Error status (integer).

DESCRIPTION
       MPI_Comm_spawn_multiple is identical to MPI_Comm_spawn except  that  it
       can  specify multiple executables. The first argument, count, indicates
       the number of executables. The next three arguments are arrays  of  the
       corresponding   arguments   in	MPI_Comm_spawn.	  The  next  argument,
       array_of_info, is an array of info arguments; however, only  the	 first
       argument	 in that array is used.	 Any subsequent arguments in the array
       are ignored because an info argument applies to the entire job that  is
       spawned,	 and  cannot be different for each executable in the job.  See
       the INFO ARGUMENTS section for more information.

       For   the   Fortran   version	of    array_of_argv,	the    element
       array_of_argv(i,j) is the jth argument to command number i.

       In  any	language,  an  application may use the constant MPI_ARGVS_NULL
       (which is likely to be (char ***)0 in C) to specify that	 no  arguments
       should be passed to any commands. The effect of setting individual ele‐
       ments of array_of_argv to MPI_ARGV_NULL	is  not	 defined.  To  specify
       arguments  for some commands but not others, the commands without argu‐
       ments should have a corresponding argv  whose  first  element  is  null
       ((char *)0 in C and empty string in Fortran).

       All  of the spawned processes have the same MPI_COMM_WORLD. Their ranks
       in MPI_COMM_WORLD correspond directly to the order in  which  the  com‐
       mands  are  specified  in  MPI_Comm_spawn_multiple. Assume that m1 pro‐
       cesses are generated by the first command, m2 by the second,  etc.  The
       processes corresponding to the first command have ranks 0, 1,..., m1-1.
       The processes in the second command have ranks m1, m1+1, ...,  m1+m2-1.
       The  processes in the third have ranks m1+m2, m1+m2+1, ..., m1+m2+m3-1,
       etc.

       The array_of_errcodes argument is 1-dimensional array of size

	     _ count
	    \	    n ,
	    /_ i=1   i

       where i is the ith element of array_of_maxprocs. Command number i  cor‐
       responds to the i contiguous slots in this array from element

			     _		    _
	     _ i-1	    |	_ i	     |
	    \	    n ,	 to |  \      n	     | -1
	    /_ j=1   i	    |  /_ j=1  j     |
			    |_		    _|

       Error codes are treated as for MPI_Comm_spawn.

INFO ARGUMENTS
       The  following  values  for  info  are recognized in Open MPI 1.2. (The
       reserved values mentioned in Section 5.3.4 of the  MPI-2	 standard  are
       not implemented.)

       Key value	     Type      Description
       ----------	     ----      -----------

       host		     char *    Host on which the process should be spawned.
       wdir		     char *    Directory where the executable is located.

       Note that in Open MPI 1.2, the first array location in array_of_info is
       applied to all the commands in array_of_commands.

NOTES
       The argument count is interpreted by  MPI  only	at  the	 root,	as  is
       array_of_argv. Since the leading dimension of array_of_argv is count, a
       nonpositive value of count at a nonroot node could theoretically	 cause
       a  runtime  bounds  check  error,  even	though array_of_argv should be
       ignored by the subroutine. If this happens, you should explicitly  sup‐
       ply a reasonable value of count on the nonroot nodes.

       Calling	MPI_Comm_spawn	many  times would create many sets of children
       with different MPI_COMM_WORLDs, whereas MPI_Comm_spawn_multiple creates
       children	 with a single MPI_COMM_WORLD, so the two methods are not com‐
       pletely equivalent. Also	 if you need to	 spawn	multiple  executables,
       you may get better performance by using MPI_Comm_spawn_multiple instead
       of calling MPI_Comm_spawn several times.

ERRORS
       Almost all MPI routines return an error value; C routines as the	 value
       of  the	function  and Fortran routines in the last argument. C++ func‐
       tions do not return errors. If the default  error  handler  is  set  to
       MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism
       will be used to throw an MPI:Exception object.

       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_spawn(3)
       MPI_Comm_get_parent(3)
       mpirun(1)

Open MPI 1.2			September 200MPI_Comm_spawn_multiple(3OpenMPI)
[top]

List of man pages available for YellowDog

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net