How to Write Parallel Programs: A First Course

Front Cover
MIT Press, 1990 - Computers - 232 pages
0 Reviews
In the not-too-distant future every programmer, software engineer, and computer scientist will need to understand parallelism, a powerful and proven way to run programs fast. The authors of this straightforward tutorial explain why this is so and provide the instruction that will transform ordinary programmers into parallel programmers.

How to Write Parallel Programs focuses on programming techniques for the largest class of parallel machines - general purpose asynchronous or MIMD machines. It outlines the basic parallel algorithm classes and the three basic programming paradigms, takes up the implementation techniques for these paradigms, and presents a series of case studies explaining code and discussing its measured performance. Because parallel programming requires both a computing language and a coordination language, the authors use C and Linda (a language they developed) as a combination that can be simply and efficiently implemented on a wide range of machines. The techniques discussed, however, can be applied in any comparable language environment.

Nicholas Carriero is Associate Research Scientist and David Gelernter is Associate Professor in the Department of Computer Science at Yale University.

Contents: Introduction. The Three Basic Models of Parallelism. Programming Techniques for the Three Basic Models. A Simple Problem, in Detail. Case Studies. From Parallelism to Coordination. Conclusions. Appendix: Linda User's Manual.

From inside the book

What people are saying - Write a review

We haven't found any reviews in the usual places.


Basic Paradigms for Coordination
Basic Data Structures
Performance Measurement and Debugging

6 other sections not shown

Other editions - View all

Common terms and phrases

References to this book

Distributed System Design
Jie Wu
Limited preview - 1998
All Book Search results »

About the author (1990)

Nicholas Carriero is Associate Research Scientist in the Department of Computer Science at Yale University.

Bibliographic information