Serie: Multiprozessor-Architekturen (Teil 4)

Das ideale Multi-CPU-System als alternativer Mainframe

04.04.1997

Die COMPUTERWOCHE hat vor zwei Wochen (siehe Nr. 12 vom 21. März 1997, Seite 37: "Das Multi-CPU-System...") ihre in loser Folge erscheinende Berichterstattung über Multiprozessor-Architekturen mit einem Vergleich der vier im wesentlichen auf dem Markt vertretenen Parallelrechnertypen fortgesetzt: Massiv-parallele Systeme (MPP), auch Message-Passing-Systeme oder Distributed-Memory-Systeme genannt; MPP-Systemen ähnliche Cluster-Systeme, die aber auf SMP-Knoten basieren; SMP-Architekturen, die auch als Shared-Memory-Multiprocessor-Systeme bezeichnet werden, und Parallel-Vector-Processor-(PVP-)Systeme. Im folgenden greift die CW weiterhin auch auf einen Vortrag zurück, den Daniel Lenoski veröffentlicht hat. Lenoski ist in SGIs Advanced Systems Division Director of Engineering.

SMP-Systeme haben unter diesen Parallelrechner-Varianten das besondere Interesse von Herstellern und Anwendern gefunden. Das liegt an dem ihnen zugrundeliegenden Programmiermodell, das herkömmlichen Software-Anwendungen entgegenkommt, weil es sich dem Uni-Prozessor-Modell viel mehr anlehnt als das Message-Passing-Verfahren. Shared-Memory-Architekturen erlauben auch eine kürzere Latenzzeit bei der Kommunikation zwischen Prozessoren (Interprozessorkommunikation). Schließlich können der große gemeinsame Arbeitsspeicher sowie die I/O-Ressourcen in einer SMP-Architektur von allen Prozessen, die auf dem System laufen, angesprochen werden. Dies sind die wesentlichen Unterschiede zu MPP- und Cluster-Systemen.

Kein Wunder, daß sich alle Systemhersteller von Anbeginn auf diese Architektur gestürzt haben. SGI hat nun mit den vergangenen Herbst eingeführten "Origin"-Maschinen ihre sogenannte Scalable Symmetrical Multiprocessing Architecture (S2MP) vorgestellt, die im folgenden beschrieben wird.

S2MP-Maschinen, argumentiert SGI-Mann Lenoski, vereinen die Vorteile der vorgenannten Parallelarchitekturen, wobei sie sowohl das Programmiermodell als auch die niedrige Latenzzeit von SMP-Systemen beibehalten. Die Bus-Struktur von SMP-Maschinen ist dabei der Schlüssel, der zwar für eine wünschenswerte enge Integration (tight integration) und die Cache-Kohärenz verantwortlich zeichnet, andererseits aber auch der limitierende Faktor für die Skalierbarkeit von SMP-Systemen ist. Die fixe, nicht veränderbare Bandbreite des Busses gibt dabei auch die Begrenzung bei der Zahl der maximal sinnvoll einsetzbaren Prozessoren vor.

Um diesem Problem zu begegnen, ersetzte man den Bus durch einen Switch. Dieser Switch löst das Problem des Bus-Flaschenhalses, weil jetzt die Bandbreite mit der Größe des Systems mitwächst. Allerdings muß bei Switch-basierten SMP-Architekturen auch die Art und Weise, wie die Cache-Kohärenz gewährleistet wird, gegenüber herkömmlichen SMP-Systemen verändert werden. Bei Bus-basierten SMP-Maschinen muß jede Veränderung im Speicher allen anderen Speichern im sogenannten Snooping-Verfahren mitgeteilt werden. Bei Switch-basierten SMP-Systemen fügt man den Speichern Directories hinzu. So "weiß" der Hauptspeicher, welcher Prozessor jeweils eine Kopie eines bestimmten Speicherblocks bereithält.

Ohne Bus kein Flaschenhals

Ein Switch-basiertes SMP-System ist im Vergleich zu einem Bus-basierten wesentlich skalierbarer, weil der Bus-Flaschenhals aufgehoben ist. Auch ist die Modularität des Systems verbessert, weil mit der Zahl der Prozessoren auch die der Switches wachsen kann, um so eine höhere Verbindungsleistung zu erzielen. Aber mit den Switches erhöht sich unter anderem die Latenzzeit.

Um dieses Problem zu umgehen, nutzt man sogenannte DSM-Systeme (DSM = Distributed Shared Memory). Bekannter sind diese Architekturen unter der Bezeichnung Numa (Numa = Non-uniform Memory Access).

Hierbei gibt es lokale Bereiche mit Prozessoren und deren jeweiligen Cache-Speichern, die über einen lokalen Switch mit I/O-Systemen und dem Hauptspeicher untereinander eng verbunden sind. Der lokale Switch kommuniziert nun über eine sogenannte globale Switch-Verbindung mit anderen, identisch aufgebauten Systemsegmenten (siehe Grafik).

Vorteil dieser DSM-Struktur: Innerhalb eines definierten Systemsegments liegen Prozessor/Cache, Hauptspeicher und I/O-Subsysteme näher beieinander. Innerhalb dieses Teilrechnersystems kann die Latenzzeit also niedrig gehalten werden. In solch einer DSM-Struktur belasten die jeweiligen Speicher und I/O-Systeme auch nicht die Bandbreite der globalen Verbindungsstruktur.

Dies steht im Gegensatz zu traditionellen Bus-basierten SMP- oder Switch-basierten PVP-Systemen: Bei diesen sind alle Speicher gleich weit von den Prozessoren entfernt, die einen einheitlichen Zugriff, also einen Uniform Memory Access (UMA) auf alle Speichersegmente besitzen. Numa-Architekturen, die lokale und entfernte Cache-Speicher-Strukturen unterstützen, werden auch als Cache-kohärente Numa-Systeme (cc:Numa) bezeichnet.

DSM- oder cc:Numa-Architekturen haben prinzipiell die gleiche Grundstruktur und damit Skalierbarkeit wie MPP-Maschinen oder Workstation-Cluster. In DSM-Systemen könne alle CPUs auf I/O-Subsysteme und letztere auf jedes Speichersegment zugreifen. Im Vergleich zu Switch-basierten SMP-Systemen werden bei DSM- beziehungsweise Numa-Maschinen der Speicher und die I/O-Ressourcen zusammen mit den Prozessoren aufgesplittet und verteilt.

Wesentlich ist folgendes: Die meisten DSM- und Switch-basierten SMP-Rechner bauen auf eine Directory-basierte Cache-Kohärenz. Diese Art, einen Datenabgleich sicherzustellen, ist von großer Bedeutung, damit ein übergreifendes Caching aller Speicher möglich wird, also auch solcher, die von mehreren Prozessoren gemeinsam genutzt werden, ohne daß hierzu herkömmliche Snooping-Methoden angewandt werden müssen.

Von zentraler Bedeutung beim Directory-basierten Cache-Kohärenz-Modell ist, daß bei allen Operationen, die notwendig sind, um Cache-Speicher-Kohärenz zu realisieren, nur die Prozessoren involviert sind, die die jeweils betreffenden Speicher- oder Datenblöcke vorher gelesen oder geschrieben haben. Der durch Cache-Kohärenz-Operationen entstehende Overhead hält sich also in Grenzen.

Für das Directory-basierte Kohärenzmodell spricht auch, daß hierbei Speicher und Direc- tories immer nur mit den Prozessoren und nie miteinander kommunizieren. Deshalb kann auch die Bandbreite zu den globalen Cache-Speichern vergrößert werden, indem man zusätzliche Speicherbank-Module in das System integriert beziehungsweise bei DSM- oder Numa-Systemen, indem man Rechnerknoten hinzufügt.

Das erste kommerziell genutzte DSM-System war 1991 der "KSR1"-Rechner von Kendall Square Research (KSR). Mit dieser US-Firma, die allerdings bereits vor Jahren in Konkurs ging, hatte auch SNI ein OEM-Abkommen zum Vertrieb der KSR1-Rechner. 1993 stellte ferner Convex (heute ganz im Besitz von Hewlett-Packard) seine "Exemplar"-Maschine vor.

SGI konkurriert mit Sequent, DG und Convex

Die zweite Generation von DSM-Maschinen stammt heute von SGI ("Origin"), Sequent ("Numa-Q") und Data General ("Numaliine"). Convex hat gemeinsam mit HP den "Exemplar"-DSM-Nachfolger vorgestellt, die "X"-Systeme.

Will man nun die Leistungsfähigkeit verschiedener Distributed-Shared-Memory-Systeme einschätzen, sollte man einen Blick auf deren System-Block-Diagramm werfen. Dieses ist dem eines Distributed-Memory- oder Message-Passing-Systems sehr ähnlich. Der einzige Unterschied zwischen diesen beiden Konzepten ist die Art und Weise, wie auf die Verbindungs-Netztopologie und auf Speicher in entfernteren Rechenknoten zugegriffen wird. Bei DSM-Architekturen wird der direkte Zugriff auf entfernte Speicher durch spezielle Hardware unterstützt. In Message-Passing-Systemen ist dies anders: Hier laufen die Zugriffe nur indirekt ab, indem Botschaften zwischen den Prozessorknoten hin- und hergereicht werden. Bei diesen Systemen ist es nicht möglich, daß entfernte Speichersegmente direkt miteinander kommunizieren.