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 ...