Panda

Panda is a portability layer that runs on a variety of platforms (Solaris, SP-2, CM-5, Parix, Myrinet/BSDI, Amoeba). It provides threads and communication primitives. Panda is used to build higher level systems on: e.g. Orca, MPI, PVM, CRL have been ported to Panda.
Panda's design philosophy is described in, for instance, the PDPTA96 paper.

Threads

Thread synchronisation is done by monitors; moreover, the thread package is integrated with the communication system in that the network devices are polled from the idle loop.
Latterly, the thread package favoured by the Panda implementations is OpenThreads, which has been ported to a number of platforms: See the Frontiers96 paper for our philisophy on the integration of thread package and communication. This also deals with the polling vs. interrupt question.

Communication

Communication is provided at a high level: (reliable) RPC, (reliable) Message Passing and (totally ordered) Group Communication. Panda takes care of fragmentation and reliability if the underlying system software does not provide it. Message receipt is done via upcalls.

Compilation

Panda programs are best compiled with the script panc.

Documentation

As things go with software, the Panda interface and implementation go through a development and modification cycle.

Distribution

There is no current supported distribution of Panda. However, you may download a snapshot of the source tree, where you can also download the version of LFC that runs on top of GM, and the synchronization package daslib.
This page is maintained by Rutger Hofman. Last modified: Tue Jul 21 16:36:19 MET DST 1998