Section: PVM Version 3.4 (3PVM)Updated: 26 June, 1997Local indexUp
pvm_siblings - return the number and associated task ids of
processes that were started together in a single spawn call.
C int ntids = pvm_siblings( int **tids )
Fortran call pvmfsiblings( ntids, index, sibling )
Returns the number of tids that were spawned together. Value
less than 0 indicates an error.
Pointer to the array of tids that contains the siblings. Indexed from
0 to (ntids - 1)
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]
When index is in the range [0, ntids -1], this contains the tid of
the desired index.
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.
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,
will be > 0. If some error occurs then
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,
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 machine and should be treated as a snapshot
of the parallel program when it was first started.
If a task was started by
ntids = 1
ntids = 1
will contain a single entry identical to the task id returned by
ntids = pvm_siblings(&tids);
CALL PVMFSIBLINGS(NTIDS, -1, IDUM)
DO I = 0, NTIDS-1
CALL PVMFSIBLINGS(NTIDS, I, TIDS(I))