---
name: "pvm_siblings"
section: "3"
platform: "linux"
package: "pvm-dev"
version: "3.4.2-8"
release: "Debian 3.0 (Woody)"
platforms: ["linux"]
url: "https://new.carta.tech/pvm_siblings"
---

# pvm\_siblings(3)

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

## 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 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 error 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,** **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**  *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)**
