Abstract
Recent trends in computing systems, such as multi-core processors and cloud computing, expose tens to thousands of processors to the software. Software developers must respond by introducing parallelism in their software. To obtain highest performance, it is not only necessary to identify parallelism, but also to reason about synchronization between threads and the communication of data from one thread to another. This entry gives an overview on some of the most common abstractions that are used in parallel programming, namely explicit vs. implicit expression of parallelism and shared and distributed memory. Several parallel programming models are reviewed and categorized by means of these abstractions. The pros and cons of parallel programming models from the perspective of performance and programmability are discussed.
Original language | English |
---|---|
Title of host publication | Encyclopedia of Software Engineering |
Publisher | Taylor and Francis |
Number of pages | 14 |
ISBN (Electronic) | 1-4200-5978-5 |
ISBN (Print) | 1-4200-5977-7 |
Publication status | Published - 27 Feb 2013 |
Keywords
- parallel programming
- parallelism
- concurrency
- threads
- synchronization
- communication
- shared memory
- distributed memory
- transactional memory