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

# libpvm(3)

PVM C and Fortran programming libraries

## NAME

libpvm3.a, libfpvm3.a - PVM C and Fortran programming libraries

## DESCRIPTION

All PVM applications must be linked with the libpvm library to allow them to communicate with other entities in the PVM system. The base library (libpvm3.a) is written in C and directly supports C and C++ applications. The Fortran library (libfpvm3.a) consists of wrapper functions to convert Fortran calling sequences to C.

Applications written in C must be linked with at least the base PVM library, libpvm3.a. Fortran applications must be linked with both libfpvm3.a and libpvm3.a. On some operating systems, PVM programs must be linked with other vendor-provided libraries (containing for example, socket or XDR functions).

Programs that use group functions must also be linked with libgpvm3.a.

## SUBROUTINES

The libpvm subroutines can be divided into roughly five classes:

- Message Passing

  pvm\_bufinfo, pvm\_freebuf, pvm\_getrbuf, pvm\_getsbuf, pvm\_initsend, pvm\_mcast, pvm\_mkbuf, pvm\_nrecv, pvm\_pack, pvm\_precv, pvm\_probe, pvm\_psend, pvm\_recv, pvm\_recvf, pvm\_send, pvm\_sendsig, pvm\_setmwid, pvm\_setrbuf, pvm\_setsbuf, pvm\_trecv, pvm\_unpack

- Task Control

  pvm\_exit, pvm\_kill, pvm\_mytid, pvm\_parent, pvm\_pstat, pvm\_spawn, pvm\_tasks

- Group Library Functions

  pvm\_barrier, pvm\_bcast, pvm\_gather, pvm\_getinst, pvm\_gettid, pvm\_gsize, pvm\_joingroup, pvm\_lvgroup, pvm\_reduce, pvm\_scatter

- Virtual Machine Control

  pvm\_addhosts, pvm\_config, pvm\_delhosts, pvm\_halt, pvm\_mstat, pvm\_reg\_hoster, pvm\_reg\_rm, pvm\_reg\_tasker, pvm\_start\_pvmd

- Miscellaneous

  pvm\_archcode, pvm\_catchout, pvm\_getopt, pvm\_hostsync, pvm\_notify, pvm\_perror, pvm\_setopt, pvm\_settmask, pvm\_tidtohost

## ERRORS

On success, most libpvm functions return the constant PvmOk. The following error conditions can be returned by libpvm functions:

- PvmAlready

  The requested operation requires exclusive access, and another was already in progress.

- PvmBadMsg

  The received messages has a data format native to another machine, which cannot be decoded by libpvm.

- PvmBadParam

  A bad parameter was passed to the function.

- PvmBadVersion

  Two PVM components (pvmd and task, two pvmds or two tasks) have incompatible protocol versions and cannot interoperate. Version mismatch

- PvmCantStart

  A pvmd could not be started on the local host, or a slave pvmd could not be started on a remote host.

- PvmDSysErr

  Some internal mechanism in the pvmd failed during the requested operation.

- PvmDupEntry

  The class server already has an entry matching the insert request. \[In Version 3.4: Relaced by PvmExists\]

- PvmDupGroup

  The task has already a member of the group it attempted to join.

- PvmDupHost

  An attempt was made to add the same host to a virtual machine more than once, or to add a host already a member of another virtual machine owned by the same user.

- PvmDenied

  Operation is refused due to locking, permissions, etc.

- PvmExists

  There is already an entry matching the insert request.

- PvmHostFail

  A foreign host in the virtual machine failed during the requested operation.

- PvmMismatch

  A parameter does not match a corresponding one.

- PvmNoBuf

  There is no current message buffer to pack or unpack.

- PvmNoData

  The end of a message buffer was reached while trying to unpack data.

- PvmNoEntry

  The class server has no entry matching the lookup request.\
   \[In Version 3.4: Relaced by PvmNotFound\]

- PvmNoFile

  The named executable does not exist.

- PvmNoGroup

  The named group does not exist.

- PvmNoHost

  There is no host in the virtual machine with the given name, or the name could not be resolved to an address.

- PvmNoInst

  The named group has no member with this instance.

- PvmNoMem

  Malloc failed to get memory for libpvm.

- PvmNoParent

  This task has no parent task.

- PvmNoSuchBuf

  There is no message buffer with the given buffer handle.

- PvmNoTask

  No task exists with the given tid.

- PvmNotFound

  No entry matching the lookup request was found.

- PvmNotImpl

  This libpvm function or option is not implemented.

- PvmNotInGroup

  The named group has no such member task.

- PvmNullGroup

  A null group name was passed to a function.

- PvmOutOfRes

  The requested operation could not be completed due to lack of resources.

- PvmOverflow

  A value is too large to be packed or unpacked.

- PvmSysErr

  Libpvm could not contact a pvmd on the local host, or the pvmd failed during an operation.

## FILES

- $PVM\_ROOT/include/fpvm3.h

  Fortran header file

- $PVM\_ROOT/include/pvm3.h

  C header file

- $PVM\_ROOT/include/pvmsdpro.h

  Header file for tasker, hoster and resource manager tasks

- $PVM\_ROOT/include/pvmtev.h

  Header file for tasks manipulating trace events

- $PVM\_ROOT/lib/$PVM\_ARCH/libpvm3.a

  C (base) library

- $PVM\_ROOT/lib/$PVM\_ARCH/libfpvm3.a

  Fortran wrapper library

- $PVM\_ROOT/lib/$PVM\_ARCH/libgpvm3.a

  Group function library

## SEE ALSO

aimk(1PVM), pvm(1PVM), pvm\_intro(1PVM), pvmd3(1PVM)
