grundlagen der rechnerarchitektur - universität paderborn · 2 architecture of parallel computer...
TRANSCRIPT
1
Architecture of Parallel Computer Systems WS15/16 J.Simon 1
Grundlagen der Rechnerarchitektur
Architecture of Parallel Computer Systems WS15/16 J.Simon 2
Von Neumann Architecture
1947: John von Neumann developed a program controlled universal
computer engine
I/O
Address bus
Data bus
Program + Data
RAM
CPU
Arithmetic-Logic
Unit
Program Control
Unit
Control bus
2
Architecture of Parallel Computer Systems WS15/16 J.Simon 3
The von Neumann Computer
Simple Operation
c = a + b
1. Get first instruction2. Decode: Fetch a3. Fetch a to internal register4. Get next instruction5. Decode: fetch b6. Fetch b to internal register7. Get next instruction8. Decode: add a and b (c in register)9. Do the addition in ALU10.Get next instruction11.Decode: store c in main memory12.Move c from internal register to main memory Execution is strong sequential
Architecture of Parallel Computer Systems WS15/16 J.Simon 4
Nach wie vor eingesetzte Architektur
Prozessor(CPU)
Hauptspeicher Controller Controller
GerätGerät Gerät
Daten-BusAdress-BusKontroll-Bus
3
Architecture of Parallel Computer Systems WS15/16 J.Simon 5
Prozessor• Grundelemente eines Prozessors sind
– Rechenwerk: führt die arithmetischen und die logischen Operationen aus
– Steuerwerk: stellt Daten für das Rechenwerk zur Verfügung, d.h. holt die Befehle aus dem Speicher, koordiniert den internen Ablauf
– Register: Speicher mit Informationen über die aktuelle Programmbearbeitung, z.B.
• Rechenregister, Indexregister• Stapelzeiger (stack pointer)• Basisregister (base pointer)• Befehlszähler (program counter, PC)• Unterbrechungsregister,…
• Moderne Prozessoren bestehen aus Prozessorkernen und Caches
• Jeder Prozessorkern hat mehrere Rechenwerke (Funktionseinheiten)
Steuerwerk
Befehlsdekodierungund Ablaufsteuerung
PC, Befehlsregister,Zustandsregister
Rechenwerk
Gleitkommaeinheit
Register R1 - Rn
CPU CPU
L1-$ L1-$
L2-$
…
Prozessorkern
Prozessor
arithmetische/logische Einheitarithmetische/logische Einheit
Gleitkommaeinheit
Architecture of Parallel Computer Systems WS15/16 J.Simon 6
Hauptspeicher
• Hauptspeicher (Arbeitsspeicher):– flüchtige Speicherung der aktiven Programme und
der dazugehörigen Daten• typische Größe derzeit bei PCs
– 4 GByte bis 64 GByte• 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– effizienter Nutzung des physischen Speichers
0123
.
.
.
max
4
Architecture of Parallel Computer Systems WS15/16 J.Simon 7
Daten-CacheDie Geschwindigkeit des Hauptspeichers ist zu gering für die Rechenleistung der Prozessoren
Einsatz von Cache-Speichern notwendig
Block-Offset:00000 00010 …
00001 00011 11111
Prozessor CacheHaupt-speicher
Adresse
DatenDaten
Adresse
Adress-Tag*
Datenblock
Cache-LineByte ……
…
Byte Byte Byte Byte10010
1100
11010110
Index:
000
001
010
011
100
101
110
111
1001000000011
Adresse:
Architecture of Parallel Computer Systems WS15/16 J.Simon 8
Assoziativität eines Caches
Direct-mapped Cache 2-Way Set-Associative Cache
V Tag Datenblock
Tag Index Block-Offset
HIT Datenwort oder -Byte
2k
Lines
/k
/t
=
/ t
/b V Tag Datenblock
Tag Index Block-Offset
HIT Datenwort oder -Byte
/k
/t
=
/ t
/b
V Tag Datenblock
=
5
Architecture of Parallel Computer Systems WS15/16 J.Simon 9
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
Architecture of Parallel Computer Systems WS15/16 J.Simon 10
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
6
Architecture of Parallel Computer Systems WS15/16 J.Simon 11
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• kann 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
Architecture of Parallel Computer Systems WS15/16 J.Simon 12
Strategien beim Design
• Latenzzeit bei Hit und Miss reduzieren– Multi-Level-Cache– Speicherzugriffe überlappend ausführen (Pipelining)– diverse andere Hardwaretechniken (s. „Computer
Architecture: A …“
• Cache-Trefferrate erhöhen– Hardware-Techniken– Datenzugriffstransformationen– Daten-Layout-Transformationen
• Latenzzeit verdecken– Out-of-Order Execution– Multithreading
7
Architecture of Parallel Computer Systems WS15/16 J.Simon 13
Speicherhierarchien
• Memory WallDer 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 nachfolgende Misses
Architecture of Parallel Computer Systems WS15/16 J.Simon 14
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
8
Architecture of Parallel Computer Systems WS15/16 J.Simon 15
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
Architecture of Parallel Computer Systems WS15/16 J.Simon 16
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– 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
Power8 Core
9
Architecture of Parallel Computer Systems WS15/16 J.Simon 17
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
Architecture of Parallel Computer Systems WS15/16 J.Simon 18
POWER8 Memory Buffer Chip
10
Architecture of Parallel Computer Systems WS15/16 J.Simon 19
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
Architecture of Parallel Computer Systems WS15/16 J.Simon 20
IBM POWER8
11
Architecture of Parallel Computer Systems WS15/16 J.Simon 21
IBM Power Supercomputer
Quelle: IBM
Architecture of Parallel Computer Systems WS15/16 J.Simon 22
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
12
Architecture of Parallel Computer Systems WS15/16 J.Simon 23
Speicherhierarchie: Beispiel IBM Power E870 (Power8)
1 8MB per Core x 102 shared by 10 Cores2 shared by 80 Cores
Swap Space on SSD > X * 500 GByte/s < 1 ms
Swap Space on Harddisk >> X * 200 MByte/s ~5 ms
Remote Main Memory3 8192 GByte 230 GByte/s < 1 µs
Lokal Main Memory2 1024 GByte 230 GByte/s < 90 ns
3. Level Cache1 80 MByte 150 GByte/s < 30 ns
2. Level Cache 512 kByte 150 GByte/s 4 ns
1. Level Cache 64 kByte 75 GByte/s 1 ns
Register 256 Byte 120 GByte/s 0.2 ns
CPU Kapazität Bandbreite Latenz
Buffer Cache2 128 Mbyte ? ?
Architecture of Parallel Computer Systems WS15/16 J.Simon 24
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
13
Architecture of Parallel Computer Systems WS15/16 J.Simon 25
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
• PCIe 3.0 on-chip
Architecture of Parallel Computer Systems WS15/16 J.Simon 26
Haswell EP Configurations
14
Architecture of Parallel Computer Systems WS15/16 J.Simon 27
Memory Hierarchy Intel Xeon E5
Memory accesslatency
Memory accessbandwidth
Architecture of Parallel Computer Systems WS15/16 J.Simon 28
TILE-Gx 3000• 100 cores, 64bit, 1.5 GHz, 40 nm• coherent 32 MB L3 cache• 4 DDR3 channels• 48 Watt
Source: www.tilera.com
processor32 kB L1 cache256 kB L2 cache
router
15
Architecture of Parallel Computer Systems WS15/16 J.Simon 29
nVidia Maxwell GPUGPU GM107Max. number of shader-processors 640
Clock rate 1.020 MHzBoost clock rate 1.085 MHzGFLOPs 1305,6CUDA interface 5.0Shared Memory / SM 64 kBRegister File Size 256 kBActive Blocks / SM 32Textur units 40
Texel fill rate 40,8 GTexel/Sek.
Memory clock rate 1.350 MHzMemory bandwidth 86,4 GByte/sROPs 16L2-Cache size 2 MBNumber of transistors 1.87 billionChip size 148 mm2
Fabrication 28 nmTDP 60 Watt
Architecture of Parallel Computer Systems WS15/16 J.Simon 30
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
16
Architecture of Parallel Computer Systems WS15/16 J.Simon 31
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)
Architecture of Parallel Computer Systems WS15/16 J.Simon 32
Leistungsentwicklung eines Prozessorkerns
• 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
52% /year
25% /year
17
Architecture of Parallel Computer Systems WS15/16 J.Simon 33
Hauptspeichergeschwindigkeit
Quelle: Rambus Inc.
Geschwindigkeit pro Speichermodul.
Leistungsunterschied zwischen CPU und RAM wird weiter wachsen (52% p.a vs 25% p.a)
25% p.a
Architecture of Parallel Computer Systems WS15/16 J.Simon 34
Memory Bandwidth/Latency
Generation Type Peak Bandwidth Latency(1st word)
SDRAM (1990s) PC-100 0.8 Gbyte/s 20 nsDDR (2000) DDR-200 1.6 Gbyte/s 20 nsDDR DDR-400 3.2 Gbyte/s 15 nsDDR2 (2003) DDR2-667 5.3 Gbyte/s 15 nsDDR2 DDR2-800 6.4 Gbyte/s 15 nsDDR3 (2007) DDR3-1066 8.5 Gbyte/s 13 nsDDR3 DDR3-1600 12.8 Gbyte/s 11.25 nsDDR4 (2014) DDR4-2133 17 Gbyte/s ?DDR4 DDR4-2666 21 Gbyte/s ?
18
Architecture of Parallel Computer Systems WS15/16 J.Simon 35
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)
Architecture of Parallel Computer Systems WS15/16 J.Simon 36
Teil 3:Architekturen paralleler
Rechnersysteme
19
Architecture of Parallel Computer Systems WS15/16 J.Simon 37
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.”
Architecture of Parallel Computer Systems WS15/16 J.Simon 38
Rechnerarchitektur
Eine Rechnerarchitektur ist bestimmt durch ein Operationsprinzip für die Hardware und die Struktur ihres Aufbaus aus den einzelnen Hardware-Betriebsmitteln
(Giloi 1993)
OperationsprinzipDas Operationsprinzip definiert das funktionelle Verhalten der Architektur durch Festlegung einer Informationsstruktur und einer Kontrollstruktur.
Hardware-StrukturDie Struktur einer Rechnerarchitektur ist gegeben durch Art und Anzahl der Hardware-Betriebsmittel und deren verbindenden Kommunikationseinrichtungen.
20
Architecture of Parallel Computer Systems WS15/16 J.Simon 39
... in anderen Worten
Operationsprinzip
• Vorschrift über das Zusammenspiel der Komponenten
Aufbau
• Einzelkomponenten• Struktur der Verknüpfung der
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.
Architecture of Parallel Computer Systems WS15/16 J.Simon 40
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.
21
Architecture of Parallel Computer Systems WS15/16 J.Simon 41
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
Architecture of Parallel Computer Systems WS15/16 J.Simon 42
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
22
Architecture of Parallel Computer Systems WS15/16 J.Simon 43
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
Architecture of Parallel Computer Systems WS15/16 J.Simon 44
Klassifikation nach FlynnZweidimensionale 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 DataEin 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 DataMehrere Befehle verarbeiten den gleichen Datensatz. (Diese Rechnerarchitektur ist nie realisiert worden.)
– MIMD: Multiple Instruction, Multiple DataUnterschiedliche Befehle verarbeiten unterschiedliche Datensätze. (Dies ist das Konzept fast aller modernen Parallelrechner.)
23
Architecture of Parallel Computer Systems WS15/16 J.Simon 45
SISD Architektur• Klassische Struktur eines seriellen Rechners:
Nacheinander werden verschiedene Befehle ausgeführt, die z.B. einzelne Datenpaare verknüpfen
Verarbeitungs-Einheit
A(1) + B(1)
A(2) B(2)
• 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
Architecture of Parallel Computer Systems WS15/16 J.Simon 46
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]
C[1]*D[1]
A[1]+B[1]
Prozessor 1
…
X[2]-Y[2]
C[2]*D[2]
A[2]+B[2]
Prozessor 2
…
X[3]-Y[3]
C[3]*D[3]
A[3]+B[3]
Prozessor 3
…
X[4]-Y[4]
C[4]*D[4]
A[4]+B[4]
Prozessor 4
…
• Mittlerweile auch innerhalb einzelner Funktionseinheiten zu finden
24
Architecture of Parallel Computer Systems WS15/16 J.Simon 47
MIMD Architektur
Mehrere Prozessoren führen unabhängig voneinander unterschiedliche Instruktionen auf unterschiedlichen Daten aus:
…call subx=y…
Prozessor 1
…
…do i = 1,na(i)=b(i)end doT = sin(r)…
Prozessor 2
…
…t = 1/xcall sub1n=100…
Prozessor 3
…
…z=a(i)x=a(1)/tb=0.d0…
Prozessor 4
…
• Fast alle aktuellen Systeme entsprechen dieser Architektur.
Architecture of Parallel Computer Systems WS15/16 J.Simon 48
Speicherorganisation und Adressraum
globaler Adressraumlokaler Adressraum
zent
rale
Spe
iche
rorg
anis
atio
nve
rtei
lteSpe
iche
rorg
anis
atio
n
Speicher ist allen CPUs direkt zugänglich;Programme laufen in unterschiedlichemAdressraum und kommunizieren über MessagePassing oder UNIX-Pipes (eher theoretisch,sonst nur bei Partitionierung des Adressraums)
Speicher ist allen CPUs direkt zugänglich beiKonstanter Latenzzeit (z.B. Cray Y-MP)
Zugriff auf anderen CPUs zugeordneteSpeicher nur über explizites Message Pasing;sehr hohe Latenzzeit (z.B. PC-Cluster)
Zugriff auf anderen CPUs zugeordneteSpeicher direkt möglich bei variablerLatenzzeit (z.B. Cray T3E)
Speicher
CPU
Verbindungsnetzwerk
Speicher
CPU
Speicher
CPU
…
…
Verbindungsnetzwerk
Speicher
CPU
Speicher
CPU
…
…
Speicher
CPU
Speicher
CPU CPU … CPU
Speicher
CPU CPU … CPU
25
Architecture of Parallel Computer Systems WS15/16 J.Simon 49
Konfiguration der Verbindungsnetzwerke
Prozessor Prozessor
Verbindungsnetz
gemeinsamer Speicher
Globaler Speicher räumlich verteilter Speicher
Ver
teilt
er A
dres
srau
mG
emei
nsam
er A
dres
srau
m
Leer
Prozessor Prozessor
Verbindungsnetz
lokalerSpeicher
lokalerSpeicher
SMP Symmetrischer Multiprozessor DSM Distributed-shared-memory-Multiprozessor
Prozessor Prozessor
Verbindungsnetz
lokalerSpeicher
lokalerSpeicher
send receive
Nachrichtengekoppelter (Shared-nothing-)Multiprozessor
Architecture of Parallel Computer Systems WS15/16 J.Simon 50
Arten von Multiprozessorsystemen• Bei speichergekoppelten Multiprozessorsystemen besitzen alle
Prozessoren einen gemeinsamen Adressraum.Kommunikation und Synchronisation geschehen über gemeinsame Variablen.– symmetrisches Multiprozessorsystem (SMP): ein globaler
Speicher– Distributed-Shared-Memory-System (DSM): gemeinsamer
Adressraum trotz räumlich verteilter Speichermodule• Beim nachrichtengekoppelten Multiprozessorsystem besitzen alle
Prozessoren nur räumlich verteilte Speicher und prozessorlokale Adressräume.Die Kommunikation geschieht durch Austausch von Nachrichten.– Massively Parallel Processors (MPP), eng gekoppelte Prozessoren– Verteiltes Rechnen in einem Workstation-Cluster.– Grid-/Cloud-Computing: Zusammenschluss weit entfernter
Rechner
26
Architecture of Parallel Computer Systems WS15/16 J.Simon 51
Speichergekoppelte Multiprozessorsysteme
• Alle Prozessoren besitzen einen gemeinsamen Adressraum;Kommunikation und Synchronisation geschieht über gemeinsame Variablen.
• Uniform-Memory-Access-Modell (UMA):– Alle Prozessoren greifen in gleichermaßen auf einen
gemeinsamen Speicher zu. Insbesondere ist die Zugriffszeit aller Prozessoren auf den gemeinsamen Speicher gleich.Jeder Prozessor kann zusätzlich einen lokalen Cache-Speicher besitzen. Typische Beispiel: die symmetrischen Multiprossorsysteme (SMP)
• Nonuniform-Memory-Access-Modell (NUMA):– Die Zugriffszeiten auf Speicherzellen des gemeinsamen
Speichers variieren je nach dem Ort, an dem sich die Speicherzelle befindet.Die Speichermodule des gemeinsamen Speichers sind physisch auf die Prozessoren aufgeteilt.
– Typische Beispiele: Distributed-Shared-Memory-Systeme.
Architecture of Parallel Computer Systems WS15/16 J.Simon 52
Nachrichtengekoppelte Multiprozessorsysteme
• Uniform-Communication-Architecture-Modell(UCA):Zwischen allen Prozessoren können gleich lange Nachrichten mit einheitlicher Übertragungszeit geschickt werden.
• Non-Uniform-Communication-Architecture-Modell (NUCA):Die Übertragungszeit des Nachrichtentransfers zwischen den Prozessoren ist je nach Sender- und Empfänger-Prozessor unterschiedlich lang.
27
Architecture of Parallel Computer Systems WS15/16 J.Simon 53
Speicher- vs. Nachrichtenkopplung
• Distributed-Shared-Memory-Systeme sind NUMAs: Die Zugriffszeiten auf Speicherzellen des gemeinsamen Speichers variieren je nach Ort, an dem sich die Speicherzelle befindet.– cc-NUMA (Cache-coherent NUMA): Cache-Kohärenz wird
über das gesamte System gewährleistet, z.B. SGI Origin, HP Superdome, IBM Regatta
– ncc-NUMA (Non-Cache-coherent NUMA): Cache-Kohärenz wird nur innerhalb eines Knoten gewährleistet, z.B. Cray T3E, SCI-Cluster
– COMA (Cache-only-Memory-Architecture): Der Speicher des gesamten Rechners besteht nur aus Cache-Speicher. Nur in einem kommerziellen System realisiert (ehemalige Firma KSR)
• Nachrichten gekoppelte Multiprozessorsysteme sind NORMAs (No-remote-memory-access-Modell) oder Shared-nothing-Systeme, z.B. IBM SP, HP Alpha Cluster
Architecture of Parallel Computer Systems WS15/16 J.Simon 54
Zugriffszeit-/Übertragungszeit-Modell
single processorsingle address space
multiple processorsshared address space multiple processors
message passingUMA
NUMA
UCA
NUCA
Tim
e of
dat
a ac
cess
Con
veni
ence
of pr
ogra
mm
ing
cc-NUMA
ncc-NUMA