Overview

-*- mode: view -*-

LPVM is PVM3 bindings for Common Lisp with UFFI.

PVM is Parallel Virtual Machine, message-passing communication
library for parallel computations.

This package requires UFFI.  See http://www.cliki.net/UFFI for more
information.

This is pre-alfa version of LPVM.  It was developed and tested with
CMU CL 18e.  I used UFFI for portablity, but I'm not sure I got UFFI
docs right.  So, patches are welcome :)

LPVM is distributed under terms of MIT-like license.  See LICENSE.MIT
for more details.

This version lacks documentation and docstrings.  Use man page of PVM
as source of information.  Names of C functions and mostly corresponds
to each other:

 C name                      Lisp name
========                    ===========
pvm_joingroup                pvm:joingroup
pvm_exit                     pvm:exit
pvm_mytid                    pvm:mytid

and so on.

Functions pvm_gather and pvm_scatter corresponds to number of typed
Lisp variants: pvm:gather-int, pvm:gather-double, and so on.  Generic
functions pvm:gather and pvm:scatter are implemented as well, and they
analise types of their arguments to find proper value of PVM data
type.

pvm:pack* can accept array of variables or single value.  If the
latter, other arguments are ignored and only the valuse is packed (but
pvm:pvmstr can accept only one single value: string).  Forth optional
argument for the functions is offset of first packed element (so, you
may pack only half of array, or array from second element, and so on).

pvm_upk* are transformed into two functions: pvm:upk* and
pvm:upk*-array.  Former form unpacks single number, and latter unpacks
array.

Author of LPVM is Ivan Boldyrev <boldyrev+nospam@cgitftp.uiggm.nsc.ru>