Grundlagen der Rechnerarchitektur

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 1 >

Von Neumann Architecture

Address CPU Program Control Unit RAM I/O Program + Data Arithmetic-Logic Unit

Data bus

1947: John von Neumann developed a program controlled universal computer engine

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 2 >

1 The von Neumann Computer

Simple Operation

c = a + b

1. Get first instruction 2. Decode: Fetch a 3. Fetch a to internal register 4. Get next instruction 5. Decode: fetch b 6. Fetch b to internal register 7. Get next instruction 8. Decode: add a and b (c in register) 9. Do the addition in ALU 10.Get next instruction 11.Decode: store c in main memory Execution is strong sequential 12.Move c from internal register to main memory

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 3 >

Nach wie vor eingesetzte Architektur

Daten-Bus Adress-Bus Prozessor Kontroll-Bus (CPU)

Controller Controller Hauptspeicher

Gerät Gerät Gerät

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 4 >

2 Prozessor Steuerwerk • Grundelemente eines Prozessors sind – Rechenwerk: führt die arithmetischen und Befehlsdekodierung und Ablaufsteuerung die logischen Operationen aus – Steuerwerk: stellt Daten für das PC, Befehlsregister, Rechenwerk zur Verfügung, d.h. holt die Zustandsregister Befehle aus dem Speicher, koordiniert den internen Ablauf Rechenwerk

– Register: Speicher mit Informationen über arithmetische/arithmetische/ die aktuelle Programmbearbeitung, z.B. logischelogische EinheitEinheit • Rechenregister, Indexregister GleitkommaeinheitGleitkommaeinheit • Stapelzeiger (stack pointer) Register R -R • Basisregister (base pointer) 1 n • Befehlszähler (program counter, PC) Prozessorkern • Unterbrechungsregister,… CPU CPU • Moderne Prozessoren bestehen aus … Prozessorkernen und Caches L1-$ L1-$ • Jeder Prozessorkern hat mehrere Rechenwerke (Funktionseinheiten) L2-$ Prozessor J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 5 >

Hauptspeicher

• Hauptspeicher (Arbeitsspeicher): – flüchtige Speicherung der aktiven Programme und der dazugehörigen Daten 0 • typische Größe derzeit bei PCs 1 2 – 4 GByte bis 64 GByte 3 • Organisation des Speichers – Folge aus Bytes, auf die einzeln lesend oder schreibend zugegriffen werden kann (Random . Access Memory, RAM) . – theoretische Größe des Speichers wird durch . die Breite des Adressbusses festgelegt • Virtualisierung des Speichers – einheitliche logische Adressräume max – effizienter Nutzung des physischen Speichers

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 6 >

3 Daten-Cache

Adresse Adresse Haupt- Prozessor Cache speicher Daten Daten

Adress- Tag* Block-Offset: 00000 00010 … Index: 00001 00011 11111 000 10010 Byte Byte Byte Byte … Byte Cache-Line Die Geschwindigkeit des … Hauptspeichers ist zu gering 001 1100 010 11010110 für die Rechenleistung der Adresse: 011 Prozessoren 1001000000011 100 101  Einsatz von Cache-Speichern 110 notwendig Datenblock 111 …

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 7 >

Assoziativität eines Caches

Direct-mapped Cache 2-Way Set-Associative Cache

Tag Index Block-Offset Tag Index Block-Offset / / / t / / / b t k k b V Tag Datenblock V Tag Datenblock V Tag Datenblock

2k Lines / t / t = = =

HIT Datenwort oder -Byte HIT Datenwort oder -Byte

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 8 >

4 Cache-Aufbau und Charakteristika

• Cache-Lines (Blockgröße z.B. 64 Bytes) • Caches deutlich kleiner als Hauptspeicher  mapping von HS-Blöcken notwendig – direct mapped  jeder Block wird auf festen Bereich abgebildet – fully associate  Block kann überall im Cache abgelegt werden – m-way set associative: • Block kann beliebig in einer Menge von m Cache-Lines abgelegt werden • Replacement: zufällig oder LRU • verallgemeinert die beiden anderen Prinzipien

• Weitere Charakteristika: – Latenzzeit – Bandbreite – Kapazität des Caches

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 9 >

Cache-Miss-Typen

• Compulsory-Miss: – auch cold-start-miss genannt – erster Zugriff auf Block führt zu einem Cache-Miss • Capacity-Miss: – Cache nicht groß genug für alle benötigten Blöcke – Cache-Miss ist aufgetreten, obwohl der Block schon einmal im Cache war und verdrängt wurde • Conflict-Miss: – Adresskollision – auch collision-miss oder interferences-miss genannt – „Capacity-Miss“ der durch eine zu geringe Assoziativität des Caches oder zu große Blöcke begründet ist – „Ping-Pong“ Effekt möglich

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 10 >

5 Compulsory-Misses

•Problem: – Noch nicht genutzte Daten sind typischerweise nicht im Cache – Folge: erster Zugriff auf Daten potentiell sehr teuer • Optimierung: – größere Cache-Lines (räumliche Lokalität nutzen) • erhöht Latenzzeit bei Cache-Miss • bei gleichbleibender Kapazität, kann dies Anzahl der Conflict-Misses erhöhen –Prefetching • Datenwort laden bevor es tatsächlich benötigt wird • Überlappung von Berechnungen und Ladeoperationen • nur sinnvoll bei nicht-blockierenden Caches •Varianten – nächstes Datenwort laden (unit stride access) – wiederkehrende Zugriffsmuster erkennen und laden (stream prefetch) – Zeigerstrukturen laden

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 11 >

Strategien beim Design

• Latenzzeit bei Hit und Miss reduzieren – Speicherzugriffe überlappend ausführen (Pipelining) – Multi-Level-Cache – diverse andere Hardwaretechniken (s. Hennessy „Computer Architecture“

• Cache-Trefferrate erhöhen – Datenzugriffstransformationen – Daten-Layout-Transformationen – Spezielle Hardware-Techniken

• Latenzzeit verdecken – Out-of-Order Execution – Expensives Multithreading

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 12 >

6 Speicherhierarchien

• Memory Wall Der Unterschied zwischen Prozessor- und Speichergeschwindigkeit wird immer größer

• Leistungsfähigere Speicherhierarchien notwendig – Größere Speicherkapazitäten • kleinere Fertigungsstrukturen nutzbar – Höhere Frequenzen • Steigerung beschränkt durch die „Physik“ – Breitere Datenpfade • beschränkt durch Parallelität in der Anwendung – Mehr Speicherebenen • Potentiell auf mehreren Ebenen nacheinander folgende Misses

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 13 >

Beispiel: Highend Server IBM Power E870

• Modell: IBM Power E870

• 4 bis 8 Power8 Prozessormodule (je 8-10 Kerne) – max. 64 Prozessorkerne 4.0 GHz – max. 80 Prozessorkerne 4.2 GHz

• Shared-memory, NUMA-Architektur – max. 4 TByte DDR3-1600

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 14 >

7 Beispiel: Highend Server IBM Power E880

• Modell: IBM Power E880

• 4 bis 16 Power8 Prozessormodule (je 8-12 Kerne) – max. 128 Prozessorkerne 4.3 GHz – max. 192 Prozessorkerne 4.0 GHz

• Shared-memory, NUMA-Architektur – max. 4 TByte DDR3-1600

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 15 >

IBM Power8 • Chip with 12 cores • Core clock rate 2.5 – 5.0 GHz • Massive multithreaded chip with 96 hw- threads •Each core with – 64 kB L1 D-cache – 32 kB L1 I-cache Power8 Core – 512 kB SRAM L2-cache • 96 MB eDRAM shared L3-cache – 8 MB per core • Up to 128 MB eDRAM off-chip L4-cache • On-chip memory controller – Ca. 1 TByte memory – ~ 230 GByte/s • 4.2 billion transistors, 22nm • Available 5/2014 Power8 Chip

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 16 >

8 Power8 Caches

• L2: 512 kB 8 way per core • L3: 96 MB (12 x 8MByte 8 way bank) • “NUCA” cache policy (Non-Uniform Cache Architecture) – Scalable bandwidth and latency – Migrate “Hot” lines to local L2, then local L3 (replicate L2 contained footprint) • Chip Inteconnect: 150 GB/s x 12 segments per direction = 3.6 TB/s

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 17 >

POWER8 Memory Buffer Chip

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 18 >

9 POWER8 Memory Organization

• Up to 8 high speed channels, each running up to 9.6 GB/s (230 GB/s sustained) • Up to 32 total DDR ports (410 GB/s peak at the DRAM) • Up to 1 Tbyte memory capacity

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 19 >

IBM POWER8

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 20 >

10 IBM Power Supercomputer

Quelle: IBM

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 21 >

Interconnection Network

• HUB/Switch (one per SMP node) – 192 GB/s to host node – 336 GB/s to 7 other nodes in same drawe – 240 GB/s to 24 nodes in other 3 drawers in same SuperNode – 320 GB/s to hubs in other SuperNodes

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 22 >

11 Speicherhierarchie: Beispiel IBM Power E870 (Power8)

CPU Kapazität Bandbreite Latenz Register 256 Byte 120 GByte/s 0.2 ns 1. Level Cache 64 kByte 75 GByte/s 1 ns 2. Level Cache 512 kByte 150 GByte/s 4 ns 3. Level Cache1 80 MByte 150 GByte/s < 30 ns Buffer Cache2 128 Mbyte ? ?

Lokal Main Memory2 1024 GByte 230 GByte/s < 90 ns

Remote Main Memory3 8192 GByte 230 GByte/s < 1 µs Swap Space on SSD > X * 500 GByte/s < 1 ms Swap Space on Harddisk >> X * 200 MByte/s ~5 ms

1 8MB per Core x 10 2 shared by 10 Cores 2 shared by 80 Cores

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 23 >

OpenPOWER

Compared to IBM products • Broader Market • Bigger Ecosystem • Platform for innovation • Main focus on Linux

•Tyan – TN71-BP012 – One Power8 processor – 32 DIMMs ECC DDR3-1600

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 24 >

12 Beispiel: Intel E5-2600v3 „Haswell“

• max. 18 cores per processor, – max. 3.2 GHz (turbo 3.8GHz) • 22 nm, 2.6 – 5.7 billion transistors • 256 bit AVX SIMD units •per core – 32 kByte L1-D-Cache, 8-way – 256 kByte L2-Cache, 8-way – 64 Byte Cache-Lines • 20 - 45 MByte L3-Cache • Memory controller – 4 memory channels, DDR4-2133 • MESIF cache coherence protocol • Quick Path Interconnect (QPI) – Bidirektionaler Link – 20 Bits, 8 GT/s, 20 GByte/s •PCIe3.0 on-chip

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 25 >

Haswell EP Configurations

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 26 >

13 Memory Hierarchy Intel Xeon E5

Memory Memory access access bandwidth latency

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 27 >

Beispiel: AMD Opteron 6200

• AMD „Bulldozer“, bis zu 8 Module •Je Module – ein FP-Core und zwei Integer-Cores – Lokale L1-, L2-D-Caches (16/2048 kB) • Shared L3-Cache (2 x 8 MByte) • Hypertransport 3.0 (4.8 GT/s) • MOESI Cache-Koherenzprotokoll • Multi-Chip-Modul

• max. 2.7 GHz Kernfrequenz (max. 3.4 GHz Turbo) • 128 bit SSE-Einheiten • DDR3 Speicherkontroller, DDR3-1600 • 32 nm, 1,8 Mrd. Transistoren • max. 140 Watt ACP, Sockel G34

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 28 >

14 TILE-Gx 3000

• 100 cores, 64bit, 1.5 GHz, 40 nm • coherent 32 MB L3 cache • 4 DDR3 channels • 48 Watt processor 32 kB L1 cache 256 kB L2 cache

router

Source: www.tilera.com

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 29 >

nVidia Maxwell GPU

GPU GM107 Max. number of shader-processors 640 Clock rate 1.020 MHz Boost clock rate 1.085 MHz GFLOPs 1305,6 CUDA interface 5.0 Shared Memory / SM 64 kB Register File Size 256 kB Active Blocks / SM 32 Textur units 40 Texel fill rate 40,8 GTexel/Sek. Memory clock rate 1.350 MHz Memory bandwidth 86,4 GByte/s ROPs 16 L2-Cache size 2 MB Number of transistors 1.87 billion Chip size 148 mm2 Fabrication 28 nm TDP 60 Watt

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 30 >

15 nVIDIA „PASCAL“

• Next generation GPU • 3D „stacked“ memory – ~16 GByte • Some modules also with new NVLink – ~80 GByte/s bandwidth – PCIe Gen3 < 16 GByte/s • Planed for 2016

PCIe switch

mem

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 31 >

nVidia Tesla Products

GP100 • 60 SMs (56 enabled) • 64 CUDA-cores per SM • Total 3,584 cores • 16 GByte HBM2 • 720 GByte/s bw • half precision FP ~ 21TFLOPS HP • GA 1Q2017

Source: nVIDIA 4/2016 J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 32 >

16 Accelerators become part of the Processor

• Floating-Point Unit – 1978: Intel 8086 + Intel 8087 Math-Co processor (16 Bit) – 1989: Intel i486 with integrated floating-point units (32 bit)

•Vector Unit – 1993: CM5 with Sparc processor + Vector Unit Accelerators (MBUS) – 1995: Intel Pentium P55C with MMX instructions – 1996: Motorola PowerPC with AltiVec

• Stream Processing – 2006: Workstation + GPU graphic card (PCI) – 2011: Intel HD Graphics 3000 with integrated GPU (OpenCL)

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 33 >

Leistungsentwicklung eines Prozessorkerns

52% /year

25% /year

• Von 1986 bis 2002 ca. 50% Leistungszuwachs pro Jahr • Derzeit Einzelprozessorleistung langsamer zunehmend • Höherer Leistungszuwachs nur noch über Erhöhung der Anzahl an Prozessor(kerne) möglich

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 34 >

17 Hauptspeichergeschwindigkeit 25% p.a

Geschwindigkeit pro Speichermodul.

Leistungsunterschied zwischen CPU und RAM wird weiter wachsen (52% p.a vs 25% p.a) Quelle: Rambus Inc.

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 35 >

Memory Bandwidth/Latency

Generation Type Peak Bandwidth Latency (1st word) SDRAM (1990s) PC-100 0.8 Gbyte/s 20 ns DDR (2000) DDR-200 1.6 Gbyte/s 20 ns DDR DDR-400 3.2 Gbyte/s 15 ns DDR2 (2003) DDR2-667 5.3 Gbyte/s 15 ns DDR2 DDR2-800 6.4 Gbyte/s 15 ns DDR3 (2007) DDR3-1066 8.5 Gbyte/s 13 ns DDR3 DDR3-1600 12.8 Gbyte/s 11.25 ns DDR4 (2014) DDR4-2133 17 Gbyte/s ? DDR4 DDR4-2666 21 Gbyte/s ?

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 36 >

18 DDR4-SDRAM

Quelle: iSuppli, Juni 2011.

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 37 >

Trends • „Power Wall“ – Energieaufnahme / Kühlung – Lösungen • geringere Taktfrequenzen • mehr Ausführungseinheiten • „Memory Wall“ – Speicherbandbreite u. Latenz – Lösungen • bessere Speicherhierarchien u. Anbindung an CPUs • Latency-Hidding • „ILP Wall“ – Beschränkte Parallelität im sequentiellen Instruktionsstrom – Lösungen • mehr Parallelität in Programmen erkennen (Compiler) • mehr explizite Parallelität in Programmen (Programmiersprachen)

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 38 >

19 Teil 3: Architekturen paralleler Rechnersysteme

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 39 >

Einfache Definition Parallelrechner

George S. Almasi, IBM Thomas J. Watson Research Center Allan Gottlieb, New York University, 1989

„ A parallel computer is a collection of processing elements that communicate and cooperate to solve large problems fast.”

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 40 >

20 Rechnerarchitektur

Eine Rechnerarchitektur ist bestimmt durch ein Operationsprinzip für die Hardware und die Struktur ihres Aufbaus aus den einzelnen Hardware-Betriebsmitteln (Giloi 1993)

Operationsprinzip Das Operationsprinzip definiert das funktionelle Verhalten der Architektur durch Festlegung einer Informationsstruktur und einer Kontrollstruktur.

Hardware-Struktur Die Struktur einer Rechnerarchitektur ist gegeben durch Art und Anzahl der Hardware-Betriebsmittel und deren verbindenden Kommunikationseinrichtungen.

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 41 >

... in anderen Worten

Operationsprinzip Aufbau

• Vorschrift über das • Einzelkomponenten Zusammenspiel der • Struktur der Verknüpfung der Komponenten Komponenten

• Grundlegende Strukturbausteine sind – Prozessor (CPU), als aktive Komponente zur Ausführung von Programmen, – Hauptspeicher (ggf. hierarchisch strukturiert, …), – Übertragungsmedium zur Verbindung der einzelnen Architekturkomponenten, – Steuereinheiten für Anschluss und Kontrolle von Peripherie- geräten und – Geräte, als Zusatzkomponenten für Ein- und Ausgabe von Daten sowie Datenspeicherung.

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 42 >

21 Parallelrechner

• Operationsprinzip: – gleichzeitige Ausführung von Befehlen – sequentielle Verarbeitung in bestimmbaren Bereichen • Arten des Parallelismus: – Explizit: Die Möglichkeit der Parallelverarbeitung wird a priori festgelegt. Hierzu sind geeignete Datentypen bzw. Datenstrukturen erforderlich, z.B. Vektoren (lineare Felder) samt Vektoroperationen. – Implizit: Die Möglichkeit der Parallelverarbeitung ist nicht a priori bekannt. Durch eine Datenabhängigkeitsanalyse werden die parallelen und sequentiellen Teilschritte des Algorithmus zur Laufzeit ermittelt.

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 43 >

Strukturelemente von Parallelrechnern

• Parallelrechner besteht aus einer Menge von Verarbeitungselementen, die in einer koordinierten Weise, teilweise zeitgleich, zusammenarbeiten, um eine Aufgabe zu lösen • Verarbeitungselemente können sein: – spezialisierte Einheiten, wie z.B. die Pipeline-Stufen eines Skalarprozessors oder die Vektor-Pipelines der Vektoreinheit eines Vektorrechners – gleichartige Rechenwerke, wie z.B. die Verarbeitungselemente eines Feldrechners – Prozessorknoten eines Multiprozessorsystems – vollständige Rechner, wie z.B. Workstations oder PCs eines Clusters – selbst wieder ganze Parallelrechner oder Cluster

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 44 >

22 Grenzbereiche von Parallelrechnern

• eingebettete Systeme als spezialisierte Parallelrechner • Superskalar-Prozessoren, die feinkörnige Parallelität durch Befehls-Pipelining und Superskalar-Technik nutzen • Mikroprozessoren arbeiten als Hauptprozessor teilweise gleichzeitig zu einer Vielzahl von spezialisierten Einheiten wie der Bussteuerung, DMA-,Graphikeinheit, usw. • Ein-Chip-Multiprozessor • mehrfädige (multithreaded) Prozessoren führen mehrere Kontrollfäden überlappt oder simultan innerhalb eines Prozessors aus • VLIW- (Very Long Instruction Word)- Prozessor

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 45 >

Klassifikation von Parallelrechnern

• Klassifikation nach Flynn, d.h. Klassifikation nach der Art der Befehlsausführung

• Klassifikation nach der Speicherorganisation und dem Adressraum

• Konfigurationen des Verbindungsnetzwerks

• Varianten an speichergekoppelte Multiprozessorsysteme

• Varianten an nachrichtengekoppelte Multiprozessorsysteme

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 46 >

23 Klassifikation nach Flynn Zweidimensionale Klassifizierung mit Kriterium Anzahl der Befehls- und Datenströme – Rechner bearbeitet zu einem Zeitpunkt einen oder mehrere Befehle – Rechner bearbeitet zu einem Zeitpunkt einen oder mehrere Datenwerte

 Damit vier Klassen von Rechnerarchitekturen – SISD: Single Instruction, Single Data Ein Befehl verarbeitet einen Datensatz. (herkömmliche Rechnerarchitektur eines seriellen Rechners) – SIMD: Single Instruction, Multiple Data Ein Befehl verarbeitet mehrere Datensätze, z.B. N Prozessoren führen zu einem Zeitpunkt den gleichen Befehl aber mit unterschiedlichen Daten aus. – MISD: Multiple Instruction, Single Data Mehrere Befehle verarbeiten den gleichen Datensatz. (Diese Rechnerarchitektur ist nie realisiert worden.) – MIMD: Multiple Instruction, Multiple Data Unterschiedliche Befehle verarbeiten unterschiedliche Datensätze. (Dies ist das Konzept fast aller modernen Parallelrechner.)

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 47 >

SISD Architektur • Klassische Struktur eines seriellen Rechners: Nacheinander werden verschiedene Befehle ausgeführt, die z.B. einzelne Datenpaare verknüpfen

A(2) B(2)

Verarbeitungs- Einheit

A(1) + B(1)

• Moderne RISC (Reduced Instruction Set Computer) Prozessoren verwenden Pipelining: – Mehrere Funktionseinheiten, die gleichzeitig aktiv sind. – Operationen sind in Teiloperationen unterteilt. – In jedem Takt kann eine Funktionseinheit (z.B. Addititionseinheit) eine neue Operation beginnen. – D.h. hohe interne Parallelität nutzbar

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 48 >

24 SIMD Architektur (Prozessorarray)

• Mehrere Prozessoren führen zu einem Zeitpunkt den gleichen Befehl aus • Rechner für Spezialanwendungen (z.B. Bildverarbeitung, Spracherkennung) • I.A. sehr viele Prozessorkerne (tausende Kerne in einem System ) • Beispiele: Graphikprozessoren, Numerische Coprozessoren

… … … …

X[1]-Y[1] X[2]-Y[2] X[3]-Y[3] X[4]-Y[4]

C[1]*D[1] C[2]*D[2] C[3]*D[3] C[4]*D[4]

A[1]+B[1] A[2]+B[2] A[3]+B[3] A[4]+B[4]

Prozessor 1 Prozessor 2 Prozessor 3 Prozessor 4

• Mittlerweile auch innerhalb einzelner Funktionseinheiten zu finden

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 49 >

MIMD Architektur

Mehrere Prozessoren führen unabhängig voneinander unterschiedliche Instruktionen auf unterschiedlichen Daten aus:

… … … …

… … do i = 1,n … … call sub a(i)=b(i) t = 1/x z=a(i) x=y end do call sub1 x=a(1)/t … T = sin(r) n=100 b=0.d0 … … …

Prozessor 1 Prozessor 2 Prozessor 3 Prozessor 4

• Fast alle aktuellen Systeme entsprechen dieser Architektur.

J. Simon - Architecture of Parallel Computer Systems SoSe 2017 < 50 >

25