TU Wien | ZID | ZIDline 9 | Itanium 2

Itanium 2 und numerisch intensives Rechnen

Ernst Haunschmid

Egal ob Quantentheorie, Biochemie oder Mikroelektronik, der Bedarf an leistungsfähigen Rechnersystemen ist ungebrochen. Neue Prozessoren wie der Itanium 2 kommen da gerade richtig. Bei all der Rechenleistung stellt sich aber auch die Frage einer objektiven Bewertung derselben.

SPEC Benchmarks

Die Standard Performance Evaluation Corporation (SPEC) ist eine Non-Profit Organisation mit der Zielsetzung, aussagekräftige Benchmarks für aktuelle Hochleistungsrechner zu erstellen und zu etablieren. Die von den Mitgliedern und Lizenznehmern eingereichten Ergebnisse der Benchmarks werden von der SPEC überprüft und veröffentlicht (www.spec.org).

Zur Bewertung von Rechnersystemen für numerisch intensives Rechnen wird gerne der SPEC CPU2000 herangezogen. Dies ist eine Sammlung von real world Applikationen, die die Leistungsfähigkeit von CPU, Hauptspeicher und Compiler des untersuchten Rechnersystems testen soll.

Der SPEC CPU2000 besteht aus zwei Teilen; SPEC int2000 besteht aus 12 C/C++ Programmen, bei denen die Integer Leistung dominiert, während bei SPECfp2000 die Gleitpunktleistung im Vordergrund steht. Da bei technisch-naturwissenschaftlichen Anwendungen (Modellbildung, Simulation) meistens die Gleitpunktleistung ausschlaggebend ist, wird im Folgenden näher auf den SPECfp2000 eingegangen; die Programme des SPEC fp2000 sind in Tabelle 1 angeführt.

Jedes dieser Programme wird auf dem zu testenden System compiliert und die Laufzeit ermittelt; diese wird in Relation zu einer Referenzlaufzeit gesetzt und aus dem geometrischen Mittel dieser Faktoren wird der SPEC fp2000 Wert berechnet. Als Referenzsystem dient eine Sun Ultra 5/10 (300 MHz), die den Wert 100 erhält. (Ein SPECfp2000 Wert von 1500 bedeutet daher, dass das betreffende System 15 mal schneller arbeitet als das Referenzsystem.)

Dabei gibt es 2 Varianten: bei der Ermittlung des base Wertes müssen Einschränkungen bei der Art und der Anzahl der Compiler-Optionen berücksichtigt werden, während beim peak Wert diese Einschränkungen wegfallen. In diesem Artikel sind immer die peak Werte angeführt.

Benchmark Sprache Anwendungsgebiet
168.wupwise Fortran 77 Physik/Quantenchromodynamik
171.swim Fortran 77 Meteorologie/Wasserströmungen
172.mgrid Fortran 77 Multi-grid Gleichungslöser
173.applu Fortran 77 Partielle Differentialgleichungen
177.mesa C 3D Graphik Bibliothek
178.galgel Fortran 90 Strömungsdynamik
179.art C Bilderkennung mit neuralen Netzwerken
183.equake C Ausbreitung von seismischen Wellen
187.facerec Fortran 90 Bildbearbeitung
188.ammp C Atombewegungen in einen Protein-Molekül
187.facerec Fortran 90 Bildbearbeitung
188.ammp C Atombewegungen in einen Protein-Molekül
189.lucas Fortran 90 Zahlentheorie/Primzahltest
191.fma3d Fortran 90 Crash Simulation mit finiten Elementen
200.sixtrack Fortran 77 Partikel in einem Teilchenbeschleuniger
301.apsi Fortran 77 Meteorologie/Schadstoffausbreitung

Tabelle 1: Die Programme des SPECfp2000

Computer System Prozessor OS SPECint2000 SPECfp2000
HP rx2600 Itanium 2 1.5 GHz, 6 MB Redhat AS 2.1 1322 2119
IBM p655 Power4+ 1.7 GHz AIX 5.2 1103 1678
Intel D875PBZ Pentium 4 EE 3.2 GHz Windows XP 1620 1494
AMD Athlon FX-51 2.2 GHz Windows XP 1447 1423
HP ES45 68 Alpha 21264C 1.25 GHz Tru64 928 1365
Intel D875PBZ Pentium 4 3.2 GHz Windows XP 1330 1285
AMD A4800 Opteron 144 1.8 GHz Windows 2003 1170 1219
Sun Blade 2000 Ultra SPARC III 1.2 GHz Solaris 9 722 1118
SGI Origin3200 Mips R14000 600 MHz IRIX 6.5 500 529
HP rp5470 PA-8700 750 MHz HPUX 11i 549 522

Tabelle 2: SPEC CPU2000 Werte einiger Rechnersysteme

Itanium

Der Itanium Prozessor war die erste Generation einer neuen Prozessorarchitektur, die von Hewlett-Packard und Intel gemeinsam entwickelt wurde und von Intel produziert und vermarktet wird.

Die Anfänge der Itanium-Architektur reichenbis ins Jahr 1980, als HP Labs eine Architektur zu entwickeln begann, die die damals von HP angebotenen Computersysteme einander ähnlicher machen sollte. Daraus entstand die so genannte PA-RISC-Architektur, die auf der Mehrzahl der Unix Systeme von HP noch immer im Einsatz ist.

Weil man sich bewusst war, dass die RISC-Architektur irgendwann an ihre Grenzen stoßen würde, initiierte HP Labs Anfang 1989 ein Forschungsprogramm zum Thema Instruction Level Parallelism (ILP) mit dem Ziel, die Architektur des Very Long Instruction Word (VLIW) auf allgemeinere Zwecke und Belange umzulegen. Aus diesem Forschungsprogramm, das bis 1996 lief, gingen die EPIC-Architektur und die entsprechende Compiler-Technologie hervor.

Etwa zur gleichen Zeit, als die Arbeit an ILP begann, startete HP Labs ein eigenes Programm für den Aufbau einer EPIC-Architektur, die PA-RISC ersetzen sollte. 1993 hatte man die PA-WideWord-Architektur entwickelt - die Basis der Zusammenarbeit zwischen HP und Intel und Grundstein der Itanium Prozessor Spezifikation (ursprünglich IA-64 genannt).

Itanium wurde als parallele Hochleistungsarchitektur entwickelt, die mehr Befehle in einem Takt ausführt als die Vorgängerarchitekturen. Das ist möglich, weil die Last des Befehls-Schedulings auf den Compiler abgewälzt wird; der Compiler kann zur Compile-Zeit die einzelnen Instruktionen für maximale Parallelität ordnen; zur Laufzeit ist kein Befehls-Scheduling mehr notwendig (und auch nicht möglich).

Die Effizienz Itanium-basierter Systeme hängt ganz wesentlich von der Verfügbarkeit entsprechender Compiler ab. Die erste Generation des Itanium Prozessors konnte unter anderem aus diesem Grund nicht überzeugen.

Die neueste Generation des Itanium 2 Prozessors soll, glaubt man den Aussagen der diversen Anbieter, alles besser und vor allem schneller können.

SPECfp2000

Die erste Version des Itanium Prozessors konnte mit seiner eher mäßigen Leistung nicht überzeugen. Eine der Ursachen neben dem fehlenden Compiler-Support war die Konzeption des Speichersubsystems, das dazu führte, dass der Prozessor vornehmlich auf den Hauptspeicher warten musste. Mit riesigen on-chip L3 Caches mit bis zu 6 MB versucht Intel beim aktuellen Itanium 2 dieses Manko auszugleichen. Die SPEC CPU2000 Werte belegen den Erfolg dieser Strategie eindrucksvoll. Wie weit diese Leistung auch in anderen Applikationen erreichbar ist, bleibt aber offen. Die Tabelle 2 gibt einen Überblick über die SPEC CPU2000 Werte einiger Computer Systeme.

Die extrem hohen SPEC CPU2000 Werte des Itanium 2 Prozessors beruhen zumindest zu einem Teil auf seinem 6 MB großen Level 3 Cache; einige Programme des SPEC CPU2000 (beispielsweise 179.art) finden im L3 Cache Platz, zeitraubende Zugriffe auf den Hauptspeicher können dadurch minimiert werden. Damit wird aber auch eine Zielsetzung des SPEC CPU2000 unterlaufen: die Leistungsfähigkeit des Hauptspeichers geht in die SPEC CPU2000 Werte kaum mehr ein. Da diese Problematik nicht nur für den Itanium 2 gilt, wird von SPEC bereits seit 2 Jahren an einem Nachfolger gearbeitet, dem SPEC CPU2004.

Tabelle 3 gibt die relativen SPECfp2000 Werte einiger Itanium 2 Konfigurationen wieder.

Prozessor Itanium 2 Itanium 2 Itanium 2 Itanium 2 Itanium 2
MHz 900 900 1000 1000 1500
L3 Cache in MB 1.5 1.5 3.0 3.0 6.0
OS Redhat Redhat Redhat HPUX Redhat
Compiler Intel 7.0 Intel 7.1 Intel 7.0 HP Intel 7.1
168.wupwise 1.00 1.01 1.09 0.64 1.54
171.swim 1.00 1.04 1.08 0.82 1.39
172.mgrid 1.00 1.00 1.10 0.99 1.51
173.applu 1.00 1.08 1.09 0.56 1.75
177.mesa 1.00 1.00 1.11 1.10 1.72
178.galgel 1.00 1.18 1.75 1.77 2.87
179.art 1.00 1.01 2.66 1.68 3.96
183.equake 1.00 1.01 1.10 0.69 1.72
187.facerec 1.00 1.07 1.19 0.76 1.89
188.ammp 1.00 1.01 1.38 1.46 2.15
189.lucas 1.00 1.13 1.09 1.00 1.49
191.fma3d 1.00 1.04 1.08 0.85 1.51
200.sixtrack 1.00 1.01 1.17 1.21 1.81
301.apsi 1.00 1.02 1.10 1.76 1.63
SPECfp2000 1.00 1.04 1.23 1.13 1.84

Tabelle 3: SPECfp2000 Werte relativ zu Itanium 2 (900 MHz)

Bemerkenswert sind die Unterschiede in den Resultaten zwischen Linux/Intel und HPUX bei identer Hardware. Die beiden Compiler haben offenbar jeweils ihre Schwächen; ein Teil der Leistungsfähigkeit des Itanium 2 wird derzeit nicht ausgenutzt.

Der SPEC CPU2000 ist ein allgemein anerkannter Benchmark und die Hersteller zitieren gerne (die für sie günstigen) Resultate. Sie sollten aber nicht überbewertet werden; es gibt genügend Applikationen, deren Laufzeitverhalten auf den einzelnen Systemen nicht mit den SPEC CPU2000 Werten korrelieren. Eine Kaufentscheidung nur aufgrund eines beeindruckenden Benchmark-Wertes zu treffen, könnte mit unliebsamen Überraschungen enden.

In der Tabelle 4 sind die SPECfp2000 Werte detailliert dargestellt; der Wert des jeweils besten Systems ist hervorgehoben. Obwohl die HP rx2600 mit dem Itanium 2 Prozessor mit Abstand den besten SPECfp2000 Wert vorweisen kann, wird sie bei der Hälfte der Benchmark-Programme von anderen Systemen (zum Teil deutlich) übertroffen. Ein extremes Beispiel ist das Programm 179.art, bei dem ein Sun Blade2000 System fast doppelt so schnell ist wie die HP rx2600, wobei die rx2600 wiederum ein Mehrfaches schneller ist als die restliche Konkurrenz.

System: HP rx2600 Intel Intel AMD IBM p655 Blade2000
Prozessor: Itanium 2 Pentium 4 Pent. 4EE Athl. FX-51 Power4+ US III
Taktrate: 1.5 GHz 3.2 GHz 3.2 GHz 2.2 GHz 1.7 GHz 1.2 GHz
168.wupwise 1466 1755 1745 1590 2135 959
171.swim 4136 1882 1914 2220 2423 2659
172.mgrid 2503 1238 1323 1216 1214 706
173.applu 3469 1289 1318 1202 1448 956
177.mesa 1126 1324 1323 1579 1024 735
178.galgel 4225 1860 2606 2291 4697 2374
179.art 6514 925 2374 1739 2304 11077
183.equake 2982 1625 1653 1352 2644 1616
187.facerec 1925 1661 1769 1633 1966 1179
188.ammp 1413 773 1266 1353 1022 651
189.lucas 1774 1578 1611 1459 2005 716
191.fma3d 1091 1312 1330 1315 1315 547
200.sixtrack 1402 594 606 601 741 454
301.apsi 1024 890 1205 1249 1341 648
SPECfp2000 2119 1267 1494 1423 1678 1118

Tabelle 4: SPECfp2000 Werte einiger Rechnersysteme

Der Pentium 4EE Prozessor hat im Gegensatz zum Pentium 4 Prozessor zusätzlich einen on-chip L3 Cache von 2 MB, der einige Benchmark-Programme (beispielsweise 179.art) deutlich beschleunigt. Die IBM p655 profitiert beim SPECfp2000 enorm vom 128 MB großen L3 Cache, den sich im Normalbetrieb 8 Prozessoren teilen müssen; gibt es allerdings nur einen aktiven Prozess, so kann dieser den ganzen L3 Cache für sich allein nutzen. Programme wie 189.facerec (mit einem Hauptspeicherbedarf von etwa 16 MB) profitieren davon sehr deutlich.

Benchmark-Programme wie der SPECfp2000 zeigen, wie gut (oder schlecht) ein Rechnersystem für die im Benchmark vertretenen Programme geeignet ist. Die einzelnen Applikationen haben teilweise deutlich unterschiedliche Anforderungen an die Rechnersysteme; einzelne Werte wie ein SPECfp2000 können die Leistungsfähigkeit eines Computersystems immer nur sehr vereinfacht und nur unter den zugrunde liegenden Annahmen des jeweiligen Benchmarks darstellen. Bei der Auswahl eines geeigneten Rechnersystems für eine bestimmte Applikation können Benchmark-Werte hilfreich sein; als alleinige Entscheidungsgrundlage sind sie nur selten geeignet.

SPECfp_rate2000

SPECint2000 und SPECfp2000 sind nur zur Bewertung der Einzel-Prozessor-Leistung geeignet; für die Bewertung der Durchsatz-Leistung von Mehr-Prozessor-Systemen werden der SPECint_rate2000 und der SPEC fp_rate2000 (jeweils wieder als base und peak Varianten) herangezogen. Bei der Durchsatzmessung werden auf einem n-Prozessor System genau n Kopien des jeweiligen Benchmark-Programmes gestartet und deren Laufzeit gemessen. Die Laufzeiten der einzelnen Benchmark-Programme werden in Relation zu denen des Referenzsystems (Sun Ultra 5/10) gesetzt und gemittelt. Bei einem System, das optimal skaliert, führt eine Verdoppelung der Anzahl der Prozessoren zu einer Verdoppelung des SPECint_rate2000 bzw. SPECfp_rate2000 Wertes (oder anders ausgedrückt: die Laufzeit der Benchmark-Programme ist unabhängig von der Anzahl der Prozessoren).

Die SPECfp_rate2000 Werte in Tabelle 5 stammen von einer HP rx5670, die mit ein bis vier Itanium 2 Prozessoren (1.5 GHz) bestückt sein kann.

Laufzeit [s] Faktor

Anzahl CPUs:

1 2 4 1 2 4

168.wupwise

112.0 120.0 129.0 1.00 1.07 1.15

171.swim

73.8 135.0 273.0 1.00 1.83 3.70

172.mgrid

71.8 117.0 225.0 1.00 1.63 3.13

173.applu

61.7 66.1 101.0 1.00 1.07 1.64

177.mesa

122.0 122.0 122.0 1.00 1.00 1.00

178.galgel

68.3 68.4 69.0 1.00 1.00 1.01

179.art

39.0 39.7 39.7 1.00 1.02 1.02

183.equake

44.6 57.9 108.0 1.00 1.30 2.42

187.facerec

97.0 106.0 124.0 1.00 1.09 1.28

188.ammp

155.0 155.0 156.0 1.00 1.00 1.01

189.lucas

114.0 148.0 266.0 1.00 1.30 2.33

191.fma3d

199.0 210.0 251.0 1.00 1.06 1.26

200.sixtrack

80.0 80.0 80.4 1.00 1.00 1.01

301.apsi

260.0 263.0 285.0 1.00 1.01 1.10

SPECfp_rate2000:

24.5 42.6 66.4      

Tabelle 5: Absolute und relative Laufzeiten des SPECfp_rate2000 auf einem HP rx5670

Das Benchmark-Programm 171.swim hat hohe Anforderungen an die Speicherbandbreite des betreffenden Systems. Bei der HP rx5670 verbraucht bereits eine einzige Instanz dieses Programmes einen Großteil der verfügbaren Speicherbandbreite, sodass bei zwei Prozessoren die Laufzeit um den Faktor 1.83, und bei vier Prozessoren die Laufzeit um den Faktor 3.7 ansteigt. Viele Anwendungen im technisch-naturwissenschaftlichen Bereich haben ähnliche Anforderungen, beispielsweise das an der TU Wien entwickelte Programmpaket WIEN. Für derartige Applikationen scheint dieses System nicht geeignet zu sein. (In diesen Fall hätte ein 4-Prozessor System nur eine marginal bessere Durchsatzleistung als das entsprechende System mit nur einem Prozessor.) Bei Applikationen, die vollständig im Cache ablaufen (wie 179.art) oder nur selten Zugriffe auf den Hauptspeicher benötigen, mag eine Konfiguration dieses Systems mit vier Prozessoren sinnvoll sein (sofern man gewillt ist, den Preis von mehr als 100 000 Euro in Kauf zu nehmen).

WIEN

WIEN ist ein umfangreiches Programmsystem aus dem Bereich der theoretischen Chemie zur Berechnung von elektronischen Eigenschaften von Festkörpern nach der FP-LAPW Methode (siehe Blaha et al. [1]), mit dem sehr genaue Lösungen der Gleichungen der Dichtefunktionaltheorie berechnet werden können.

LAPW1 ist Teil von WIEN und beinhaltet der Lösung eines verallgemeinerten Eigenwertproblems, wodurch dieses Programm nicht nur sehr rechenintensiv ist, sondern auch hohe Anforderungen an die Speicherbandbreite des Rechnersystems stellt. Die Laufzeiten für einen konkreten Datensatz sind in Tabelle 6 zusammengefasst.

Die numerisch intensiven Berechnungen sind in die BLAS Bibliothek ausgelagert. Dies ist eine Sammlung grundlegender mathematischer Operationen (beispielsweise Multiplikation zweier Matrizen). Für eine optimale Laufzeit ist in der Regel die Verwendung hoch optimierter BLAS Bibliotheken anzuraten. Die MKL (Math Kernel Library) von Intel ist eine derartige Bibliothek. Ist für ein bestimmtes Computersystem keine vom Hersteller optimierte BLAS Bibliothek vorhanden, steht über NETLIB (www.netlib.org) eine portable, aber im Allgemeinen nicht sehr effiziente Fortran 77 Referenzimplementierung zur Verfügung.

Auf dem Pentium 4 System bringt die Verwendung der MKL von Intel deutliche Vorteile gegenüber der Fortran 77 Referenzimplementierung. Die neueren Versionen des Intel Compilers und der MKL bringen nur noch geringfügige Verbesserungen.

Ein völlig anderes Bild bietet das Itanium 2 System; die extremen Laufzeitunterschiede zwischen den beiden Versionen der MKL belegen den teilweise fehlenden Support bei der Einführung des Itanium 2 Prozessors. Die Laufzeiten unter HPUX belegen, dass auch weiterhin noch Verbesserungen der Intel Compiler möglich sein sollten.

Rechnersystem Prozessor Betriebssystem Compiler BLAS Laufzeit
HP rx2600 Itanium 2 900 MHz Redhat AS 2.1 Intel 7.0 MKL 5.2 3213
Redhat AS 2.1 Intel 7.0 Netlib 1402
Redhat AS 2.1 Intel 7.1 MKL 6.0 257
HPUX 11i HP MLIB 225
PC, ASUS P4T533 Pentium 4 2.8 GHz Redhat 8.0 Intel 7.0 MKL 5.2 210
Redhat 8.0 Intel 7.1 MKL 6.0 194
Redhat 8.0 Intel 7.1 Netlib 577

Tabelle 6: Laufzeiten von LAPW1 in Abhängigkeit von Betriebssystem und Compiler

CFD Applikationen

Bei Einführung des Itanium Prozessors war de facto keine Applikations-Software für diese Plattform erhältlich. Mittlerweile gibt es von vielen Anbietern auch Versionen für Itanium-basierte Systeme (sowohl unter HPUX als auch unter 64-Bit Linux).

Für Applikationen aus dem Bereich der Strömungsdynamik und Finite Elemente ist am ZID ein eigener Server eingerichtet (www.zserv.tuwien.ac.at/sc). Die Hardware besteht aus 10 Compaq ES45 Systemen mit jeweils 4 Alpha 21264C Prozessoren mit 1 GHz. Als Vergleichssystem diente eine HP rx2600 mit zwei Itanium 2 Prozessoren mit 900 MHz.

Laufzeit [s]

Produkt

Testfall

ES45 rx2600

Fluent

big

927 1188

small

149 186

Ansys

big

10980 13470

small

820 1230

Cfx5

big

36112 46250

small

472 544

Tabelle 7: Laufzeiten einiger CFD Applikationen

Beide Systeme sind mit nicht mehr ganz aktuellen Prozessoren ausgestattet. Bei allen drei Applikation ist der Alpha Prozessor um etwa 20 - 40 % schneller als der Itanium 2 Prozessor. Ein Vergleich der derzeit jeweils leistungsfähigsten verfügbaren Prozessoren würde wahrscheinlich zu Gunsten des Itanium 2 Prozessors ausgehen.

Resümee

Der Itanium 2 ist ein sehr leistungsfähiger Prozessor, der überall dort seine Berechtigung findet, wo man mit den Beschränkungen der IA32 Architektur nicht leben kann oder will. Im Bereich großer SMP Systeme beginnen Itanium-basierte System den etablierten Serversystemen Konkurrenz zu machen: HP bietet mit der Superdome Systeme mit bis zu 64 Prozessoren; SGI bietet mit der Altix Systeme mit bis zu 128 Prozessoren (eines davon ist an der Universität Linz installiert). Zudem können mehrere Altix Systeme zu einem Super-Cluster verbunden werden, wobei jeder Prozessor auf den gesamten Hauptspeicher aller beteiligten Systeme zugreifen kann (www.sgi.com/servers/altix).

Die effiziente Portierung einer Applikation auf die Itanium 2 Plattform kann sehr zeitaufwendig sein, speziell wenn es sich um C/C++ Code handelt. Intel übernimmt zwar laufend Features vom GNU C Compiler in seine Compiler, unter Linux/gcc entwickelte Applikationen müssen aber in den meisten Fällen für die Verwendung der Intel Compiler adaptiert werden. Auf Itanium Systemen sind die Intel Compiler aus Gründen der Effizienz dem GNU C Compiler vorzuziehen; auf IA32 Systemen sind die beiden Compiler mittlerweile etwa gleichwertig.

Wenn die Beschränkungen der IA32 Architektur (Adressraum mit 4 GB limitiert) nicht zum Tragen kommen, bieten IA32 Systeme ein deutlich besseres Preis/Leistungsverhältnis. (Für den high-end Itanium 2 Prozessor mit 1.5 GHz und 6 MB Level 3 Cache sind ca. 10 000 Euro Listenpreis zu kalkulieren.) Und mit den Opteron bzw. Athlon64 Prozessoren ist durch deren Kompatibilität mit der IA32 Architektur zudem ein wesentlich sanfterer Einstieg in die 64-Bit Welt möglich.

Am ZID wurde ein Evaluierungsserver für den Itanium 2 Prozessor eingerichtet; weitere Informationen findet man unter www.zid.tuwien.ac.at/zserv/systeme/titan.html.

Literatur

[1]P. Blaha, K. Schwarz, P. Sorantin, S. B. Trickey: Full-Potential, Linearized Augmented Plane Wave Programs for Crystalline Systems. Comp. Phys. Commun. 59 (1990), pp. 399-415.


Seitenanfang | ZIDline 9 - Dezember 2003 | ZID | TU Wien