PICL is a subroutine library that implements a generic message-passing
interface on a variety of multiprocessors. Programs written
using PICL routines instead of the native commands for interprocessor
communication are portable in the sense that they can be
run on any machine on which the library has been implemented.
Correct execution is also a function of the parameter values passed
to the routines, but standard error trapping is used to inform
the user when a parameter value is not legal on a particular machine.
Programs written using PICL routines will also produce timestamped
trace data on interprocessor communication, processor busy/idle times
and simple user-defined events if a few additional statements are added
to the source code. A separate facility called
can be used to graphically view the trace data.
PICL differs from other outwardly similar systems in that it is a
compatibility library with an integrated intrumentation package, and
because it is intended to be a research tool. PICL supports the writing of
portable programs without enforcing it. Machine-specific commands or
functionality can still be invoked when necessary to get good performance.
Portable instrumentation logic that is integrated with the message passing
interface is also a unique feature, one that has proven to be extremely
useful. Understanding the performance of a parallel code often requires the
collection of both system and user-defined event data. Finally, to be a
research tool requires that the code be easy to maintain, easy to extend,
and easy to port to new platforms. Every effort has been made to keep PICL
simple, and to make it available to other research groups who might be
interested in porting it to their multiprocessors.
The PICL source is written in C, but Fortran-to-C interface routines are
also supplied for those machines where that is feasible. To create PICL, you
need picl2.1.code. Use uudecode and uncompress to generate picl2.1.tar. Next,
untar picl2.1.tar to create the directory picl2.1. A README file describing
how to create the library is located in picl2.1. Supported platforms
currently include MPL (IBM SP-1, SP-2), NX/2 (mpsim hypercube simulator,
Intel iPSC/2, iPSC/860, DELTA, Paragon/OSF, and Paragon/SUNMOS),
VERTEX (nCUBE/2 and nCUBE/2S), and PVM 3.3 (SUN and RS6000 workstations,
Cray Research T3D).
PICL 2.1 was authored by
P. H. Worley
at Oak Ridge National Laboratory. It is based on PICL 1.0, authored by
G. A. Geist, M. T. Heath, B. W. Peyton, and P. H. Worley, and remains
backward compatible with earlier versions of the library. Questions and
comments may be addressed to firstname.lastname@example.org.
The following files are documentation and source code for PICL 2.1.
The files without a .ps or .html suffix should be copied, not viewed.
In Mosaic, set the Load to Local Disk option before selecting
NOTE: PICL2.1 functionality has been included
in MPICL1.5, and there is no reason (that I can think of) to use
PICL2.1 any longer.
compressed and uuencoded tar file containing PICL 2.1 source code,
including ports to the IBM SP and to the Cray Research T3D.
Use uudecode, uncompress, and tar to generate the source directory.