Im Rahmen der vorliegenden Fallstudie wollten wir herausfinden, wie sich der Caché-Server unter den beiden Windows® 64-Bit-Plattformen schlägt, also haben wir entsprechend die Betriebssysteme Windows® 2003 -x64 sowie -IA64 auf insgesamt drei Testmaschinen installiert. Bei der Installation von Caché 5.0.21 fiel uns zunächst auf, dass sowohl das Setup als auch die Konfigurierung unter den beiden Itanium’s ziemlich lahm lief. Dieser Effekt, der uns aus der gut 3-jährigen Erfahrung mit dem Itanium®-Cluster im Datacenter wohl bekannt ist, geht klar auf die Tatsache zurück, dass all die Kontrollelemente, die über den Caché-Cube gesteuert werden, wie auch der letztere selbst, reine 32-Bit’er sind und folglich über den IA32-Execution-Layer (vgl. faq-id=120) nur entsprechend langsam ausgeführt werden können. Dies ist im Falle von WOW64 unter x64 ganz anders. Hier ließ sich Caché mit der gewohnten Agilität einer normalen 32-Bit-Umgebung installieren und auch konfigurieren.
Als Testsystem fürs x64 verwenden wir den HP ProLiant DL380 mit einer dual-core Intel® EM64T CPU 3 GHz/2 MB. Fürs IA64 haben wir sogar zwei Maschinen bereitgestellt. Zum einen den HP Integrity rx2600’er mit 2 x Itanium2 900 MHz/1.5MB, also zwei „McKinley’s“, vgl. faq-id=120 und zum anderen den HP zx6000’er mit 2 x Itanium2 1.5GHz/6MB, also mit der ersten Generation der „Madison’s“. Die Itanium®-Maschinen sind somit mit jeweils zwei CPU’s bestückt, was so etwas wie eine Chancengleichheit gegenüber dem dual-core Xeon® herstellen sollte. Wir wissen, dass die multicore-Technik mit dem Montecito auch bei Itanium® bald Einzug erhalten wird, insofern war es kein technologisches Merkmal, das wir in unserem Test irgendwie zwingend zu simulieren gehabt hätten.
All usere Testmaschinen haben genügend physikalischen Speicher und somit kann Caché jeweils eine beliebige Menge davon zugewiesen werden. Wir verwenden stets das gleiche Dataset, das – in der Größe von ca. 2 GB – Daten und Routinen für zweierlei Algorithmen enthält: A1 und A2. Während der erste der beiden eine Gleitkommadivision öfters in einer der inneren Schleifen durchführen muss, ist der zweite der beiden weitaus weniger rechenintensiv und errechnet entsprechende Durchschnittswerte nur wenige Male in den äußeren Schleifen. Da sind wir gespannt ob die Rechnung von Intel® aufgeht, denn wie wir aus faq-id=120 wissen, sind die vom Pentium® oder Xeon® her bekannten Schaltkreise für eine Gleitkomma-Division beim Itanium® schlicht Fehlanzeige. Insofern stellt sich hierbei auch noch die Frage, ob Intersystems einen Build bereitstellt, der einem Itanium® gut zuarbeitet oder eher nicht. Davon abgesehen wird die Bitmuster-Indizierung beim Durchlaufen von multidimensionalen Datenstrukturen sowohl durch A1 als als durch A2 in etwa gleichermaßen beansprucht.
Ja, dann wollen wir mal. Beginnen wir mit dem A2. Zunächst ist festzuhalten, dass bei dem eher rechenextensiven A2 die Abhängigkeit vom Speicher nicht der Rede wert ist: Ob Caché nun 1.0 GB, 1.5 GB oder gar 2.0 GB hatte, beeinflusste es die Laufzeit genauso wenig, wie ein erneuter Lauf ohne Caché zu restarten; auch der Caching-Effekt ist somit im Falle von A2 zu vernachlässigen.
Wir haben nun folgendes beobachtet: Unter x64 waren es im Schnitt 27 Sekunden Laufzeit. Da konnte zwar der McKinley mit 33 Sekunden nicht ganz mithalten, der Madison gab aber einen ersten Warnschuss ab: 20 Sekunden!
Beim A1 gab es hingegen einen viel deutlicheren Caching-Effekt. Unter x64 brauchte Caché gute 3 Minuten für einen Durchlauf, ein Wert, der bis 1 GB Speicher relativ konstant blieb. Wiesen wir aber Caché 1.5 oder 2 GB zu, konnte der 2. Lauf in weniger als einer halben Minute absolviert werden! Dies ist wirklich als dramatisch zu bezeichnen und zwar in einem sehr positiven Sinne des Wortes, da wir einen solchen Effekt auf einer 32-Bit-Maschine schlicht nicht erzielen konnten. Da wäre also ein Vorteil der 64-Bit-Technologie „zum Anfassen“.
Und was machen daraus unsere Itanium®-Maschinen, haben wir uns gefragt? Um es auf dem Punkt zu bringen, die fuhren alles schlicht in Grund und Boden !!! Bereits der McKinley absolvierte seinen 1. Lauf in konstanten 84 Sekunden unter 1 GB Speicher und konnte unter 1.5 GB den zweiten Lauf bereits in 33 Sekunden abschließen. OK, der „gecacheter“ Lauf war noch knapp oberhalb des x64’ers, der irgendwo bei 28 Sekunden lag, dafür aber machte der Madison alles endgültig klar: 66 Sekunden erster Lauf, 20 Sekunden jeder weiterer!
Überraschung? Wir sagen ja, auch für uns. Denn insbesondere eingedenk des exzellenten Ansprechverhaltens von Caché unter x64 bereits bei der Installation(!) hätten wir so etwas nicht erwartet (vielleicht sollten wir den Begriff der gespürten Performance einführen?). Das Kalkül von Intel® ist jedenfalls vollends aufgegangen und auch Intersystems ist hier ein guter 64-Bit’er (oder einfach nur ein guter Compiler ???) zu bescheinigen. Inwieweit letzteres im Falle von x64 zu relativieren ist, sprich, ob es da evtl. Optimierungspotentiale gibt? Wir denken, eher nicht, denn mit Itanium® vergleichbare Gestaltungsspielräume hat hier der Compiler einfach nicht.