Chapter 2

Multicore and parallel program design

Abstract

Designing software for multicore platforms is a significant challenge, as one has to break-down the work into items that can run concurrently. In this chapter we address the design problem from two perspectives: the decomposition and the program structure.

The decomposition problem is solved both at a low-level, by describing the PCAM methodology, that is a systematic approach to workload partitioning and mapping, and at a high-level by covering a large collection of decomposition patterns. The use of patterns allows software developers to gain from past experience. These patterns are explained through simple examples and their performance characteristics are analyzed.

Finally, commonly ...

Get Multicore and GPU Programming now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.