Table Of ContentGansterer • Oberhuber
Hochleistungsrechnen mit HPF
Springer
Berlin
Heidelberg
New York
Barcelona
Hongkong
London
Mailand
Paris
Tokio
w.
Gansterer • C. Oberhuber
Hochleistungsrechnen
mitHPF
i
Springer
Dr. Wilfried Gansterer
Prof Dr. Christoph Oberhuber
Technische Universitat Wien
Institut fUr Angewandte und Numerische Mathematik
Wiedner HauptstraBe 8-10/115
A-I040 Wien, Osterreich
Die DallKhe Bibliot/>ek . CIP_Einheit.saufnahme
Go.Ilskr~r, Wilfried N~
HochleiSlungsre<hnen mit HPF I Wilf.ied N.Gansle• . ,.; Chri.lOph Oberhuber.· Berlin; Heidelberg;
N~w York; Barcelona; Hongkong; London; Maililnd; hrio; Tokio: Sprin", •• 2001
[SBN·lJ: 971-l-H0-4H66-9
Einhandenlwu.f: Robe.t Ltt!ner
"t
Rober u'n""r de. U,iter d ... Abtei.!ung.G",phik-Rtprotedulik· am lrueitut fil. Design d.,. Uni"",.i·
lilt fO. Angewandte Kunst in Wien.
Mathematics Subject Classification (2000): 6SYOS, 6SY 10, 93840, 6SFn:
ISBN·J3; 978-3-540-42366-9 c·ISBN·J3: 978-3-642-59503-5
DOl: 1O.1007f978-3-642-59503-5
Diesel W.,.k ist urheberr""htJich ",schOl1!. J)ie dadurdl begrllndl'!OTI Rechr... insbesondere die d.,.
Obets<'l1ung. dn Na.chd.udu. dn Vurt"'g'. de. Entnabme von Abbildung~n und nbellen,du Funk_
~ndung.der Mikrcwerfilmung odef def V. .. vielfihigung uf anderen We",n und Mr Speicherung in
Datenw",rbeitungsanla",n. bleiben,uch bei nur luszugswciHr Verwertung. vorbrballen. Eine Ver_
vidfthigungdieses Werkef. oder von Teilen dieses W. .. ku "tauch im Einzelfall nur in doen GrenZl'n d.,.
gesetzlkhen Besfirnmungcn de. Urheberr«ht.gcSd<n d.,. Bun<lesrepublik [Hutschland YOm 9. Sq>
tember t 965 in der jfwrils gelr..nden Fl.$$ung zuli ..i g. Sie ift grundsiulich vergO.tungspflichtig. Zuwi_
derhandlungrn untcrliegen den St",fbestirnmungen does Urheberredll$g~.
Spring. ... v. . lag Bulin Heidelberg New York
ein Untnnehmen M' BntekmannSpringer Scirncc+Bwiness Medi. GmbH
htIp"Jlwww.sprin ... r.de
o Springer_Vo:rlag Berlin Hridelberg2001
Reprint of'he origin.t Mi'ion ZOOI
Die: Woedergabe von Gebraudt.namen. Han<ielsnamen, WlltrnbeteichnungOTl USW. in diHem w. .k he·
rcchtigt auch ohne hesOl'ld.,.e Kennuichnung nicbt ou doer Annabme, dall sokbe Namen im Sinne dn
Wa~nuichen' und Ma.kenochutz·Gaetogebung ah frei zu belrachtm wir~n und daber von jeder·
mann benulZt Wtrden dilrftcn.
Einbandg",taltung: Kilnul + Lopb, Heid~lberg
Satt: DoUenenleliungdorch die Aoturen onterVerwendungtine. Springer ~-Makropah-ts
Gedruckt auf s.lu~fn:iem Papi... SPIN 10846SS6 46,13142ck_5 4 1 2 t 0
Vorwort
Wissenschaftliches Hochleistungsrechnen (Scientific High Performance Compu
ting) wird entscheidend durch drei Faktoren beeinfluBt: durch die Computer
hardware, die Software (Programmiersprachen, Compiler) sowie durch die AIgo
rithmen zur Losung numerisch-mathematischer Probleme. Die Ziele dieses Bu
ches sind es, einerseits die wichtigsten Querverbindungen zwischen diesen drei
Bereichen darzustellen, und andererseits die Moglichkeiten aufzuzeigen, die die
Programmiersprache High Performance Fortran (HPF) zur effizienten Implemen
tierung numerischer Algorithmen auf Parallelrechnern bietet.
Kapitel 1 faBt die technischen Hardwaregrundlagen und die aktuellen Trends
der fUr das numerische Hochleistungsrechnen relevant en Computersysteme zu
sammen. Kapitel 2 beschiiftigt sich ausfUhrlich mit dem Leistungsbegriff sowie
mit den verschiedensten Aspekten der Leistungsbewertung. In Kapitel 3 werden
die mathematisch-algorithmischen Grundlagen fUr einige zentrale Rechenopera
tionen der Numerischen Linearen Algebra diskutiert, deren effizienter Umsetzung
in sehr vielen praktischen Anwendungen zentrale Bedeutung zukommt, da sie den
groBten Teil der Rechenzeit in Anspruch nehmen.
Aufbauend auf den Hardwarekonzepten und den algorithmischen Grundlagen
der ersten drei Kapitel sind die drei folgenden Kapitel der Entwicklung effizi
enter Parallelrechner-Software unter Verwendung der Programmiersprache HPF
gewidmet. Kapitel 4 bespricht die fUr HPF relevanten Sprachelemente des ge
genwartigen Fortran-Standards (Fortran 95). Kapitel 5 stellt das Konzept sowie
die Elemente von HPF im Detail vor. In Kapitel 6 wird ein Ausblick auf mogliche
und wiinschenswerte Erweiterungen und Weiterentwicklungen von HPF gegeben.
Die Kapitel 2, 3, 4 und 5 enthalten praktische Fallbeispiele der Verwendung
von HPF auf verschiedenen Arten von Parallelrechnern. Appendix A enthiilt einen
Uberblick tiber die HPF-Bibliothek, eine Sammlung von vordefinierten Unterpro
grammen, die vor allem im Bereich des Parallelrechnens wichtig sind. Die Detail
spezifikationen dieser Unterprogramme sind aus Platzgriinden nicht vollstandig
in diesem Buch abgedruckt. Sie findet man jedoch auf der Web-Site
www.math.tuwien.ac.at/hpf_library.
Klarerweise gibt es neben HPF einige andere Ansatze fUr die Programmierung von
Parallelrechnern, deren wichtigste Beispiele tiberblicksmaBig in Kapitel 7 erwahnt
sind. Bei der heutzutage in der Praxis am weitesten verbreiteten Variante, dem
expliziten Nachrichtenaustausch mit Hilfe von PVM oder MPI, liegt die Btirde
der Organisation der Kommunikation ganz auf der Seite des Programmierers.
Der damit verbundene Programmieraufwand steht in krassem Gegensatz zum
Konzept von HPF, das eine sehr einfache und benutzerfreundliche Schnittstelle fUr
den Programmierer bereitstellt, dafiir aber den GroBteil der Verantwortung fUr die
Umsetzung des Programmcodes in effizienten Maschinencode auf den Compiler
tibertragt.
VI Vorwort
Das vorliegende Buch soil aufzeigen, daB sich HPF heute, nach einer relativ lan
gen Phase unbefriedigender Ergebnisse, konsolidiert hat. Es solI auBerdem ver
deutlichen, daB es fur viele (aber keineswegs fur alle) Anwendungen des nume
rischen wissenschaitlichen Hochleistungsrechnens ein sehr sinnvolles und brauch
bares Werkzeug und eine sehr attraktive Alternative zum Konzept des expliziten
Nachrichtenaustausches sein kann.
Dank mochten wir an dieser Stelle all jenen aussprechen, die zur Entstehung
dieses Buches beigetragen haben. Insbesondere seien John Merlin, Harald Ehold,
Ernst Haunschmid, Helmut Hlavacs sowie Dieter Kvasnicka namentlich erwii.hnt,
deren kritische Kommentare und Diskussionsbeitrage wir sehr schatzten. AuBer
dem mochten wir auch Michael Ibi fill seine Mithilfe bei den Korrekturarbeiten
an alteren Versionen des Manuskripts danken.
Das Entstehen dieses Buches wurde nicht zuletzt durch die Unterstiitzung des
osterreichischen Fonds zur Forderung der wissenschaitlichen Forschung (FWF)
ermoglicht.
Wien, im Juni 2001 WILFRIED GANSTERER, CHRISTOPH UBERHUBER
Inhalt sverzeichnis
v
Vorwort ..
1 Hardware 1
1.1 Prozessoren . 4
1.1.1 Das Pipeline-Prinzip 5
1.1.2 RISC-Prozessoren .. 11
1.1.3 Pipeline-Prinzip in RISC-Prozessoren . 13
1.1.4 Vektorprozessoren ...... . 16
1.2 Speicher .................. . 18
1.2.1 Die Parameter eines Speichersystems 19
1.2.2 Speicherhierarchien 20
1. 2.3 Adressierungsarten 23
1.2.4 Register ...... . 25
1.2.5 Der Cache-Speicher. 26
1.2.6 Cache-Koharenz .. 33
1.2.7 Der Hauptspeicher 35
1.2.8 Die Speicherung von Datenstrukturen 39
1.3 Kommunikation.. 40
1.3.1 Leistung .. 42
1.3.2 Skalierbarkeit 42
1.3.3 Technologie 43
1.3.4 Verbindungstypen 44
1.3.5 Verbindungsstrukturen 44
1.3.6 Kommunikationsstrukturen 45
1.4 Parallelrechner............ 45
1.4.1 Grobstruktur von Parallelrechnern 46
1.4.2 Klassifikation von Rechnerarchitekturen 47
1.4.3 Speichergekoppelte Systeme . . 50
1.4.4 Nachrichtengekoppelte Systeme 53
1.5 Entwicklungstrends 56
2 Leistung ........ . 58
2.1 Der Begriff "Leistung" . 59
2.1.1 Der Leistungsfaktor Arbeit 61
2.1.2 Der Leistungsfaktor Zeit .. 74
2.2 Quantifizierung der Leistung .... 82
2.2.1 Analytische Leistungsbewertung der Hardware. 83
2.2.2 Die Leistung von Vektorprozessoren . 88
2.2.3 Der LeistungseinfluB des Speichers 92
2.2.4 Empirische Leistungsbewertung ... 95
VIII Inhaltsverzeichnis
2.2.5 Bewertung von leistungssteigernden Mafinahmen 102
2.2.6 Das Gesetz von Amdahl . . 109
2.2.7 Das Modell von Gustafson. 112
2.2.8 Variable Parallelisierbarkeit 113
2.3 Benchmarks ........... . 113
2.3.1 Herkunft von Benchmarks 114
2.3.2 Ziele von Benchmarks 117
2.4 Beispiele fiir Benchmarks 119
2.4.1 EuroBen ....... . 120
2.4.2 Flops ........ . 121
2.4.3 GENESIS Distributed Benchmarks 122
2.4.4 LINPACK-Benchmark fur einen Prozessor 123
2.4.5 LINPACK-Benchmark fur Parallelrechner 125
2.4.6 Livermore Loops . . . . . . . . . 127
2.4.7 LLCbench ............ . 127
2.4.8 NAS Parallel Benchmarks (NPB) 129
2.4.9 PARKBENCH .. 130
2.4.10 Perfect-Benchmark 132
2.4.11 SLALOM ..... 132
2.4.12 SPEC-Benchmarks 133
2.4.13 Whetstone ..... 135
2.4.14 Andere Benchmarks 136
2.5 Schwachen von Benchmarks. 136
2.5.1 Kritik an Benchmarkresultaten 137
2.5.2 Das Zusammenfassen von Benchmarkresultaten 139
2.5.3 Standardisierungen .. 140
2.6 Das Preis-Leistungs-Verhaltnis ..... . 140
2.6.1 Definition des PLY ....... . 141
2.6.2 Vergleich von Computersystemen 142
2.6.3 Der Gordon-Bell-Preis 144
3 Algorithmen. . . . . . . . . . . . . 146
3.1 Grundoperationen der Linearen Algebra. 146
3.1.1 Vektor-Vektor-Operationen 147
3.1.2 Matrix-Vektor-Operationen 147
3.1.3 Matrix-Matrix-Operationen 148
3.1.4 BLAS ........... . 148
3.1.5 Geblockte Algorithmen .. . 150
3.1.6 Das Aufrollen von Schleifen 151
3.2 Die Matrizenmultiplikation . . . . . 152
3.2.1 Matrix-Vektor-Multiplikation 152
3.2.2 Matrix-Matrix-Multiplikation 156
3.2.3 Die ijk-Form ......... 156
3.2.4 Verschiedene Formen der Matrizenmultiplikation 157
3.2.5 Mafinahmen zur Leistungsverbesserung . . . . . . 160
Inhaltsverzeichnis IX
3.2.6 Matrix-Matrix-Multiplikation auf Parallelrechnern . 164
3.3 Die Lasung linearer Gleichungssysteme 168
3.3.1 LU-Zerlegung.......... 169
3.3.2 Schleifenreihenfolgen...... 170
3.3.3 Komplexitat der LU-Zerlegung 171
3.3.4 Pivotstrategien......... 172
3.3.5 Geblockte LU-Zerlegung . . . . 173
3.3.6 LU-Zerlegung auf Parallelrechnern 175
3.3.7 Cholesky-Zerlegung. 178
4 Fortran 95 . . . . . . . . . . . . . 182
4.1 Felder ............ . 182
4.1.1 Die Darstellung von Literalen 183
4.1.2 Die Vereinbarung von Feldern 184
4.2 Belegung und Verkniipfung von Feldern 186
4.2.1 Die Speicherung von Feldern . 186
4.2.2 Der Zugriff auf Felder 188
4.2.3 Die Wertzuweisung . . 190
4.2.4 Operatoren...... 191
4.3 Die Verarbeitung von Feldern . 192
4.3.1 Elementweise Operationen auf Feldern 192
4.3.2 Auswahl mit Feld-Bedingungen 194
4.3.3 Speicherverwaltung....... 196
4.3.4 Felder als Parameter . . . . . . 201
4.3.5 Funktionen mit Feldresultaten . 202
4.3.6 Vordefinierte Unterprogramme 203
4.4 Unterprogrammschnittstellen.. 205
4.4.1 Explizite Schnittstellen . 206
4.4.2 Implizite Schnittstellen . 206
4.4.3 Schnittstellenblacke... 206
4.5 FORALL ............ . 207
4.5.1 Die FORALL-Anweisung . 208
4.5.2 Der FORALL-Block .. . 213
4.6 PURE-Unterprogramme ..... . 216
4.6.1 Syntaxregeln fur das PURE-Priifix 218
4.6.2 Einschriinkungen.... 218
5 High Performance Fortran - HPF 223
5.1 Die Entwicklung von HPF 224
5.2 Die Konzeption von HPF ... . 226
5.2.1 HPF und Fortran ... . 226
5.2.2 Das Programmiermodell von HPF . 228
5.2.3 Die syntaktische Struktur von HPF . 228
5.3 Datenverteilung und Datenausrichtung . 231
5.3.1 Das Modell der Datenabbildung ... 231
x Inhaltsverzeichnis
5.3.2 Die PROCESSORS-Anweisung ....... 234
5.3.3 ,,*" in ALIGN- und DISTRIBUTE-Anweisungen 236
5.3.4 Die DISTRIBUTE-Anweisung zur Datenverteilung 237
5.3.5 Die ALIGN-Anweisung zur Datenausrichtung 244
5.3.6 Die TEMPLATE-Anweisung . 251
5.3.7 Der Kommunikationsaufwand · ....... 252
5.4 Datenabbildung in Unterprogrammen · ....... 254
5.4.1 Vorschreibendes ALIGN und DISTRIBUTE 255
5.4.2 Transkriptive Datenabbildung . . . 256
5.4.3 Die INHERIT- Anweisung . . . . . . . . . . 257
5.4.4 Anderungen im Vergleich zu HPF 1 . . . . . 259
5.4.5 Abstrakte Prozessoren in Unterprogrammen 260
5.4.6 Templates in Unterprogrammen . 261
5.5 Datenparallele Verarbeitung · ...... 262
5.5.1 PURE-Unterprogramme · .... 262
5.5.2 Die INDEPENDENT-Anweisung 263
5.6 EXTRINSIC-Unterprogramme ...... 269
5.6.1 Das EXTRINSIC-Prafix · .... 273
5.6.2 Der Aufruf von EXTRINSIC-Unterprogrammen 274
5.6.3 HPF und Numerische Software 275
5.7 Speicher- und Abfolgeassoziierung .......... 287
5.7.1 Die SEQUENCE-Anweisung ......... 289
5.7.2 Parameteriibergabe und Abfolgeassoziierung 290
6 Anerkannte Erweiterungen von HPF .. 291
6.1 Erweiterungen fur die Datenabbildung . 291
6.1.1 Dynamische Datenabbildung. . 292
6.1.2 Neue Verteilungsformate .... 295
6.1.3 Erweiterungen der DISTRIBUTE-Anweisung 297
6.1.4 Die RANGE-Anweisung · . 298
6.1.5 Die SHADOW-Anweisung . 299
6.2 Daten- und Funktionsparallelismus . 300
6.2.1 Aktive Prozessoren . . . . . 300
6.2.2 Die ON-Anweisung ..... 301
6.2.3 Die RESIDENT -Anweisung 302
6.2.4 Die TASK_REGION-Anweisung 303
6.3 Erweiterungen fur extrinsische Unterprogramme 304
6.3.1 Das LOCAL-Modell · .......... 304
6.3.2 Das SERIAL-Modell · .......... 304
6.3.3 Einbindungen verschiedener Programmiersprachen 305
6.4 Neue und erweiterte Unterprogramme · .. 305
6.4.1 Vordefinierte Un terprogramme 305
6.4.2 Erweiterungen der HPF-Bibliothek 305
6.5 Asynchrone Ein-/ Ausgabe ......... 305