Next: CIP/PC-Pools Up: Convex-Software auf dem Previous: Cluster System Administration

MLIB - Veclib und Lapack auf den HPs

Unter /usr/local/lib findet man auf den Cluster-Maschinen die Veclib- und Lapack-Bibliotheken, die zur Convex-Version äquivalent sind. Sie wurden von Convex für die HP-PA-RISC-Architektur handoptimiert. Um zu sehen, wie gut diese Optimierung gelungen ist, habe ich zwei Algorithmen, nämlich die Lösung eines linearen Gleichungssystems mit LU-Zerlegung und eine einfache Matrix-Multiplikation, auf drei verschiedene Weisen implementiert, nämlich mit eigenem Fortran-Code, NAG und Veclib, und die Ausführungszeiten für verschiedene Matrix-Größen gemessen. Im einzelnen wurden folgende Routinen benutzt:

Die Fortran-Routinen wurden jeweils mit der Option +OP übersetzt, was gegenüber der nicht-optimierten Version eine Beschleunigung von 1.8 für die LU-Zerlegung und von 18.7 für die Matrix-Multiplikation ergab. Analyse des optimierten Codes zeigte, daß die innere Schleife der Matrix-Multiplikation durch den Aufruf einer Routine aus einer HP-eigenen ``Vektor-Bibliothek'' ersetzt wurde. Dies macht den Vergleich mit der Veclib natürlich besonders interessant.

Die Ergebnisse dieser Messungen zeigen die Abbildungen 1 und 2 (in doppelt-logarithmischer Darstellung). Daß die einfache LU-Zerlegung gegenüber der NAG um den Faktor 2.4 langsamer ist, verwundert nicht weiter. Daß allerdings die Veclib wiederum 6.8 mal schneller ist als die NAG, ist schon sehr erstaunlich. Noch spannender sind die Ergebnisse für die Matrix-Multiplikation: Daß der ``Handcode'' hier durch die Optimierung zu einer HP-eigenen Routine geworden ist, erklärt sein gutes Abschneiden gegenüber der NAG. Die Veclib-Version ist aber noch 8 mal schneller, d.h. die Programmierer von Convex haben hier also die HP-Leute auf deren eigenen Maschine um Längen geschlagen. Dies ist bei genauerem Nachdenken gar nicht so erstaunlich: Die Architektur einer modernen superskalaren Workstation wie der HP9000/700 ist durch Pipelining und mehrfache Funktionseinheiten der eines Vektorrechners immer ähnlicher geworden, so daß das Knowhow von Convex sich hier bezahlt macht.

Fazit: Wie auf der Convex ist auch auf dem Cluster die Verwendung der Veclib für numerische Anwendungen ein Muß.

Peter Junglas

Anmerkung: Wie bereits auf der Convex C3840 werden wir baldmöglichst die Routinen der NAG, die auch in der Veclib enthalten sind, durch das entsprechende optimierte Gegenstück ersetzen. Bei der Verwendung von NAG-Routinen wird dann i.a. auch die Anbindung der Veclib erforderlich - und so die performance hoffentlich deutlich verbessert sein.



Next: CIP/PC-Pools Up: Convex-Software auf dem Previous: Cluster System Administration