Parallel Programming

Research output: Chapter in Book/Report/Conference proceedingChapter (peer-reviewed)

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 languageEnglish
Title of host publicationEncyclopedia of Software Engineering
PublisherTaylor and Francis
Number of pages14
ISBN (Electronic)1-4200-5978-5
ISBN (Print)1-4200-5977-7
Publication statusPublished - 27 Feb 2013

Keywords

  • parallel programming
  • parallelism
  • concurrency
  • threads
  • synchronization
  • communication
  • shared memory
  • distributed memory
  • transactional memory

Fingerprint Dive into the research topics of 'Parallel Programming'. Together they form a unique fingerprint.

  • Cite this

    Vandierendonck, H., Nikolopoulos, D. S., & Pratikakis, P. (2013). Parallel Programming. In Encyclopedia of Software Engineering Taylor and Francis. http://www.tandfonline.com/doi/abs/10.1081/E-ESE-120048154