An Introduction to Parallel Programming
Viele wissenschaftliche Berechnungen benötigen viel Rechenzeit. Diese Rechenzeit kann durch das Verteilen des Problems auf mehrere Prozessoren reduziert werden. Multiprozessorcomputer ware lange Zeit sehr teuer, und waren nicht für jedermann zugänglich. Seit 2005 gibt es x86-kompatible CPUs für Desktop-PCs mit zwei "Cores", was diese im Prinzip zu Doppelprozessorsystemen macht. Mehr Cores pro CPU werden folgen.Von dieser zusätzliche Rechenleistung muss effizient Gebrauch gemacht werden, was paralleles Programmieren erfordert. Parallele Programmiermethoden, die auf Dual-Core PCs funktionieren, funktionieren auch bei größeren Shared-Memory-Rechnern. Programme, die für Cluster oder andere Distributed-Memory-Architekturen geschrieben sind, sind auch auf einem Dual-Core (oder Multi-Core) PC schnell.
Das Ziel dieses Tutorials ist, eine Einführung in alle Aspekte des parallelen Programmierens zu geben. Um dieses Ziel zu erreichen erklärt es
- die existierenden Architekturen paralleler Computer,
- die Software, die für das Schreiben paralleler Programme benötigt wird,
- wie man Programme für Shared-Memory-Systeme mit OpenMP parallelisiert,
- wie man Programme für Distributed-Memory-Systeme mit MPI und ScaLAPACK parallelisiert.
- An Introduction to Parallel Programming (PDF, 4,0 MB)
- Beispielprogramme (mit gzip komprimiertes tar-Archiv, 10 KB)
- Beispieldaten (mit gzip komprimiertes tar-Archiv, 3,6 MB)
Many scientific computations require a lot of computation time. This computation time can be reduced by distributing the problem over several processors. Multiprocessor computers used to be very expensive and not accessible for everyone. Since 2005, x86/compatible CPUs for desktop PCs with two "cores" are available, make these dualprocessor systems. More cores per CPU are to follow.
This additional computing power needs to be used efficiently, which requires parallel programming. Methods of parallel programming that work on dual-core PCs, will also work on larger shared memory computers. Programs written for clusters or other distributed memory architectures will also perform well on dual-core (or multi-core) PCs.
The goal of this tutorial is to give an introduction into all aspects of parallel programming. To achieve this goal, it explains
This additional computing power needs to be used efficiently, which requires parallel programming. Methods of parallel programming that work on dual-core PCs, will also work on larger shared memory computers. Programs written for clusters or other distributed memory architectures will also perform well on dual-core (or multi-core) PCs.
The goal of this tutorial is to give an introduction into all aspects of parallel programming. To achieve this goal, it explains
- the existing architectures of parallel computers,
- the software required for writing parallel programs,
- how to parallelise programs for shared memory computers using OpenMP,
- hot to parallelise programs for distributed memory computers using MPI and ScaLAPACK.
- An Introduction to Parallel Programming (PDF, 4,0 MB)
- example programs (gzip-compressed tar archive, 10 KB)
- example data (gzip-compressed tar archiv, 3,6 MB)
