---
name: "pvm_addhosts"
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_addhosts"
---

# pvm\_addhosts(3)

Add hosts to the virtual machine.

## NAME

pvm\_addhosts - Add hosts to the virtual machine.

## SYNOPSIS

```
C	int info = pvm_addhosts( char **hosts, int nhost, int *infos )
Fortran	call pvmfaddhost( host, info )
```

## PARAMETERS

- hosts

  **An array of strings** **naming the hosts to be added.** **Pvmd must already be installed and** **the user must have an account on the specified hosts.**\

- nhost

  **Integer specifying the length of array hosts.**\

- infos

  **Integer array of length** *nhost* **which returns the** **status for each host.** **Values less than zero indicate an error,** **while positive values are TIDs of the new hosts.**\

- host

  **Character string naming the host to be added.**\

- info

  **Integer status code returned by the routine.** **Values less than** *nhost* indicate partial failure, and values less than 1 indicate total failure.

## DESCRIPTION

The routine *pvm\_addhosts* adds the computers named in *hosts* to the configuration of computers making up the virtual machine. The names should have the same syntax as lines of a pvmd hostfile (see man page for pvmd3): A hostname followed by options of the form xx=y.

If pvm\_addhosts is successful, *info* will be equal to *nhost.* Partial success is indicated by 0 \< info \< nhost, and total failure by info \< 1. The array *infos* can be checked to determine which host caused the error.

The Fortran routine *pvmfaddhost* adds a single host to the configuration with each call. *info* will be 1 if successful or \< 0 if error.

The status of hosts can be requested by the application using *pvm\_mstat* and *pvm\_config*. If a host fails it will be automatically deleted from the configuration. Using pvm\_addhosts a replacement host can be added by the application, however it is the responsibility of the application developer to make his application tolerant of host failure. Another use of this feature would be to add more hosts as they become available, for example on a weekend, or if the application dynamically determines it could use more computational power.

## EXAMPLES

```
C:
	static char *hosts[] = {
	    "sparky",
	    "thud.cs.utk.edu",
	};
	info = pvm_addhosts( hosts, 2, infos );

Fortran:
	CALL PVMFADDHOST( 'azure', INFO )
```

## ERRORS

The following error conditions can be returned by *pvm\_addhosts*:

- PvmBadParam

  giving an invalid argument value.

- PvmAlready

  another task is currently adding hosts.

- PvmSysErr

  local pvmd is not responding.

and in the *infos* vector:

- PvmBadParam

  bad hostname syntax.

- PvmNoHost

  no such host.

- PvmCantStart

  failed to start pvmd on host.

- PvmDupHost

  host already configured.

- PvmBadVersion

  pvmd protocol versions don't match.

- PvmOutOfRes

  PVM has run out of system resources.

## SEE ALSO

pvm\_pvmd3(1PVM), pvm\_delhosts(3PVM), pvm\_start\_pvmd(3PVM), pvm\_config(3PVM), pvm\_mstat(3PVM)
