Parallel programming deals with multi-processing and multi-threading. With the advent of multi-core computers, parallel programming has become essential. In this chapter we discuss the POSIX threading library (pthread). User annotated compiler supported parallelism with OpenMP is described with the help of examples in Section 12.2. The new features of OpenMP version 3.0 (task computing) is presented with the help of examples in Section 22.214.171.124. In addition to multi-threading, parallel computing has been successfully deployed on cluster grids (called the Beowulf class). The most common API used in cluster computing is MPI (message passing interface) which is discussed in this chapter. In addition to these well established parallel programming systems, the rapid rise of many-core and other forms of parallelism has also created new systems which have had less exposure. In particular the Intel Thread Building Block library, and GPGPU computing with NVIDIA CUDA and OpenCL are described.
KeywordsApplication Program Interface Message Passing Interface Code Block Static Schedule OpenMP Directive
Unable to display preview. Download preview PDF.