---
name: "pvm_tasks"
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_tasks"
---

# pvm\_tasks(3)

Returns information about the tasks running on the virtual machine.

## NAME

pvm\_tasks - Returns information about the tasks running on the virtual machine.

## SYNOPSIS

```
C	int info = pvm_tasks( int where, int *ntask, struct pvmtaskinfo **taskp )
	struct pvmtaskinfo {
	int ti_tid;
	int ti_ptid;
	int ti_host;
	int ti_flag;
	char *ti_a_out;
	} taskp;
Fortran	call pvmftasks( where, ntask, tid, ptid, dtid, flag, aout, info )
```

## PARAMETERS

- where

  **Integer specifying what tasks to return information about.** **The options are:**

  ```
  	   0	for all the tasks on the virtual machine
  	pvmd tid	for all tasks on a given host
  	  tid	for a specific task
  ```

- ntask

  **Integer returning the number of tasks being reported on.**\

- taskp

  **Returns pointer to an array of structures which contain** **information about each task including its task ID, parent tid,** **pvmd task ID, status flag, and the name of this task's executable file.** **The status flag values are: waiting for a message, waiting for the pvmd,** **and running.**\

- tid

  **Integer returning task ID of one task**\

- ptid

  **Integer returning parent task ID**\

- dtid

  **Integer returning pvmd task ID of host task is on.**\

- flag

  **Integer returning status of task**\

- aout

  **Character string returning the name of spawned task.** **Manually started tasks return blank.**\

- info

  **Integer status code returned by the routine.** **Values less than zero indicate an error.**

## DESCRIPTION

**The routine** *pvm\_tasks* **returns information about** **tasks presently running on the virtual machine.** **The information returned is the same as** **that available from the console command** *ps.* **The C function returns information about the entire virtual machine** **in one call. The Fortran function returns information about one task** **per call and cycles through all the tasks.  Thus, if where = 0, and** *pvmftasks* **is called ntask times, all tasks will be represented.**

**Note that in Fortran the reported value of ntask and the set of tasks** **do not change until the function resets at the end of a complete cycle.** **The user can reset pvmftasks() at any time by calling it with** *ntask = -1.*

**If pvm\_tasks is successful,** *info* **will be 0.** **If some error occurs then** *info* **will be \< 0.**

## EXAMPLES

```
C:
	struct pvmtaskinfo *taskp;
	int i, ntask;
	info = pvm_tasks( 0, &ntask, &taskp );
	for (i = 0; i < ntask; i++)
		printf("t%x\n", taskp[i].ti_tid);
Fortran:
	Do i=1, NTASK
	    CALL PVMFTASKS( DTID, NTASK, TID(i), PTID(i), DTID(i),
	&                  FLAG(i), AOUT(i), INFO )
	EndDo
```

## ERRORS

**The following error condition can be returned by** *pvm\_tasks*

- PvmBadParam

  **invalid value for** *where* argument.

- PvmSysErr

  pvmd not responding.

- PvmNoHost

  specified host not in virtual machine.

## SEE ALSO

pvm\_config(3PVM), pvm\_tidtohost(3PVM)
