ParC - An extension of C for shared memory parallel processing

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

Research output: Contribution to journalArticlepeer-review

Abstract

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 languageEnglish
Pages (from-to)581-612
Number of pages32
JournalSoftware - Practice and Experience
Volume26
Issue number5
DOIs
StatePublished - May 1996

Keywords

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

ASJC Scopus subject areas

  • Software

Fingerprint

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

Cite this