PICL (Portable Instrumented Communication Library)



Portable Instrumented Communication Library

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 ParaGraph 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 worleyph@ornl.gov.

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 these items.

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. (765664 bytes)

compressed and uuencoded sh archive file containing PICL 2.0 source code. Use uudecode, uncompress, and sh to generate the source directory. (625953 bytes)

6/94 announcement of PICL 2.0 availability and features. (4596 bytes)

brief description of PICL 2.1 features and functionality. (25477 bytes)

brief description of PICL 2.1 programming models. (11025 bytes)

postscript file of the 1990 reference manual for the C version of PICL 1.0. (428873 bytes)

postscript file of the 1990 PICL 1.0 users' guide. (113620 bytes)

postscript file of the 1992 report describing the PICL 2.0 trace data format. (157973 bytes)

Patrick H. Worley / (worleyph@ornl.gov)
Last Modified Tuesday, 12-Sep-2000 14:07:19 EDT.
190026 accesses since 1/2/96.