Abstract
We describe pC (parallel C), an extension of the ANSI C programming language to support medium- to large-grain parallel programming in both shared- and distributed-memory environments. pC aims to make programming for parallel processors accessible to the C community by enriching the C programming model with a small set of constructs supporting parallelism. pC supports shared-and distributed-memory environments via a hierarchical computational model. A pC application comprises a static collection of tasks with disjoint memory spaces. A dynamic collection of threads runs within each task, sharing the data and code of the task. Language constructs specify concurrent execution of threads within a single task. Additional language constructs specify the interactions between threads through the following mechanisms: initiation of threads in remote tasks by remote function call, mailbox-based message passing, and synchronization primitives. The paper introduces the computational model and language constructs of pC and describes a prototype pC compiler and run-time system for the Mach operating system. Several program examples illustrate the utility of pC constructs.
Original language | English |
---|---|
Pages (from-to) | 727-741 |
Number of pages | 15 |
Journal | IBM Journal of Research and Development |
Volume | 35 |
Issue number | 5-6 |
DOIs | |
State | Published - 1991 |
Externally published | Yes |