6.2 Resultate auf der CM-2



next up previous contents
Next: 6.3 Diskussion mit Schlußfolgerungen Up: 6 Vektor- und Parallelrechner-Implementationen Previous: 6.1 Vektorisierung

6.2 Resultate auf der CM-2

  Die Connection Machine (CM) ist eine Realisierung eines massiv-datenparallelen Computers. Die CM arbeitet gleichartige Befehle auf einem großen gleichartigen Datensatz gleichzeitig ab (SIMD-Architektur). Eine fundiert-kritische Betrachtung der CM-2 und der vorhandenen Software dieser Maschine findet sich z.B. in [91].

  
Tabelle: Arithmetische Operationen auf der CM-2 auf einem Tensor-Produkt-Gitter mit -Punkten. Werte in Megaflops, Zeitmittelung über Berechnungen.

Zur Abschätzung der arithmetischen Leistungsfähigkeit wurde eine Menge sogenannter Benchmarks auf der Maschine CM-2 gestartet und Resultate in verschiedenen Prozessorkonfigurationen gewonnen. Die Konfigurationen entsprechen dreidimensionalen Tensor-Produkt-Gittern verschiedener Dimension. Die Anzahl der allozierten physikalischen Prozessoren ist 8192 (8k), 16384 (16k) und 32768 (32k).

  
Tabelle: Eine Untermenge von Operationen gemäß Tabelle 6.4. Benutzung eines speziellen Datenformates auf der CM-2 (,,Slicewise Data``) und Überlappung von arithmetischer Operation mit Datenkommunikation bei der 7-Stern-Berechnung (pt-Stencil). Werte in Megaflops, Zeitmittelung über Berechnungen.

Aus Tabelle 6.4 und 6.5 ist die Eigenschaft der Skalierbarkeit der Maschine zu erkennen. Diese Eigenschaft kommt natürlich nur bei genügend großen Datenmengen zum Tragen. Die Skalierbarkeit der Maschine wird durch das Konzept virtueller Prozessoren realisiert. Das bedeutet, daß bei einer Gitterpunktanzahl, die größer als die Anzahl der Prozessoren ist, mehrere Punkte einem physikalischen Prozessor zugewiesen werden. Umgekehrt emuliert ein physikalischer Prozessor mehrere virtuelle Prozessoren. Die virtuellen Prozessoren können die ihnen zugewiesenen Berechnungen nur seriell abarbeiten. Für die in den Tabellen 6.4 und 6.5 angegebenen Berechnungen und Prozessorauslegungen ergibt sich sinngemäß ein VPR (Virtual Processor Ratio - das Verhältnis zwischen virtuellen und physikalischen Prozessoren) von 32 bei 8k Prozessoren, 16 bei 16k Prozessoren und 8 bei 32k Prozessoren. Genaue Zeitmessungen ergaben, daß die Berechnungszeiten nichtlinear mit dem VPR zusammenhängen [59].
Die getesteten arithmetischen Operationen sind verschiedene Linearkombinationen von Vektoren, die in den iterativen Gleichungslösern auftreten. Diese erfordern keine Interprozessor-Kommunikation. Die Ausführungsgeschwindigkeit dieser Operationen hängt nur von den Einzelprozessoren ab, die recht langsam sind (Taktfrequenz kleiner als Mhz). Der tatsächlich begrenzende Faktor dieser lokalen Berechnungen ist jedoch die Busbandbreite zwischen lokalem Speicher und den Einzelprozessoren.
Operationen, die Interprozessor-Kommunikation benötigen, sind das Inprodukt (globale Kommunikation) und die Matrix-Vektor-Multiplikation (lokale Kommunikation gemäß der -Punkt-Diskretisierung). Die Benchmarks in Tabelle 6.4 (die Inprodukt-Operation war im Slicewise-Format zur Zeit der Untersuchung nicht verfügbar) zeigen, daß das Inprodukt keineswegs der Flaschenhals im Datenfluß ist. Dieser Flaschenhals ist vielmehr die lokale Matrix-Vektormultiplikation. Grund für die langsame Geschwindigkeit der 7-Stern-Operation (7-pt-Stencil) ist, daß der Compiler der CM-2 die Parallelität der Operation nicht optimal ausnützt und den Datenaustausch mit den Nachbarn sequentiell durchführt. Die optimierte Stencil-Routine in der Tabelle 6.5 besitzt diese Einschränkung nicht und beruht auf der optimalen Ausnützung aller in der CM-2 zur Verfügung stehenden Kommunikationswege (,,wires``). Die Stencil-Routine ist ca. mal schneller.

  
Tabelle 6.6: Test der RS-CG- and RS-CGS-Verfahren auf der CM-2. Lösung der Laplacegleichung auf dem Einheitswürfel in doppelter Genauigkeit. Auf der Abszisse sind die Anzahl der Prozessoren aufgetragen, auf der Ordinate die Dimensionen der Tensor-Produkt-Gitter. Werte in .

Neben arithmetischen Grundoperationen (BLAS - Basic Linear Algebra Subprograms) wurden auch die linearen Gleichungslöser, die in der CM-2-Version von MINIMOS verwendet werden, getestet. Als Testproblem dient die Laplacegleichung im Einheitswürfel mit gemischten Dirichlet-Neumann-Randbedingungen, als Zahlenformat das Punkt-Format (pointwise format) mit doppelter Genauigkeit. Drei Gitterkonfigurationen (, , ) und drei Prozessor-Allokationen (k, k k) wurden gemessen. Die Resultate findet man in Tabelle 6.6. Für das -Gitter und k Prozessoren errechnet sich eine Megaflop-Rate von für das RS-CGS-Verfahren, das einschließlich des Abbruchkriteriums arithmetische Operationen pro Iteration benötigt. Ähnliche Werte erhält man für das RS-CG-Verfahren. In erster Linie sind die -Megaflops des -Punkt-Sterns (siehe Tabelle 6.4) für diese enttäuschend langsame Rechengeschwindigkeit verantwortlich. Es ist deutlich zu sehen, daß im Fall von VPR= (das -Gitter) die Rechenleistung nicht mit der Prozessorzahl skaliert.
Zur Illustration der tatsächlichen Leistungsfähigkeit des Programms MINIMOS auf der CM-2 wurden die Beispiele MOSFET-1 und MOSFET-2 (siehe Abschnitt 5.4 im Kapitel 5) simuliert. Resultate mit Iterationszahlen und Rechenzeiten für die Poissongleichung (I-PO, T-PO), Elektronenstrom-Kontinuitätsgleichung (I-EL, T-EL) und Löcherstrom-Kontinuitätsgleichung (I-HO,T-HO) für beiden Beispiele finden sich in den Tabellen 6.7 (MOSFET-1) und 6.8 (MOSFET-2).

  
Tabelle 6.7: Gummel-Algorithmus. Zeitmessung und Iterationszahlen von MOSFET-1.

Beide Simulationen wurden mit 16k allozierten Prozessoren und mit doppelter Genauigkeit vorgenommen. Die Zeitmessungen besorgte eine Timing-Routine der CM-2, die die CM-busy-time mißt und eine Genauigkeit von einer Mikrosekunde besitzt.
Die Gitterkonfiguration von MOSFET-1 ist . Die CM-2 hat daher ein VPR von eins.

  
Tabelle 6.8: Gummel-Algorithmus. Zeitmessung und Iterationszahlen von MOSFET-2.

Die Kontinuitätsgleichung der Elektronen benötigt die meiste CPU-Zeit (%). Verglichen mit dem ICCG(0) und dem ILU-CGS-Gleichungslöser der seriellen Implementation benötigt die parallele Implementation

3 mal mehr Iterationen für die Poissongleichung.
13 mal mehr Iterationen für die Elektronenstrom-Kontinuitätsgleichung.
4 mal mehr Iterationen für die Löcherstrom-Kontinuitätsgleichung.

Eine Cray-2 mit einer vektorisierten ICCG- und ILU-CGS-Implementation durch die Hyperebenen-Methode schaffte das gleiche Beispiel ca. viermal so schnell. Dieses ungünstige Resultat wird nicht zuletzt durch die geringe Gitterpunktanzahl verursacht. Nicht viel günstiger sind die Resultate von MOSFET-2. Dieser Simulation benötigt ein Rechengitter von . Die CM-2 ist ca. mal langsamer als die Cray-2, und mehr als mal langsamer als der Fujitsu VP200 Supercomputer.



next up previous contents
Next: 6.3 Diskussion mit Schlußfolgerungen Up: 6 Vektor- und Parallelrechner-Implementationen Previous: 6.1 Vektorisierung



Martin Stiftinger
Fri Oct 14 21:33:54 MET 1994