2.2. 2.2 Factors that Influence the Performance of a Parallel Program

Parallel programming is a complex activity that is aimed at developing the specifications of parallel processes that execute simultaneously and non-deterministically to obtain gains in execution time. The performance obtained when applying parallel programming is affected by the hardware platform, the programming language and the problem to be solved [Pan96]. Some important features of these factors are described below.

2.1.1. The Hardware Platform

A parallel computer is generally considered as any collection of processing elements connected through some type of communication network, where a 'processing element' is composed of hardware devices such as a processor and its associated memory. Contemporary parallel computers range in price and size from a single multi-core chip, through a group of workstations connected through a LAN, to a high-performance (and cost) computer involving hundreds or thousands of processors connected via a high-speed network. The performance of any parallel application is ultimately bounded by the speed, capacity and interfaces of each processing element.

Programming a parallel computer depends on how the memory of the hardware platform is organized or divided among the processors. There are two commonly used memory organizations: shared memory and distributed memory. Depending on which is used for a parallel computer, different mechanisms for process communication are selected for ...

Get Patterns for Parallel Software Design now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.