The Parallel C Preprocessor

  • Authors:
  • Eugene D. Brooks III;Brent C. Gorda;Karen H. Warren

  • Affiliations:
  • Massively Parallel Computing Initiative, Lawrence Livermore National Laboratory, Livermore, CA 94550;Massively Parallel Computing Initiative, Lawrence Livermore National Laboratory, Livermore, CA 94550;Massively Parallel Computing Initiative, Lawrence Livermore National Laboratory, Livermore, CA 94550

  • Venue:
  • Scientific Programming
  • Year:
  • 1992

Quantified Score

Hi-index 0.00

Visualization

Abstract

We describe a parallel extension of the C programming language designed for multiprocessors that provide a facility for sharing memory between processors. The programming model was initially developed on conventional shared memory machines with small processor counts such as the Sequent Balance and Alliant FX/8, but has more recently been used on a scalable massively parallel machine, the BBN TC2000. The programming model is split-join rather than fork-join. Concurrency is exploited to use a fixed number of processors more efficiently rather than to exploit more processors as in the fork-join model. Team splitting, a mechanism to split the team of processors executing a code into subteams to handle parallel subtasks, is used to provide an efficient mechanism to exploit nested concurrency. We have found the split-join programming model to have an inherent implementation advantage, compared to the fork-join model, when the number of processors in a machine becomes large.