Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

aimk(1pvm) [debian man page]

AIMK(1PVM)							  PVM Version 3.4							AIMK(1PVM)

NAME
aimk - Portable make wrapper script SYNOPSIS
aimk [ -here ] [ make arguments ] DESCRIPTION
aimk is a wrapper program for make, used to portably select options to build PVM and PVM applications on various machines. Each port of PVM is assigned an architecture name. The name is used both during compilation (to conditionally switch in code) and at runtime (to select an executable or host). aimk uses the value of environment variable $PVM_ARCH if it is set, otherwise it calls $PVM_ROOT/pvmgetarch to determine the architecture name. pvmgetarch is a script that sniffs at various parts of the system to determine the correct architecture name. It is updated as new PVM ports are defined, and can be augmented locally. aimk determines the machine architecture and execs make, passing it the architecture and a configuration file along with arguments supplied to aimk. It runs make in a subdirectory to prevent executables from becoming intermixed and to permit overlapping compiles. A different makefile can be placed in each subdirectory or a single makefile, Makefile.aimk, can be shared between architectures. Per-architecture definitions from the $PVM_ROOT/conf directory are appended to the common makefile. aimk calls make is called in one of three ways, depend- ing on what makefiles are present: i. If $PVM_ARCH/Makefile or $PVM_ARCH/makefile exists, change directory to $PVM_ARCH and exec make there: (cd $PVM_ARCH ; make PVM_ARCH=$PVM_ARCH < aimk args >) ii. Else if Makefile.aimk exists, create $PVM_ARCH directory if it doesn't exist, then: (cd $PVM_ARCH ; make -f $PVM_ROOT/conf/$PVM_ARCH.def -f ../Makefile.aimk PVM_ARCH=$PVM_ARCH < aimk args >) iii. Else just exec make in current directory: make PVM_ARCH=$PVM_ARCH < aimk args > If aimk succeeds in calling make, the exit status is that of make, otherwise it is 1. FLAGS
-here Forces aimk to run make in the current directory, e.g. converts case i. to case iii. EXAMPLES
The following Makefile.aimk file builds and installs hello, creating the PVM binary directory if it doesn't exist. It can be run concur- rently on machines of different types, sharing the same source directory. LDIR = -L$(PVM_ROOT)/lib/$(PVM_ARCH) PVMLIB = -lpvm3 SDIR = .. BDIR = $(HOME)/pvm3/bin XDIR = $(BDIR)/$(PVM_ARCH) CFLAGS = -g -I$(PVM_ROOT)/include LIBS = $(LDIR) $(PVMLIB) $(ARCHLIB) $(XDIR): - mkdir $(BDIR) $(XDIR) hello: $(SDIR)/hello.c $(XDIR) $(CC) $(CFLAGS) -o $@ $(SDIR)/$@.c $(LIBS) mv $@ $(XDIR) ENVIRONMENT
$PVM_ROOT Root path of PVM installation. $PVM_ARCH PVM architecture name for machine. FILES
$PVM_ROOT/lib/aimk The aimk program $PVM_ROOT/conf/$PVM_ARCH.def Arch config file SEE ALSO
pvm_intro(1PVM) 02 May, 1994 AIMK(1PVM)

Check Out this Related Man Page

LIBPVM(3PVM)							  PVM Version 3.4						      LIBPVM(3PVM)

NAME
libpvm3, libfpvm3 - 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) 27 June, 1994 LIBPVM(3PVM)
Man Page