A key strategy used by the CRPC in its support of applications is the
establishment of PCE-TECH, a project to develop parallel computing enabling
technologies. PCE-TECH evaluates emerging parallel computing technologies
(algorithms, software tools, libraries, and reference implementations) and
provides documentation and assistance to potential users of these
technologies in both academia and industry. Although the program puts a
special emphasis on technologies developed within the CRPC, it is intended
to incorporate the best available technologies from any source. PCE-TECH
helps in selecting the right technology from the many technologies that are
Enabling technologies under consideration by PCE-TECH include:
- Parallel Virtual Machine (PVM), a portable message-passing library
for implementing computations on collections of heterogeneous processors.
- A graphical user interface for generating PVM programs.
- A prototype compiler for Fortran D, a language for
machine-independent data-parallel programming, which generates code for the
Intel iPSC/860, Delta, and Paragon.
- An intelligent editor for Fortran D that can be used to help
understand simple parallelization techniques on programs of modest size.
- An interprocedural analysis engine that manages interprocedural
analysis and compilation for Fortran D programs.
- A version of the linear algebra library LAPACK especially developed
for distributed-memory parallel computers.
- Reference implementations for a variety of important parallel
algorithms and applications, which include documentation on how to adapt
the implementation to other problems.
- Compilers for Fortran M, a language that supports task parallelism,
targeted to the Intel Delta, IBM SP1, and networks of workstations.
- A library of parallel programming schemas, with several sample
applications developed by "filling in" schema.
- The ADIFOR automatic differentiation tool for computing
sensitivities of Fortran programs.
- An interactive electronic textbook environment for parallel
programming that allows users to explore a library of parallel schemas and
associated libraries of parallel applications.
- A library of concurrent object-oriented applications in CC++ that
can evaluate scientific object-oriented methods and serve as a model for
- A runtime layer that allows for interoperability of Fortran M,
CC++, and Modular C.
- A simulator that takes as input a parallel program and a target
machine, and predicts performance of the application on the machine.