Chapter 2. A Brief Introduction to Parallel Programming

'Hard work is a series of simple jobs that were not carried out on time'

Anonymous

Parallel computing involves the simultaneous use of multiple computer resources to solve a single computational problem. The problem is divided into multiple discrete series of instructions that can be executed simultaneously on different processors. Parallel computing has traditionally been associated with 'high performance computing', which uses high-end computer resources to solve 'grand challenge' computational problems. With the advent of commodity-market multi-core processors [AMD08] [Intel08] and clusters of blade computers or low-cost servers, parallel computing is now available to many application developers. Regardless of the parallel computing infrastructure, however, many computational problems can be divided into discrete parts that can be solved simultaneously, and hence solved in less time than with a single-core computer resource. Parallel computing is also commonly used to conduct numerical simulations of complex systems in diverse domains, such as cosmology, weather forecasting, biology and genetics, business operations, material science and so on.

Get Patterns for Parallel Software Design 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.