Beispiel: Cray-1 (1976)

\begin{matrix}mehrere parallel arbeitende Piplines, \\ viele Register, \\ Taktzeit ∼ 12.5 ns \end{matrix} \} peak Leistung: 250 MFlops

Abbildung 1.15: Rechnerstruktur eines Cray-1-Rechners

[figure: Memory; Instruc-; tion; Buffers; B-Re-; gister; Address; Register; T-Re-; gister; Scalar; Register; Vector; Register; Instruction; Control; Address; Pipelines; Scalar; Pipelines; Floating-; point; Pipelines; Vector; Pipelines; 1000 Stück]

Chaining von Pipelines

\begin{matrix}Vector Pipelines & − & Additionen \\ & − & Verschieben \\ & − & logische Operationen \end{matrix} \} von Ganzzahlvektoren

\begin{matrix}Floatingpoint Pipelines & − & Additionen \\ & − & Multiplikationen \\ & − & Divisionen \end{matrix} \} von Gleitkommazahlvektoren
Address Pipelines − Adreß-Multiplikationen
− Adreß-Additionen

Abbildung 1.16: Die Register und Funktionseinheiten einer Cray-1

[figure: MUL; Address; units; ADD; A; 8; 24-Bit; address; registers; B; 64; 24-Bit; holding; registers; for; addresses; Scalar; integer; units; POP.COUNT; SHIFT; BOOLEAN; ADD; S; 8; 64-Bit; scalar; registers; T; 64; 64-Bit; holding; registers; for; scalars; RECIP.; MUL; ADD; Scalar/vector; floating-point; units; SHIFT; BOOLEAN; ADD; 8 64-Bit; vector registers; 64 Elements; per register]

Weitere Geschwindigkeitssteigerungen^{1} sind erreichbar durch

ein speichergekoppeltes Multiprozessorsystem, das mehrere Zentraleinheiten (MIMD = ”multiple instruction multiple data“) oder nur mehrere ALU’s (SIMD = ”single instruction multiple data“) enthalten kann.

1Selbst heutige PC-CPUs enthalten parallel benutzbare Funktionseinheiten (ein oder mehrere Integer-Units, ein oder mehrere FP-Units, …), die häufig im Sinne einer Pipeline arbeiten (z.B. beim Pentium: zwei 32 Bit-Integer-Pipelines und eine FP-Pipeline). Naturgemäß sind Programme aus wenigen einfachen Befehlen viel besser parallel zu ”dispatchen“ (zur parallelen Abarbeitung vorzubereiten und ”in Marsch zu setzen“), weshalb das CISC-RISC-Translatorprinzip des PentiumPro zwar genaugenommen einer Microcode-CPU entspricht, aber das Design des ”Microcodes“ als RISC-Code bessere Parallelisierbarkeit und deshalb schnellere CPUs ermöglicht (PentiumPro: dreiweg Superskalarausführung, ”speculative execution“, ”branch prediction“, 14-stufige Superpipeline).

1.4.3 SIMD- und MIMD-Parallelrechner

Abbildung 1.17: CRAY-2 (Juni 1985)

[figure: Foreground-Processor; Front-End; Interface; Disk; Controller; …; Disk; Controller; CPU; Common; Memory Port; Front-End; Interface; Disk; Controller; …; Disk; Controller; CPU; Common; Memory Port; Front-End; Interface; Disk; Controller; …; Disk; Controller; CPU; Common; Memory Port; Front-End; Interface; Disk; Controller; …; Disk; Controller; CPU; Common; Memory Port; Common Memory; 256 MWorte]

Rechnerstruktur eines Cray-2-Rechners 6… 12× schneller als Cray-1 Cray-3 16 CPU’s mit 2ns Taktzeit Cray-4 64 CPU’s mit 1ns Taktzeit ∼ 128 GFLOPS (∼ 1000× Cray-1) Cray T90 ^{2} 32 CPU’s mit je 2 Vektorpipelines ∼60 GFLOPS

Cray Origin 2000  2048 CPU’s  ∼2.5 TFLOPS
Cray T3E-1200 ^{3}  2048 CPU’s  ∼2.5 TFLOPS

2Vgl. auch http://www.cray.com/hpc/

3Vgl. auch http://www.cray.com/products/systems/crayt3e/1200/

Abbildung 1.18: NEC-SX2 SIMD, mehrere Pipelines

[figure: Memory; Unit; Memory; Extended; I/O-Processor; Control-Processor; Cache; Instruc-; tion; Buffer; Scalar; Register; Instruction; Control; Scalar; Pipelines; Scalar Unit; Vector; Register; Vector; Pipeline; Set 3; V_{3}; Vector; Pipeline; Set 2; V_{2}; Vector; Pipeline; Set 1; V_{1}; Vector; Pipeline; Set 0; V_{0}; Vector; Mask; Registers; Mask; Operation; Vector Unit; Zykluszeit: 6ns; Shift; logisch; +, −; ∗, /]

Überlappende Abarbeitung der Vector-Pipeline-Sets:

V_{0} 1,5,9,…
V_{1} 2,6,10,…
V_{2} 3,7,11,…
V_{3} 4,8,12,…

nichtsichtbar, automatisch Start-Up-Zeit: 60ns

NEC SX-3/11 mit:

• 256MB Hauptspeicher

• 1GB Erweiterungsspeicher (max. 2GB)

• 20GB Platte

• IBM 3084Q als ”front end“ Rechner

• 2.9 ns Zykluszeit

• skalar: 170 MFlops peak, vektoriell: 4× 345MFlops = 1.386GFlops pro Vektorpipeline

SX-3/44 mit:

4 Pipelines pro CPU → 5.5 GFlops/CPU 4 CPU’s in Modell 44 → 22 GFlops

NEC SX-4 mit: ^{4}

• 512 CPUs mit je 8 Pipelines → 1 TFlops^{5} Kritisch bei High-Performance Rechnern ist auch heute noch, das I/O-Subsystem mit einer geeignet hohen Durchsatzrate an die CPUs zu koppeln:

4Vgl. http://www.nec.com 5Vgl. http://wombat.doc.ic.ac.uk/foldoc/foldoc.cgi?prefix

Abbildung 1.19: Systemarchitektur und Datendurchsatz

[figure: extended; memory; 1 GB; ≤ 2.75 GB/s; 256 MB; main; memory; ≤ 96 MB/s; !!!; I/O-Processor; for each disk (channel); 4.5 MB/s; Vektor-Register; 8.3 GB/s; 36 kB; Cache; 64 kB; Scalar-Register; 128 × 8 B = 1024 B = 1 KB]

Einen Überblick zu den jeweils aktuell leistungsstärksten Supercomputern bietet:

       http://top500.rz.uni-mannheim.de/

1.4.4 Mehrprozessorsysteme

[figure: Speicher; CPU; Rechenwerk; Steuerwerk]

Welche der Systemeinheiten wird vervielfältigt? • ALU

• ALU und Steuerwerk

• ALU, Steuerwerk und Speicher

Tabelle 1.11: Klassifikation von Mehrprozessorsystemen

CPU’s  Memory Beispiel
Steuerwerke Rechenwerke
von Neumann  1  1  ”alte“ PCs
Vektorrechner  1  N  1  Cray-1
Multiprozessor-  M  1  Cray-2
Vektorrechner  (mit je N Rechenwerken)

Bemerkung: Rechenwerke oder Pipelines