libpvm3, libfpvm3 - PVM C and Fortran programming libraries
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.
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
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.
- $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