Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
SIBLINGS(3PVM)			 PVM Version 3.4		  SIBLINGS(3PVM)

NAME
     pvm_siblings -  return the number and associated task ids of processes that
     were started together in a single spawn call.

SYNOPSIS
     C	  int ntids = pvm_siblings( int **tids )

     Fortran   call pvmfsiblings( ntids, index, sibling )

PARAMETERS
     ntids   Returns  the  number of tids that were spawned together. Value less
	     than 0 indicates an error.

     tids    Pointer to the array of tids that contains  the  siblings.  Indexed
	     from 0 to (ntids - 1)

     index   Integer  index of tid to be returned in sibling. If index is set to
	     -1, then sibling is unchanged. Otherwise, must be in the range  [0,
	     ntids - 1]

     sibling When  index is in the range [0, ntids -1], this contains the tid of
	     the desired index.

DESCRIPTION
     The routine pvm_siblings returns the number of tasks and a list of task ids
     of processes that were spawned together in a single spawn call. The  spawn-
     ing  task	multicasts  the  list of successful to the spawned tasks so that
     each task has an identical copy of the sibling list.  pvm_siblings uses lo-
     cal storage to keep the list of tids and does not	update	this  list  when
     sibling tasks exit the virtual machine.  The FORTRAN version allows calling
     programs  read  a	particular  index  in  the  internal  sibling array.  If
     pvm_siblings is successful, ntids will be	> 0. If some error  occurs  then
     ntids will be < 0.

     pvm_siblings  is  designed  to simplify the logic in static spmd-style pro-
     grams. By giving tasks an identical list of tids and its size, programs may
     self size and treat the sibling as static map between instances and  tasks.
     The  internal  list  is not updated when sibling tasks exit the virtual ma-
     chine and should be treated as a snapshot of the parallel program	when  it
     was first started.

     If a task was started by pvm_spawn, then pvm_siblings will return ntids = 1
     and

     ntids = 1 and tids will contain a single entry identical to the task id re-
     turned by pvm_mytid()

EXAMPLES
     C:
	  int *tids;
	  ntids = pvm_siblings(&tids);

     Fortran:
	  INTEGER TIDS(0:MAXNPROC)
	  CALL PVMFSIBLINGS(NTIDS, -1, IDUM)
	  DO I = 0, NTIDS-1
	     CALL PVMFSIBLINGS(NTIDS, I, TIDS(I))

ERRORS
     pvm_siblings can return the following error codes

     PvmNoTask
	    No task at that index, or index is invalid.

SEE ALSO
     pvm_spawn(3PVM), pvm_mytid(3PVM), pvm_parent(3PVM)

				  26 June, 1997 		  SIBLINGS(3PVM)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=pvmfsiblings&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help