Introduction to Pfortran

The Pfortran programming approach eases the task of writing parallel programs for massively parallel computers by providing constructs to coordinate non-local memory accesses. At Pfortran's center is an operator that specifies the location of off-processor variables and an operator for aggregate operations. Portability and ease of programming are achieved by unifying off-processor accesses with the guarded-memory model. Because the programmer writes low-level node code with Pfortran, the loss in performance compared to using the lowest-level primitives is typically negligible.

The P-language notion subtending Pfortran was first conceived in a collaboration between University of Michigan and Argonne National Laboratories in 1986. The first P-language compiler, PC, was implemented in 1988 at Penn State. Later, in 1991, at the University of Houston, Pfortran was implemented. Also at this time, a University of Houston group ported the molecular-dynamics program, GROMOS, to the Intel hypercube for the first industrial-strength application of Pfortran.

A number of well-known computational chemistry programs parallelized with Pfortran are now in production use on massively parallel computers, with several research groups now contributing to the ongoing development. Recently, a prototype of PC++ has been developed, with further refinements to the P-language concept.

Pfortran is now available for Intel MPPs, networks of workstations using PVM, Cray multiprocessors using PVM, multiprocessor SGIs, IBM's SP1 and SP2, and the Kendall Square Research KSR-1. Pfortran can be installed on the target platform, or used as a cross compiler. Since Pfortran produces FORTRAN77 native to the target MPP, codes developed with Pfortran may be distributed without Pfortran by providing the Pfortran output to end users.

Alternatives to the Pfortran approach include global namespace compilers, such as HPF, or machine specific compiler directives. In their early stage of development, global namespace compilers hold great promise for future parallel computing. Today, however, most parallel programmers of massively parallel computers resort to macro systems or native-compiler directives to write node code. Native-compiler directives clearly restrict portability. Macro systems, such as the ANL Fortran macros, are related to Pfortran in spirit. However, Pfortran provides a slightly higher-level abstraction along with determinism and the opportunity for sophisticated analysis such as deadlock detection and code movement optimizations. For more information about Pfortran, contact

Suggested Reading

L.R. Scott, J.M. Boyle and B. Bagheri. ``Distributed data structures for scientific computation.'' Proceedings of the 3rd Hypercube Multiprocessors Conference, M.T. Heath, editor, Philadelphia, PA, SIAM, 1987, 55-66.

B. Bagheri, B. Raghavachari, and L. R. Scott. ``Sharing variables in parallel programs.'' Research Report UH/MD-79, Dept. of Math., University of Houston, 1990.
Available via anonymous ftp from as pub/Reports/

Babak Bagheri, Terry Clark, and L. Ridgway Scott. ``Pfortran: A parallel dialect of Fortran.'' ACM Fortran Forum, 11(3), 1992, 20-31.
Available via anonymous ftp from as pub/articles/

T.W. Clark, J.A. McCammon and L.R. Scott, ``Parallel Molecular Dynamics.''
Proceedings of the Fifth SIAM Conference on Parallel Processing for Scientific Computing,'' SIAM, J. Dongarra et al., editors, Houston, March, 1991, 338-344.
Available via anonymous ftp from as pub/articles/

T. W. Clark, R. v. Hanxleden, K. Kennedy, C. Koelbel, and L. R. Scott. ``Evaluating parallel languages for molecular dynamics computations.'' Proceedings Scalable High Performance Computing Conference, IEEE Computer Society, Williamsburg, VA, 1992, 98-105. Available via anonymous ftp from as pub/CRPC-TRs/reports/CRPC-TR992202-S.

Babak Bagheri, ``Parallel Programming with Guarded Objects.'' Ph.D. Dissertation,
Pennsylvania State University, 1994.

T. W. Clark, R. v. Hanxleden, J. A. McCammon, and L. R. Scott. Parallelizing molecular dynamics using spatial decomposition. In Proceedings of the Scalable High Performance Computing Conf erence, Knoxville, TN, May 1994.

B. Bagheri, A. Ilin, and L. R. Scott. Parallel 3-d MOSFET simulation. In Proceedings of the Twenty-Seventh Annual Hawaii International Conference on System Sciences, Maui, HI, January 1994.

A. Ilin, B. Bagheri, L.R.Scott, J.M.Briggs, and J.A.Mc Cammon. Parallelization of Poisson-Boltzmann and Brownian Dynamics calculation. In Parallel Computing in Computational Chemistry, pages 170-185, Washington D.C., 1995. ACS Books.

J.D.Madura, J.M.Briggs, R.C.Wade, M.E.Davis, B.A.Luty, A. Ilin, J.Antosciewicz, M.K.Gilson, B.Bagheri, L.R.Scott and J.A.McCammon. Electrostatics and Diffusion of Molecules in Solution: Simulations with the University of Houston Brownian Dynamics Program Comp. Phys. Commun., 91, pages 57-95, 1995.

Clark, T.W., L.R. Scott, S.T. Wlodek, and J.A. McCammon. I/O Limitations in Parallel Molecular Dynamics. In "Proceedings of the 1995 ACM/IEEE Supercomputing Conference" (refereed), F. Baker and J. Wehmer, eds., IEEE Computer Society Press, pp. 1-15, 1995.

Terry W. Clark, Parallel Programming Approach For Scientific Application, Dissertation, December 1996, University of Houston. postscript (6176 kB)