Performance-Messungen an SMP Shared-Memory-Systemen

Helmut Mastal

Nach der Lieferung und Installation der drei Silicon Graphics Power Challenge R10000-Systeme als Server für freie Programmierung entstanden folgende Fragestellungen:

Schon die ersten Untersuchungen sowie die für diese SMP(Symmetric Multiprocessing)-Server gelieferten Bench- mark-Resultate haben gezeigt, daß die Beantwortung der Fragen sehr stark davon abhängt, welche Jobtypen man zur Durchsatzmessung heranzieht, insbesondere mit welcher Intensität auf das Shared-Memory während des Meßlaufes zugegriffen wird.

Aus diesem Grund wurden zwei Jobs aus dem Benchmark der TU Wien herausgegriffen, der Job "lapw1", der mit sehr hoher Intensität auf das Memory zugreift, und der Job "monte", der nur äußerst wenig auf das Memory zugreift, d.h. mit dem Second-Level-Cache im wesentlichen auskommt. Beide stellen die Randpunkte eines Spektrums von Jobs dar, das für Anwendungen der TU Wien typisch ist.

Beide Jobs wurden mit einer Vielfachheit x, wobei x beginnend mit 2 in Schritten von 2 bis zu einer maximalen Prozessorzahl von 20 lief, gerechnet. Der sich ergebende Durchsatz wurde der verwendeten Prozessorzahl gegenübergestellt. Der so gewonnene Durchsatzfaktor, der angibt, um wieviel Mal höher der Durchsatz als der eines Einprozessorsystems ist, wurde in Abhängigkeit von der Prozessorzahl dargestellt.

Abb. 1

Die beiden Jobs zeigen so dargestellt ein äußerst unterschiedliches Verhalten. Der gemessene Durchsatzfaktor des Jobs "monte" ist vollkommen linear von der Prozessorzahl abhängig (Abb. 1) und deckt sich mit der Funktion P=x. Das bedeutet, würde man nur den Job "monte" zugrunde legen, so wäre Skalierbarkeit beliebig weit gegeben, ein SMP-System wäre immer günstiger als Einzelsysteme.

Abb. 2

Hingegen sind beim Job "lapw1" deutlich zwei Abschnitte in der funktionellen Abhängigkeit des Durchsatzfaktors (Abb. 2) zu erkennen. Bis zur Prozessorzahl x=9 ist eine weitgehende Deckung mit der Funktion P=kx/(x+k) mit k=82,7 zu erkennen, was auch einem theoretischen Modell entspricht. Darüber schwenkt der Verlauf der Funktion in P=7,8 (konstant) ein. Oberhalb von 20 wird der Verlauf sogar leicht abnehmend. Das heißt, für diesen Jobtyp ist Skalierbarkeit nur bis zu einer Prozessorzahl 10 gegeben, Zuwächse werden bis ca. 14 erreicht.

Tatsächlich hat man es im realen Betrieb selten mit einem einzigen Jobtyp zu tun, sondern meist mit einem Mix unterschiedlicher Jobs. Unter der Voraussetzung, daß die Memory-intensiven Jobs nicht den Mix dominieren, kann davon ausgegangen werden, daß bis zu 20 CPUs pro System Skalierbarkeit gegeben ist, darüber aber mehrere Systeme günstiger sind (Abb. 3). Es wurde daher mit der Produktions- konfiguration 16-20-20 CPUs begonnen.

Abb. 3

Eine interessante Frage blieb bis jetzt offen: Von welchen Teilen des Memory-Zugriffspfades rühren die beiden Abschnitte im Diagramm von Memory-intensiven Jobs her? Darüber gibt es Vermutungen, die aber durch weitere Messungen noch erhärtet werden müßten.


Zum Inhaltsverzeichnis, Pipeline 20, Oktober 1996