Parallelrechner
Ein Parallelrechner ist ein Computer, in dem Operationen gleichzeitig auf mehreren CPUs ablaufen.Es werden grob zwei Ausführungen von Parallelrechnern unterschieden:
Massive Parallele Computer besitzen einige zehn bis einige tausend CPUs, die alle gleichzeitig die gleichen Operationen durchführen. Sie sind geeignet, regelmäßig aufgebaute Datensätze effizient zu Bearbeiten. Anwendungsbeispiele finden sich in der numerischen Festkörperphysik oder in der Wettervorhersage.
Ein anderer Zugang zum gleichzeitigen ausführen mehrerer Anweisungen erfolgt durch das Ausführen mehrerer Berechnungsfäden (Threads), die miteinander synchronisieren, um etwa Daten auszutauschen.
Parallelcomputer, auf denen mehrere Benutzer gleichzeitig arbeiten, verbessern ihre Arbeitsgeschwindigkeit, indem sie die Benutzerprogramme auf verschiedene CPUs verteilen.
Um die Leistungsfähigkeit eines Parallelrechners richtig ausnutzen zu können, muß die Programmierung genau auf die verteilte CPU zugeschnitten werden. Prinzipiell handelt es sich dabei um ein logistisches Problem. Es gilt die knappen Ressourcen - Rechenzeit, Speicherzugriffe, Datenbusse - effizient auszunutzen. Stets sollte der sequentielle Programm Overhead minimal sein (Amdahlsches Gesetz).
Je größer die Anzahl der CPU ist, desto schneller steigt der Kommunikationsaufwand in einer Parallelrechnerumgebung (egal welchen Typs) überproportional an. Der Zusammenhang ist nicht linear.
So gesehen muß das Optimum zwischen Anzahl der CPU und Kommunikationsaufwand und Programmierung gefunden werden. Durch den Einsatz der Harvardarchitektur kann der Kommunikationsproblem optimiert werden. Auch in der Art der Vernetzung der CPU liegt ein Optimierungspotential. Ein sehr guter Kompromiss kann mit folgenden räumlichen Strukturen erzielt werden:
- Cube (Konfiguration aus 8 Rechnern. Vernetzung entspricht einem Quader (3 dimensionaler Quader))
- Hyper-Cube (4-dimensionaler Quader)