Auch Speicher, Netzgeschwindigkeit und Kanäle wichtig

Die Peak-Performance ist für das System nicht entscheidend

16.10.1992

Massiv-parallele Systeme sind nicht mehr nur in akademischer Umgebung zu finden, sondern werden zu einem realen Faktor in der DV-Industrie. Das ist darin begründet, daß Tflops (und auch schon 100 Gflops) nur noch mit massiv-parallelen Systemen zu realisieren sind, da die Prozessortechnologie für Einzelprozessoren schon im Gflops-Bereich an physikalische Grenzen stößt.

Auch wenn sich die Experten über den Vormarsch von massiv-parallelen Systemen mit Distributed-Memory schon lange einig sind, gibt es noch zwei wesentliche Punkte, die die Güte eines Systems bestimmen: welche Netztopologie zum Einsatz kommt, und ob als Prozessoren Eigenentwicklungen oder Standard-Chips verwendet werden.

Bei Ncube nun wird die dichteste noch in Hardware realisierbare Netztopologie, der Hypercube, verwendet. Außerdem kommt ein Chip zum Einsatz, dessen Charakeristik man am ehesten mit "System auf einem Chip" bezeichnen kann.

Kompromisse zwischen Design und Einsatz

Werden Standard-Chips für massiv-parallele Systeme verwendet, so müssen Kompromisse zwischen den Designzielen dieser Chips, die in der Regel für Workstations entwickelt wurden, und dem Einsatz in einem rnassiv-parallelen System eingegangen werden. Dies kann sich unter Umständen als sehr schwierig -ja sogar als unmöglich - erweisen, denn die Leistung eines massiv-parallelen Systems hängt nicht nur von der CPU-Leistung des Einzelprozessors ab, sondern zusätzlich noch von der Speicherbandbreite zum lokalen Speicher, der Transfergeschwindigkeit innerhalb des Netzes und von der Anzahl von Kanälen im Netz.

Wichtig ist, daß zwischen diesen vier Kriterien eine ausgewogene Balance besteht. So hat beispielsweise Ncube Funktionseinheiten wie "Message Passing Unit" und "Memory Management Unit" auf dem Chip etabliert. Damit sind für dieses System nur zehn Prozent der Bauteile notwendig. Da bei solchen Lösungen nicht ein Extremwert, zum Beispiel höchste MIPS-Rate, das wesentliche Designziel ist, liegt auch die Wärmeabgabe (zwischen zwei bis vier Watt) meist in einem Bereich, der es erlaubt, Tausende von Prozessoren mit herkömmlichen Mitteln, zum Beispiel durch Luft, zu kühlen.

Verfügt jeder Prozessor über einen eigenen I/O-Kanal, läßt sich Parallel-I/O realisieren. So kann zum Beispiel bei Datenbanken jeder Prozessor unabhängig von anderen auf Blöcke und Records innerhalb von Dateien zugreifen. Numerische Simulationen nützen das Parallel-I/O um Zwischenresultate der einzelnen Prozessoren so schnell als möglich auf einem Grafikbildschirm ausgeben zu können. Die Fülle der Einsatzmöglichkeiten von Parallel-I/O ist fast unbegrenzt und reicht von Hippi über CTR bis zum Frame Buffer.

Werden die oben spezifizierten Kriterien bei den Prozessoren ausgewogen berücksichtigt, steht die Sustained Performance des Gesamtsystems im Vordergrund und nicht die Peak Performance singulärer Elemente.

Diese Strategie ermöglicht es, auch weiterhin eigene Prozessoren zu entwickeln, da bewußt nicht bis an physikalische Grenzen gegangen wird.

Ein Ncube-System beispielsweise läßt sich im wesentlichen auf zwei Arten in eine bestehende Rechnerumgebung einbinden. Über Ethernet mit TCP/IP kann es mit jedem Rechner im Netz direkt verbunden werden. Diese Verbindung ist vor allem für Filetransfer (FTP) und den Einsatz des Systems als Datenbankserver interessant. Um den Programmierer bei der Entwicklung paralleler Programme in seiner gewohnten Unix-Umgebung arbeiten zu lassen, stehen Crosscompiler für Unix-Workstations zur Verfügung. Diese können auf Sun- beziehungsweise SGI-Host-Rechnern installiert werden, welche wiederum über eine VME-Verbindung mit dem Ncube kommunizieren.

Alle Tools sind in dem Softwarepaket "PSE" zusammengefaßt. Basis für das PSE ist das Betriebssystem "NCX", ein Unix-Microkernel, der alle Funktionen, zum Beispiel Message Passing, Multitasking, File I/O, Networking etc., übernimmt. Da sich die Größe des Betriebssystems bei massiv-parallelen Systemen sofort mit der jeweiligen Prozessorenzahl multipliziert, ist es unbedingt erforderlich, den Platz für das Betriebssystem möglichst klein zu halten. Bei Ncube werden 150 KB pro Prozessor für das Betriebssystem benötigt.

Das PSE bietet die Funktionalität des Industriestandards Unix System V, Release 4, und enthält neben dem ANSI-Fortran-77-Compiler einen C- und C+ + -Compiler sowie einen Parallel Symbolic Debugger,

Performance Monitor und Libraries. Zusätzlich unterstützt PSE den Industriestandard "Express" und die "Linda"-Programmierumgebung.

In den letzten zwei Jahren hat sich die Softwarepalette für massiv-parallele Systeme stark vergrößert, da mit ihnen Simulationen effizient durchgeführt werden können, die bisher auf Vektorrechnern nur unter erheblichem Aufwand realisierbar waren. Der Grund ist vor allem darin zu suchen, daß man bei den Vektorrechnern sehr oft etwas Widersinniges tun mußte: Viele Algorithmen wurden mühsam entparallelisiert, um sie überhaupt vektorisieren zu können. Das führt bei vielen Algorithmen zwangsläufig in eine Sackgasse, nämlich dann, wenn die Vektorisierung wenig erfolgreich ist.

Dagegen gestaltet sich die Entwicklung eines Parallelprogramms sehr oft viel einfacher, da unter Umständen der zugrundeliegende Algorithmus bereits parallelisierbar ist und zusätzlich eine Technik zum Einsatz kommen kann, die bei Ingenieuren schon seit geraumer Zeit bekannt ist und erfolgreich genutzt wird: Domain Decomposition.

Anwendungsgebiete für parallele Algorithmen sind

- Strömungsmechanik,

- Strukturmechanik mit Finite-Elemente-Methoden,

- neuronale Netze,

- Echtzeit-Anwendungen, zum Beispiel Roboter,

- Text-Retrieval,

- relationale Datenbanken, etwa Oracle.

Im Fall von Oracle laufen mehrere Daten-Server parallel und unabhängig voneinander auf den jeweiligen Prozessorknoten, wobei jeder Server einen Teil der Client-Anforderung übernimmt. Die Anzahl von Servern ist beliebig; zusammen bilden sie einen parallelen Server.

Zu jedem parallelen Server existiert ein Parallel Cache Manager, der über die augenblickliche Verteilung von Blöcken in den einzelnen Servern Buch führt. Er garantiert auch, daß die Daten konsistent auf die Platten geschrieben und unnötige Quittierungen vermieden werden. Das Parallel-Server-Konzept von Oracle ermöglicht, eine relationale Datenbank auf ein MIMD-System wie Ncube zu bringen.

*Horst Gietl ist System Manager bei der Ncube Deutschland GmbH in München.

Hypercube: Architektur und Dimensionsberechung

Hypercubes zeichnen sich eine hohe Netzdichte aus: Jeder Prozessor ist mit einer Vielzahl von Nachbarn verbunden. Die Anzahl der Prozessoren in einem Hypercube beträgt immer eine Zweierpotenz 2n, dabei wird n als Dimension (oder Ordnung) des Hypercubes bezeichnet. Am leichtesten läßt sich die Hypercube-Architektur induktiv beschreiben: Ein Hypercube der Dimension n wird aus zwei Hypercubes Hi, i = 1,2 der Dimensionen n-1, dadurch erzeugt, daß jeder Prozessor in einem Hypercube H1 mit dem korrespondierenden Prozessor, im anderen Hypercube H2 verbunden wird. Hier wird schon deutlich, wie sich mit wachsender Anzahl von Prozessoren auch die Anzahl der Verbindungen erhöht: Wird aus zwei Hypercubes der Dimension n-1 ein Hypercube der Dimension n erzeugt, so werden 2(n-1) neue Verbindungen erzeugt.

Eine weitere interessante Eigenschaft ist, daß die Dimension n zusätzlich auch die maximale Weglänge Maxn (die Distanz der zwei am weitesten voneinander entfernten Prozessoren) bestimmt. Es gilt: Maxn = n. Beim Übergang von der Ordnung n-1 zur Ordnung n erhöht sich trotz Verdoppelung der Prozessoranzahl die maximale Weglänge nur um 1.

So können Systeme realisiert werden, die aus einer Kombination unterschiedlicher Hypercubes bestehen: 2N + 2M + .. + 2L Prozessoren mit N = M = ... = L, so daß die Anzahl der Prozessoren bei Erweiterungen keineswegs verdoppelt werden muß.