Chapter 4. Parallel Computing with OpenMPI and ScaLAPACK
The advantage of a cluster compared to a normal personal computer is its capability of performing tasks in parallel and thereby reducing the overall calculation time. On modern computer platforms, there are two main architectures that perform parallel computations:
- Shared memory systems
- Distributed memory systems
On the shared memory system architecture, different CPUs or CPU cores share the same main memory. This means that every program that is loaded from one core or CPU can principally be used by other cores or CPUs as well. To optimally use such a system, the memory or process management has to take care that two processes do not access the same locations of the shared main memory at the same time. Otherwise, one process might have to wait for another until it has completed its operation or freed some locked resources. Also, software programmers have to take care of the fact that only one process can alter such memory...