|
|
 |
|
 |
Volume 35, Number 5/6, Page 727 (1991) Parallel processing |
|
Full article:
PDF
| |
|
Copyright info |
 |
 |
 |
 |
|
| |
|
The parallel C (pC) programming language |
 |
by R. Canetti, L. P. Fertig, S. A. Kravitz, D. Malki, R. Y. Pinter, S. Porat, A. Teperman
|
 |
 |
 |
 |
|
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. |
 |
 |
| Related Subjects: Compilers and interpreters; Multiprocessors; Parallel processing; Programming, programs, and programming languages |
|
|
|