LIBPVM(3PVM)
π LIBPVM β the PVM C & Fortran programming libraries, bestie edition π
okay so this is the libpvm3 / libfpvm3 page from PVM Version 3.4, and it's literally the manual for the libraries that make PVM apps talk to each other. sit down, grab a strawberry drink π, and let's get into it.
β¨ NAME β¨
libpvm3, libfpvm3 β the PVM C and Fortran programming libraries. that's the whole name. slay.
πΈ DESCRIPTION πΈ
so every single PVM application must be linked with the libpvm library, no cap, because that's the only way it can communicate with the other entities chillin' in the PVM system. π«Ά
the base library (libpvm3.a) is written in C and it directly supports C and C++ applications. and then the Fortran library (libfpvm3.a)? it's a bunch of wrapper functions whose entire job is converting Fortran calling sequences into C. it's giving translator bestie. π
here's the linking tea:
- C apps β link with at least the base PVM library,
libpvm3.a - Fortran apps β link with both
libfpvm3.aandlibpvm3.a - on some operating systems, PVM programs must be linked with other vendor-provided libraries too (like, socket or XDR functions, iykyk)
and if your program uses group functions? you also have to link with libgpvm3.a. don't forget, bestie, it will not work and you will cry. π
π¦ SUBROUTINES π¦
the libpvm subroutines can be divided into roughly five classes. five. iconic number. β¨
π 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. love that for them. π
but when things go wrong? the following error conditions can be returned by libpvm functions. buckle up.
PvmAlreadyβ the requested operation needs exclusive access, and another one was already in progress. not me showing up to the function while it's busy. πPvmBadMsgβ the received message has a data format native to another machine, andlibpvmliterally cannot decode it.PvmBadParamβ a bad parameter got passed to the function. your fault, respectfully. πPvmBadVersionβ two PVM components (pvmd and task, two pvmds, or two tasks) have incompatible protocol versions and cannot interoperate. version mismatch, the flop era of PVM. π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] (yes, that's how it's spelled in the original, we keep it verbatim, periodt)PvmDupGroupβ the task has already a member of the group it attempted to join.PvmDupHostβ someone tried to add the same host to a virtual machine more than once, or tried to add a host that's already a member of another virtual machine owned by the same user.PvmDeniedβ operation is refused due to locking, permissions, etc. the bouncer said no. π«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. you ran out mid-sentence bestie. πPvmNoEntryβ the class server has no entry matching the lookup request. [In Version 3.4: Relaced by PvmNotFound] (again, spelling preserved, we don't edit the sacred texts)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βMallocfailed to get memory forlibpvm. she's out of storage, lowkey devastating.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β thislibpvmfunction 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βlibpvmcould not contact a pvmd on the local host, or the pvmd failed during an operation. ghosted by the daemon fr fr. π»
π FILES π
these are the files, and they're all under $PVM_ROOT. main character energy each one.
$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 π
go read these next, bestie, they're the lore:
aimk(1PVM)pvm(1PVM)pvm_intro(1PVM)pvmd3(1PVM)
and that's the whole page!! π this was LIBPVM, part of PVM Version 3.4, dated 27 June, 1994 β and it lives in section 3PVM of the manual. obsessed with her, honestly. go write something and link it properly. mwah. πβ¨ππ¦πΈπ π«Ά
π¦ where this page comes from
- debian bookworm: pvm-dev 3.4.6-5
- ubuntu jammy: pvm-dev 3.4.6-3.2
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms