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. In-
	       dexed 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
       spawning	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  local  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  er-
       ror occurs then ntids will be < 0.

       pvm_siblings  is	 designed  to  simplify	the logic in static spmd-style
       programs. By giving tasks an identical list of tids and its size,  pro-
       grams  may  self	 size  and treat the sibling as	static map between in-
       stances and tasks. The internal list is not updated when	sibling	 tasks
       exit  the  virtual  machine  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
       returned	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)

NAME | SYNOPSIS | PARAMETERS | DESCRIPTION | EXAMPLES | ERRORS | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=pvm_siblings&sektion=3&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help