start pvm: export PVM_ARCH=LINUX you should put this line to the ~/.bashrc file too (see: usage.txt) pvm commands: ps - process list halt - exit exit - exit; pvmd continuous the pvm creates files in the /tmp directory with .$UID postfix if the pvm doesn't start, you should delete these files and try again the messages of the programs started from pvm are in the /tmp/pvml.$UID or in the /tmp/pvm.$UID/log required for compiling: /usr/lib/pvm3/include/pvm3.h /usr/lib/pvm3/lib/LINUX/libpvm3.a (or /usr/share/pvm3 - depends on the installation..) option for gcc (or in a Makefile) -I/usr/lib/pvm3/include cc something.c -o something /usr/lib/pvm3/lib/LINUX/libpvm3.a pvm methods (see man) int pvm_mytid() the tid of the process -- you should start the program with this call int pvm_parent() the tid of the parent process or PvmNoParent (negative integer) int pvm_spawn( char *task, char **argv, int flag, char *where, int ntask, int *tids ) starts the file in the task parameter ntask times the new process ids will be in the tids array (or error codes) return value: number of tasks started int pvm_initsend(PvmDataDefault) initialize the buffer int pvm_pkint(int* p, int cnt, int stride) manpage: pvm_pack puts an integer or integers to the buffer. similar methods for other types. p: address of the int; cnt - pieces stride: hanyasaval (in a simple case: 1) return value: error(<0) int pvm_send(int tid, int tag) send message tid: destination process; tag: label int pvm_recv(int tid, int tag) receive message tid: from which process (-1: from every process) tag: which label (-1: every tag) return: buffer id or error (<0) int pvm_upkint(int *p, int cnt, int stride) manpage: pvm_unpack parameters are same as at pvm_pkint