ParC - An extension of C for shared memory parallel processing

Yosi Ben-Asher*, Dror G. Feitelson, Larry Rudolph

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review

16 Scopus citations


ParC is an extension of the C programming language with block-oriented parallel constructs that allow the programmer to express fine-grain parallelism in a shared-memory model. It is suitable for the expression of parallel shared-memory algorithms, and also conducive for the parallelization of sequential C programs. In addition, performance enhancing transformations can be applied within the language, without resorting to low-level programming. The language includes closed constructs to create parallelism, as well as instructions to cause the termination of parallel activities and to enforce synchronization. The parallel constructs are used to define the scope of shared variables, and also to delimit the sets of activities that are influenced by termination or synchronization instructions. The semantics of parallelism are discussed, especially relating to the discrepancy between the limited number of physical processors and the potentially much larger number of parallel activities in a program.

Original languageAmerican English
Pages (from-to)581-612
Number of pages32
JournalSoftware - Practice and Experience
Issue number5
StatePublished - May 1996


  • Forced termination
  • ParC language
  • Parallel programming
  • Semantics of parallelism
  • Shared memory


Dive into the research topics of 'ParC - An extension of C for shared memory parallel processing'. Together they form a unique fingerprint.

Cite this