Server-Trends/Eine neue Generation von Servern kommt

26.07.1996

Von Mario Vosschmidt*

So eindrucksvoll die Geschwindigkeitssteigerungen von Einzelprozessoren in der vergangenen Dekade auch gewesen sein mögen, sie waren unzureichend, um mit den stetig weiter steigenden Anforderungen von modernen Anwendungen Schritt zu halten. Deshalb setzen Anwender in zunehmendem Maße Multiprozessor-Systeme ein.

Deren Modularität bietet einige Vorteile. So lassen sich im bestimmten Umfang Prozessoren hinzufügen, um die Leistungsfähigkeit eines Systems zu erhöhen. Außerdem eliminiert die Verteilung der Systemlast über mehrere Prozessoren in der Regel das Risiko eines Systemausfalles.

Die große Mehrheit dieser Mehrprozessor-Systeme für die kommerzielle Datenverarbeitung hatten (und haben) eine Architektur, die man symmetrisches Multiprozessing (SMP) nennt. SMP bietet mehrere Vorteile, einschließlich der Einfachheit der Anwendungsentwicklung und einem Ressourcenverteilungs-Verfahren, das für eine Vielzahl von kommerziellen Anwendungen außerordentlich effizient ist.

In dem Maße aber, in dem mehr Durchsatz von Hochleistungs-Servern gefordert wird, treten zunehmend die Beschränkungen der Ausbauoptionen von SMP-Maschinen zutage, was wiederum ein gewisses Interesse an massiv-parallelen Prozessorsystemen geweckt hat. Das MPP-Konzept wirft aber viele inhärente Schwierigkeiten für den kommerziellen Markt auf - insbesondere das Problem, daß für diese Architektur komplett neue Anwendungen entwickelt werden müssen.

Mit Numa entwickeln nunmehr Hersteller wie Data General (DG) eine Architektur, die den Bedürfnissen von kommerziellen Anwendern besser entspricht und die außerdem dem Wunsch etwa nach plattformunabhängiger Software und Standardhardwarekomponenten entgegenkommt.

Schon heute wird die Numa-Technologie in DGs "88k"-Systemen eingesetzt. Strategische Bedeutung gewinnt sie für DG aber mit Intels neuer Pentium-Pro- Prozessorgeneration sowie deren Nachfolge-CPUs.

Numa-Multiprozessor-Systeme repräsentieren eine Erweiterung der Entwicklung des SMP-Konzeptes, werden es also nicht ersetzen, sondern ergänzen. Numa-Architekturen waren bis vor kurzer Zeit im wesentlichen fast ausschließlich Gegenstand von Universitätsstudien. Dies hat sich erst in letzter Zeit geändert. So nutzt beispielsweise Convex bei seinen "Exemplar-SPP"-Maschinen das Numa-Konzept.

Die Numa-Architektur kann sehr viele Prozossoren unterstützen, ohne daß hierzu bei der Programmierung große Veränderungen vorgenommen werden müßten. Genau dies ist typischerweise bei Massively-Parallel-Processing-(MPP-) und anderen verteilten Hochleistungsarchitekturen nötig.

Ein Betriebssystem-Image für das Gesamtsystem Bei Multiprozessor-Modellen, die für die kommerzielle Datenverarbeitung von Interesse sind, gibt es im Grunde zwei Konzepte: Zum einen das sogenannte Shared-Memory-Konzept, zum anderen Architekturen, die keinen gemeinsamen, sondern verteilte Speicher besitzen. Technisch gesehen handelt es sich jeweils um MIMD-(Mehrfache Instruktionen, Mehrfache Daten-)Computer.

Shared-Memory-Konzepte zeichnen sich durch einen uniformen Speicherzugriff (Unified Memory Access = UMA) aus. Die verschiedenen Prozessoren haben eine gemeinsame Speicherorganisation und nahezu identische Zugriffszeiten. Dieses Konzept wird durch die traditionellen SMP-Systeme repräsentiert.

Etwas anders verhält es sich beim Numa-Konzept: Die CPUs haben zwar auch einen gemeinsamen Speicherzugriff, allerdings kann hier eine CPU auf einen Teil des Speichers schneller zugreifen als auf den Rest des Speichers.

Bei einer Hardware-Architektur mit einem verteilten Hauptspeicher nach dem Norma-(No remote Memory Access-)Prinzip andererseits sind die einzelnen Prozessoren nachrichtenbasiert und können nicht gemeinsam auf den Hauptspeicher zugreifen. MPP-Systeme und Cluster fallen unter dieses Modell.

Kennzeichend für Numa-Architekturen ist unter anderem, daß ein einziges Betriebssystem (Betriebssystem-Image) jede Ressourcenzuweisung und -konkurrenz für das Gesamtsystem kontrolliert.

Der einzige Unterschied zwischen Numa und traditionellen SMP- Architekturen ist dabei, daß die Speicherzugriffszeiten bei SMP- Systemen für alle CPUs nahezu identisch, für Numa-Systeme hingegen verschieden sind. Natürlich hat diese kleine Architekturdifferenz erhebliche Auswirkungen für den Betriebssystem-Entwickler, für den Anwender ist sie jedoch vollständig transparent.

Eine kurze Bemerkung zu den unterschiedlichen Architekturen sei noch gemacht: Ein Cluster mit gemeinsamen Platten wie beispielsweise unter dem Oracle Parallel Server (OPS) erlaubt mehreren Prozessorknoten den Zugriff auf eine gemeinsame Datenbasis durch einen Distributed Lock Manager. Ein OPS-Cluster kann den Benutzern und dem Datenbankverwalter ein einheitliches Systemabbild vorspiegeln. Mit anderen Worten: Die unterschiedlichen Systeme, die den Cluster ausmachen, erscheinen in den meisten Zusammenhängen als ein System, und zwar sowohl für den Benutzer als auch für den Datenbankadministrator. Dies gilt jedoch nicht für den Systemverwalter.

Da der Cluster auch bei der Havarie eines Knoten weiterläuft, zeichnet er sich durch eine sehr gute Systemverfügbarkeit aus. Weiterhin wird, da im Normalfall alle Systeme aktiv sind, die Verarbeitungsleistung eines Clusters besser sein als die eines Systems, das nur aus Hot-Stand-by-Komponenten besteht.

Die Begrenzung für den Cluster mit gemeinsamem Plattenzugriff liegt primär in der Sättigung des Distributed Lock Manager und letztendlich in den gemeinsam genutzen Platten oder der Datenbank selbst. Aus diesem Grunde werden sich größere Cluster zu massiv- parallelen Systemen entwickeln und damit wieder zurückfinden zu dem eher traditionellen Modell der verteilten Datenverarbeitung, bei der jeder Knoten seine eigenen Platten und Datenbanken beziehungsweise Datenbanksegmente besitzt und eine gemeinsame Nutzung dieser Ressourcen nur mittelbar erreicht wird.

Dieses vollständig verteilte oder vernetzte Modell des Multiprocessing wird vor allem im technisch-wissenschaftlichen Umfeld genutzt wie etwa zur Analyse von finiten Elementen und anderen matrizenorientierten Problemstellungen. Sie eignen sich für eine feine Partitionierung besser als typische kommerzielle Aufgaben. Während alle Arten von Multiprozessing davon profitieren, daß man bestimmte Aufgaben aufteilen kann, so daß Threads oder Prozesse mit einem Minimum von Synchronisation ablaufen, ist die Partitionierung eine zwingende Voraussetzung für den Einsatz von massiv-parallelen Systemen.

Kein Ärger bei der Anwendungsentwicklung

Der Reiz von massiv-parallelen Systemen liegt in der Möglichkeit, sehr leicht handelsübliche Hardwarekomponenten als preiswerte Alternative zu großen und teuren Mainframes und anderen monolithischen und ebenfalls teuren Computersystemen zusammenzubauen. Die im wesentlichen unabhängigen Datenströme zwischen Prozessor und Platte in massiv-parallelen Systemen haben das Potential für sehr große Systeme, bei denen die Ressourcenkonkurrenzen nicht zu Durchsatzlimitierungen führen.

Andererseits müssen MPP-Anwendungsentwickler sich mit einer großen Zahl von Lastverteilungs-, Fehlerbehandlungs- und Synchronisationsaufgaben beschäftigen. Und dies, obwohl einige Datenbankhersteller bereits versucht haben, diesen erheblichen Softwarekomplexitäten beizukommen.

Solche Aufgaben erledigen bei einem SMP-System im wesentlichen die Hardware und das Betriebssystem, der Anwendungsentwickler muß sich hiermit nicht herumschlagen, während bei MPP-Systemen erhebliche Softwaremodifikationen notwendig sind, um eine Anwendung für diese Architektur "fit" zu machen.

Wie bei jeder Technik sind auch bei der Entwicklung von Multiprozessor-Systemen die Ziele und Verwendungsmöglichkeiten nicht immer klar voneinander abzugrenzen SMP-Maschinen werden etwa auch in Clustern einge- setzt, um einen besseren Durchsatz und eine bessere Verfügbarkeit zu erreichen. MPP dürfte, wie gesagt, eine Nische für einige bestimmte High-end-Applikationen bleiben.

SMP wird auch weiterhin die dominante Multiprozessor-Architektur in kommerziellen Umgebungen sein, besonders weil das Betriebssystem und die Hardware ein Programmiermodell haben, das wenig verschieden von dem eines Uniprozessor-Systems ist.

Prozessoren werden jedoch immer leistungsfähiger, führen deshalb SMP-Konzepte schnell an ihre Grenzen und verlangen nach neuen Architekturentwicklungen wie etwa dem hybriden Numa-Konzept.

SMP-Systeme eignen sich deshalb gut für die kommerzielle Datenverarbeitung, weil das Modell des gemeinsamen Speichers eine effiziente Ressourcennutzung gewährleistet. Dieser Ansatz steht dem von nachrichtenbasierenden Protokollen entgegen, wie sie in Netzwerken und bei massiv-parallelen Systemen genutzt werden.

SMP-Systeme können so angelegt werden, daß sie nahezu linear skalierbar sind, auch wenn Ressourcen wie Speicher und der System- Bus intensiv von allen Prozessen beziehungsweise Threads gemeinsam genutzt werden. Die Limitierung tritt ein, wenn ein Anforderungsstau für eine globale Ressource entsteht, zum Beispiel wenn nicht genug Zyklen auf dem Bus zur Verfügung stehen, um die Anfoderungen für das Schreiben und Lesen des Hauptspeichers zu befriedigen.

Der Grundgedanke von Numa ist nun, für jede CPU (oder Gruppe von CPUs) sogenannten nahen und fernen Hauptspeicher zur Verfügung zu stellen. Nahen Hauptspeicher sprechen die CPUs über eine Art lokalen Bus an. Ferner Hauptspeicher (der gleichzeitig naher Hauptspeicher einer anderen CPU ist) wird über den System-Bus oder andere zusammenhängende Speicherverbindungsmechanismen angesteuert und hat daher eine größere Latenzzeit (und möglicherweise eine schlechtere Bandbreite).

Zugriffe auf entfernte Speicher sind im Sinne des SMP-Modells trotzdem direkte Zugriffe. Es gibt keinen Nachrichtenaustausch zwischen den CPUs über den Speicherzugriff. Insofern handelt es sich um das gleiche Programmiermodell wie bei konventionellen SMP- Systemen.

Weil viele oder alle Speicherzugriffe auf die lokalen Speicher erfolgen - unterstützt durch eine transparente Betriebssystem- Steuerung -, wird der Verkehr zwischen den CPUs erheblich reduziert. Dies erlaubt nicht nur die Verbindung einer größeren Zahl von Prozessoren, sondern ermöglicht auch einfachere Verbindungen sowie prinzipiell den Einsatz weniger komplexer und preisgünstigerer System-Bus-Konstruktionen.

Numa ist eine Architektur, die auf verschiedene Arten implementiert werden kann. So lassen sich etwa CPU-Boards auf einer Systemplatine zu einem Numa-System konfigurieren. Auch können mehrere Rechnerknoten beziehungsweise Server, die sich Intels SHV-(Standard High Volume-)Platinen zueigen machen und die über einen Bus mit großer Bandbreite verbunden sind, zu einem Numa-System verknüpft werden.

Der Numa-Ansatz liefert eine Reihe von Vorteilen für Anwender, da er die ökonomischen Vorteile von MPP hinsichtlich der Hardware und von SMP hinsichtlich der Software vereint. Durch Verwendung von marktüblichen Standardkomponenten (etwa SHV-Platinen) wird die Notwendigkeit von teuren Spezialkomponenten eliminiert, wie sie bei SMP-Systemen vonnöten ist. Diese Spezialkomponenten, wie etwa große monolithische Bus-Systeme und Speicherkonzepte für maximalen Durchsatz, setzen lange Entwicklungszeiten voraus, sind deshalb auch entsprechend kostspielig.

Numa bietet signifikante Preis-Leistungs-Vorteile

Numa-Implementierung werden signifikante Preis-Leistungs-Vorteile gegenüber traditionellen SMP-Systemen bieten. Zwar läßt sich, vom technologischen Standpunkt gesehen, mit traditionellen SMP- Systemen ein ähnliches Leistungsniveau erzielen wie mit Numa- basierten Systemen. Dies geht allerdings nur mit proprietären Hochgeschwindigkeitssubsystemen, deren Kosten hoch sein werden.

Langfristig werden immer leistungsfähigere Prozessoren traditionelle Verbindungssysteme unmöglich machen. Dies gilt nicht nur wegen der Kosten und der zunehmenden Systemkomplexität, sondern auch wegen der physikalischen Grenzen des Bus-Durchsatzes, der wiederum bedingt ist durch Zykluszeiten und elektromagnetische Störeffekte.

Um Numa-Systeme optimal ausbauen zu können, bedient man sich weiterer Skaliertechniken. So haben etwa die sogenannte Prozessor- und Speicheraffinität zum Ziel, die Referenzen in den Speicher möglichst aus dem Cache oder dem nahen Speicher zu befriedigen. Im Falle der Prozessoraffinität wird dies, wo immer möglich, durch Zuordnung der Thread-Gruppen auf eine Prozessorgruppe erreicht. Die Gruppenbildung ist Aufgabe des Thread-Schedulers.

Intel-Technologie als Basis

Speicheraffinität assoziiert Prozesse mit Speicherressourcen. Die Aufgabe wird dadurch gelöst, daß häufig benötigte Teile des Kernel-Codes im nahen Speicher repliziert werden und Kernel-Daten lokal, also im "nahen" Speicher, erscheinen. Wichtige, zum Prozeß gehörende Daten, werden mit dem Prozeß auf eine andere CPU gelagert, falls das erforderlich wird. Physische Speicherblocks werden dem anfordernden Prozeß lokal zugeteilt.

Die Lastverteilung zwischen den Modulen dient der Vermeidung von Ressourcenengpässen. Die Anwendungslast wird gerecht auf die vorhandenen Ressourcen wie Speicher, Verbindungssysteme und CPU verteilt. Dazu ist die Erweiterung der klassischen Speicherverwalter vom linearen Modell hin zu mehrdimensionalen, hierarchischen Konzepten notwendig.

Wie bereits gesagt, kann Numa den Architekturrahmen für sehr große Shared-Memory-Multiprozessor-Systeme darstellen. Diese Systeme können sowohl aus traditionellen Multiprozessor-Systemen als auch aus sehr preiswerten Standardmodulen bestehen. Mittelfristig dürften sich als wichtigste Komponente von Numa-Systemen Intels SHV-Prozessormodule herauskristallisieren. Preiswerte Verbindungssysteme werden die bislang herstellerspezifischen und teuren Bus-Systeme der Vergangenheit ablösen. Betriebssysteme und Plattformsoftware, die für die Numa-Architektur optimiert wurden, können die Leistungsdifferenz zu klassischen SMP-Systemen leicht überbrücken, wobei das Numa-System wesentlich kostengünstiger ist.

Ein Numa-System, das aus mehreren SHV-Komponenten besteht, ist zudem prinzipiell redundant. Einzelkomponenten können leicht ausgetauscht werden, was so weit geht, daß sich in einem Numa- System komplette Rechnereinheiten, Rechnerknoten, austauschen lassen. Trotzdem wird die Zeit, während der das Numa-System nicht verfügbar ist, minimal sein.

Die Numa-Architektur vermeidet ferner die Verwendung herstellerspezifischer Erweiterungen bei Programmiersprachen und Datenbanken, die etwa typisch sind für MPP-Systeme.

Angeklickt

Numa verspricht signifikante Verbesserungen des Preis-Leistungs- Verhältnisses gegenüber traditionellen SMP-Systemen, wobei das einfache Programmiermodell erhalten bleibt. MPP-Systeme weisen in puncto Hardware preislich vergleichbare Vorteile auf. Dieser Pluspunkt geht jedoch durch den Aufwand, der bei MPP-Maschinen bezüglich der Software-Entwicklung zu leisten ist, wieder verloren. Langfristig kann Numa die besten SMP-Implementierungen übertreffen.

*Mario Vosschmidt ist Leiter Systemberatung der Data-General- Niederlassung Düsseldorf in Neuss. Bei dem Artikel handelt es sich um einen stark gekürzten White-Paper-Beitrag von Vosschmidt.