PCN v2.0 now available

tuecke@pelican.mcs.anl.gov (Steve Tuecke)
Wed, 3 Feb 1993 23:02:16 GMT

          From comp.compilers

Related articles
PCN v2.0 now available tuecke@pelican.mcs.anl.gov (1993-02-03)
| List of all articles for this month |

Newsgroups: comp.parallel,comp.lang.misc,comp.compilers
From: tuecke@pelican.mcs.anl.gov (Steve Tuecke)
Keywords: tools, parallel, available, FTP
Organization: Argonne National Laboratory, Chicago, Illinois
Date: Wed, 3 Feb 1993 23:02:16 GMT

We are pleased to announce the release of PCN version 2.0.

PCN is a parallel programming system designed to improve the productivity
of scientists and engineers using parallel computers. It provides a
simple language for specifying concurrent algorithms, interfaces to
Fortran and C, a portable toolkit that allows applications to be developed
on a workstation or small parallel computer and run unchanged on
supercomputers, and integrated debugging and performance analysis tools.
PCN was developed at Argonne National Laboratory and the California
Institute of Technology. It has been used to develop a wide variety of
applications, in areas such as climate modeling, fluid dynamics,
computational biology, chemistry, and circuit simulation.

PCN can be used to program workstation networks, advanced parallel
supercomputers like the Intel Touchstone DELTA, and shared-memory
multiprocessors. Currently we supply configurations for the following

                Workstation Networks: Sun 4, NeXT, IBM RS/6000, SGI Iris
                Multicomputers: Intel iPSC/860, Intel Touchstone DELTA
                Shared Memory Machines: Sequent Symmetry running Dynix (not PTX)

However, PCN is not difficult to port, and we will supply configurations
for other machines in the future.

    System components

The PCN system consists of several components:

    * Runtime system: There is a highly portable runtime system that is
implemented in C.

    * PCN compiler: The compiler translates PCN programs to a
machine-independent, low-level form (PCN object code). An interface to
the C preprocessor allows macros, conditional compilation constructs, and
the like to be used in PCN programs.

    * PCN linker: The PCN linker combines PCN object code (i.e., PCN
compiler output), foreign object code that is called from PCN (i.e., C or
Fortran compiler output), libraries, and the PCN run-time system into a
single executable program. This permits C and Fortran procedures to be
integrated seamlessly into PCN programs, and PCN programs to be executed
similar to programs written in other languages.

    * Standard libraries: A set of standard libraries provides access to
Unix facilities (e.g., I/O) and other capabilities.

    * Virtual Topology tools: These support process mapping on a variety of
virtual machines, and templates for writing reusable parallel code.

    * PDB: PDB is the PCN symbolic debugger. It includes specialized
support for debugging of concurrent programs.

    * Gauge: Gauge is an execution profiler for programs written in PCN and
other languages. It includes run-time system support for collecting and
saving profiles, and an X windows based graphical tool for interactive
exploration of profile data. It is particularly useful for finding and
correcting load imbalances and bottlenecks in parallel programs.

    * Upshot: Upshot is a trace analysis tool for programs written in PCN
and other languages. It includes run-time system support for collecting
and saving traces, and an X windows based graphical tool for interactive
exploration of trace data.


Several features of PCN make it particularly useful for a wide variety of
parallel programming tasks:

    * Portability: Because PCN is portable, parallel programs can be
developed under a friendly (and inexpensive) environment such as a
workstation. Once the program is working properly, it can moved with
little difficulty to different parallel computer targets, such as large
parallel computers and networks of workstations.

    * Flexibility: PCN is particularly well suited for the development of
complex parallel programs involving irregular communication patterns or
dynamic load balancing.

    * Rapid prototyping: PCN is an excellent system for the rapid
prototyping of parallel algorithms. The combination of high-level
language and integrated profiling tools make it easy to explore and
evaluate alternative algorithms and implementation strategies.

    * Multilingual: PCN programs can call Fortran and C procedures. This
allows existing code to be reused within parallel PCN programs. It also
allows users to easily expoit advanced Fortran and C compiler technology
in critical sections of parallel programs.


PCN is in the public domain. You can obtain the complete distribution by
anonymous ftp from:


The README file in that directory contains a description of exactly what
is available, including the software distribution, documentation, and
related papers.

The PCN distribution contains all source code, installation instructions,
a users guide in both LateX and Postscript formats, and examples.


    * There is a PCN users guide which contains both tutorial and reference

"Parallel Programming with PCN"
Ian Foster and Steven Tuecke
Argonne National Laboratory Technical Report ANL-91/32 Rev. 2

This users manual is included in the PCN distribution, and is also
available separately at the anonymous ftp site mentioned above. Bound,
soft-cover copies of this users guide will be available shortly -- send us
email if you would like a copy.

    * The following paper provides a good overview of the PCN system and
examples of how it has been used:

"Productive Parallel Programming: The PCN Approach"
Ian Foster, Robert Olson, and Steven Tuecke
Scientific Programming , 1(1), pp. 51--66.

A preprint of this paper is available in Postscript form both in the PCN
distribution and at the anonymous ftp site mentioned above.

    * The following book is an introductory parallel programming text book
with all of its examples written in PCN. It has been used at several
universities, in conjuction with the PCN system and users manual, to teach
parallel programming.

"An Introduction to Parallel Programming"
K. Mani Chandy and Stephen Taylor
Jones and Bartlett Publishers
ISBN: 0-86720-208-4

    * Additional references can be found in the PCN users guide.

    Further Information

For further information on PCN, please send email to:


Or contact:

Ian Foster or Steve Tuecke
foster@mcs.anl.gov tuecke@mcs.anl.gov
(708)-252-4619 (708)-252-8711

Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.