The p4 Parallel Programming System

Click here to see the number of accesses to this library.

p4 is a library of macros and subroutines developed at Argonne National Laboratory for programming a variety of parallel machines in C and Fortran. Its predecessor was the m4-based "Argonne macros" system described in the Holt, Rinehart, and Winston book "Portable Programs for Parallel Processors, by Lusk, Overbeek, et al., from which p4 takes its name. The current p4 system maintains the same basic computational models described there (monitors for the shared-memory model, message-passing for the distributed-memory model, and support for combining the two models) while significantly increasing ease and flexibility of use.

The current release is version 1.3. Features include:

p4 is intended to be portable, simple to install and use, and efficient. It can be used to program networks of workstations, distributed-memory parallel supercomputers like the Intel Paragon, the Thinking Machines CM-5, and the IBM SP-1, as well as shared-memory multiprocessors like the Kendall Square. It has currently been installed on the following list of machines: Sequent Symmetry (Dynix and PTX), Convex, Encore Multimax, Alliant FX/8, FX/800, and FX/2800, Cray X/MP, Sun (SunOS and Solaris), NeXT, DEC, Silicon Graphics, HP, and IBM RS6000 workstations, Stardent Titan, BBN GP-1000 and TC-2000, Kendall Square, nCube, Intel IPSC/860, Intel Touchstone Delta, Intel Paragon, Alliant Campus, Thinking Machines' CM-5, and the IBM SP-1 (TCP/Ethernet, TCP/switch, EUI, and EUI-H). It is not difficult to port to new systems.

A useful companion system is the Upshot logging and X-based trace examination facility. The macros to create logs are included in p4. Upshot (an X program for graphically displaying the logs) is in file upshot.tar.Z.

The complete distribution of p4 is in the file p4-1.3.tar.Z. The distribution contains all source code, installation instructions, a User's Guide in both ascii text and latexinfo format, and a collection of examples in both C and Fortran. A copy of the postscript for the manual is available separately as An article on p4 is available in There are a few features that are not implemented on certain machines. See the machine-specific section of the manual for details.

To go to the p4 home page at Argonne, which includes on-line searchable HTML versions of the User's Guide and the article on p4, click here.

To ask questions about p4, report bugs, contribute examples, etc., send mail to To subscribe to a list to receive announcements about new releases and bug fixes, send your request to the same place,

for	The postscript for the p4 User's Guide
size	275 kB

for	A reference card for the p4 functions

#	The following files are available only by ftp, not by email
file	p4-1.3.tar.Z
for	programming a variety of parallel machines in C and Fortran
size	380 kB

file	upshot.tar.Z
for	The upshot logfile visualization system
size	345 kB

for	A journal article on p4
size	282 kB

file	readme