Job-Sharing im Rechner

Digitale Systeme mit verteilten Architekturen

Von-Neumann-Rechner und deren moderne Derivate enthalten eine Recheneinheit, die bestimmte Grundoperationen ausführen kann, z.B. die Addition und Subtraktion 16-stelliger Binärzahlen. Diese eine Recheneinheit wird, gesteuert durch ein Programm, wiederholt für eine mehr oder weniger lange Folge von Elementaroperationen verwendet, die dann zusammen eine komplexe Berechnung ergeben. Die Zwischenergebnisse aus den einzelnen Operationen werden solange gespeichert, wie sie für spätere Schritte benötigt werden. Da dieselbe Recheneinheit die ganze Arbeit tut, spricht man hier von einer zentralisierten Architektur, während in einer verteilten Architektur mehrere Recheneinheiten verwendet würden. Moderne CPUs führen Hunderte von Millionen Elementaroperationen pro Sekunde aus. Da die Rechenzeit oder die Anzahl der in einer Berechnung nacheinander ausgeführten Operationen unbeschränkt ist, kann ein von-Neumann-Rechner jede Berechnung ausführen, die sich überhaupt aus Elementaroperationen zusammensetzen lässt. Er ist ein sogenannter Universalrechner. Beschränkt ist jedoch die Geduld seiner menschlichen Benutzer, so dass in vielen Anwendungen die benötigte Rechenzeit unakzeptabel hoch ist und das Bedürfnis nach noch schnelleren Rechnern entsteht. In einer Reihe von Rechneranwendungen müssen Berechnungen sogar in Bruchteilen einer Sekunde ausgeführt werden. Dies gilt z.B. für die Berechnung von Videosequenzen oder für die digitale Audiosignalverarbeitung, wo der Rechner alle 23µs bereits einen neuen Eingabewert erhält.


Bild1: Parallelrechner PENTAGON

Für solche hohen Anforderungen können nun Rechner mit verteilten Architekturen herangezogen werden, in denen mehrere oder gar viele Recheneinheiten zeitgleich arbeiten. Ein einfacher Ansatz besteht darin, mehrere von-Neumann-Rechner mit jeweils einer Recheneinheit über Schnittstellen zu koppeln, so dass Zwischenergebnisse von einem zum anderen übergeben werden können. Damit ist zugleich die Möglichkeit gegeben, die nun parallel vorhandenen Recheneinheiten auch zeitsequenziell mehrfach für verschiedene Teile der Berechnung zu verwenden, da ja jede einzelne Recheninheit durch ein Programm gesteuert wird. Die verteilte Anordnung kann genau den Anforderungen einer gegebenen Anwendung entsprechend dimensioniert werden, indem man über Art, Anzahl und Ver-schaltung der Prozessoren verfügt. Während jede Anwendung auf einem von-Neumann-Rechner durch ein geeignetes Steuerprogramm implementiert wird, muss für die verteilte Architektur auch die Hardware dimensioniert und verschaltet werden, und statt eines Steuerprogrammes müssen viele separate erstellt werden. Zwischenergebnisse können nicht einfach gespeichert, sondern müssen bei Bedarf auch an andere Rechner übergeben werden.

Der Arbeitsbereich TI6 (FSP 4-11) befasst sich mit der Entwicklung, Beschreibung und Dimensionierung von verteilten Architekturen und Techniken für ihre Anwendungsprogrammierung. Seit seiner Gründung im Oktober 1991 sind eine Reihe von parallelen Systemarchitekturen entwickelt worden, zunächst auf Grundlage verschiedener, kommerziell erhältlicher Prozessoren, später mit eigenen Netzwerk- und Prozessorarchitekturen. Parallel dazu wurde eine Programmiertechnik und ein Compiler weiterentwickelt, die auf große und auf gemischte Netzwerke von Prozessoren als Zielsysteme passen. Für Anwendungen, in denen Binäreingänge komplexen logischen Funktionen unter-zogen werden, ist z.B. das FPGA (ein integriertes Array von anwendungsspezifisch konfigurierbaren und verschaltbaren Gatterzellen) eine attraktive Zielarchitektur, die bereits für sich ein Netzwerk von einfachen Prozessoren darstellt. FPGAs und von-Neumann-Prozessoren können nun in gemischten Systemen eingesetzt und mit einer gemeinsamen Programmiertechnik behandelt werden. Ein besonders reizvoller Aspekt unserer Forschungsrichtung liegt in den vielfältigen Wechselbezügen zwischen Rechnerarchitekturen, Softwaretechnik und der Adaption an Anwendungen. Neben die im folgenden skizzierten, auch prototypisch realisierten Architekturentwicklungen treten theoretische Arbeiten über automatische Parallelisierung, das Scheduling in Prozessor-Arrays und Kryptologie.

Bild 1 zeigt den 1994 in Betrieb genommenen Parallelrechner PENTAGON. Er wurde seitdem in vielen Projekten eingesetzt, erweitert, und auch von einem anderen Arbeitsbereich zur Simulation von ATM-Netzwerken nachgebaut. Die Rechenleistung des PENTAGON ist für heutige Begriffe eher moderat, die Architektur jedoch nach wie vor aktuell, so dass er ein attraktiver Zielrechner für Forschungsvorhaben bleibt. Der PENTAGON ist ein fest verschaltetes Netzwerk von 125 Signalprozessoren und 50 PowerPC- Prozessoren. Jeder Signalprozessor ist über sechs Schnittstellen mit ebensovielen Nachbarprozessoren verbunden. Müssen Daten an einen Prozessor gesendet werden, der nicht Nachbar ist, so muss die Sendung über mehrere Zwischenknoten geleitet werden. Auf dem PENTAGON wurde eine automatische Programmverteilung für parallele Programme implementiert. Diplomarbeiten gab es über Virtuelle Realität, Künstliches Leben und Digitale Signalverarbeitung.


Bild2:
Experimentalrechner ER2

Der 1998 fertiggestellte Experimentalrechner ER2 (Bild 2) enthält über 500 Prozessoren, darunter allerdings recht einfache 16-bit-Prozessoren, und führt bis zu 40 Milliarden arithmetische Operationen pro Sekunde aus. Die Besonderheit seiner Architektur liegt in der Konfigurierbarkeit seines Verbindungsnetzwerkes. Über elektronische Schalter (sog. Crossbars) an den einzelnen Rechnerknoten können Schnittstellensignale direkt duchgeschaltet und an einen entfernteren Prozessor weitergeleitet werden. Das Weiterreichen von Nachrichten über Zwischenknoten mit dem damit verbundenen Zeitaufwand entfällt dadurch. Dafür muss für jede Anwendung eine Verbindungsstruktur definiert und konfiguriert werden, wie es in ähnlicher Weise sonst nur für die FPGA-Programmierung nötig ist. Nach der Hardwareentwicklung und der Bereitstellung von Programmierwerkzeugen beginnen nun erste Anwendungen. Der ER2 ist in hervorragender Weise für die Implementierung künstlicher neuronaler Netzwerke geeignet. Im Gegensatz zu konventionellen Architekturen kann die Verbindungshardware adaptiert werden, wie es auch von natürlichen Nervensystemen bekannt ist.

Die Crossbar-Netzwerkarchitektur des ER2 wurde auch für eine seit 1996 entwickelte, universelle Architektur für parallele Systeme übernommen, die einen eigenen 16-bit-Prozessor als Knotenrechner definiert. Die Chipimplementierung eines eigenen Prozessors ausschließlich für Forschungs-zwecke ist zu aufwendig. Der Prozessor wurde aber unterdessen auf der Basis von FPGAs implementiert. Eine Chiprealisierung kann erfolgen, nachdem die Architektur in der FPGA-Version erprobt worden ist. Die Integration eines programmierbaren Prozessors in ein FPGA ist auch für Anwendungen reizvoll, weil sich so Prozessoren mit speziellen Grundoperationen realisieren lassen. Der 16-bit-Prozessor ist so ausgelegt, dass einfache Anwendungen in der MSR und Signalverarbeitung von einem einzelnen Prozessor bearbeitet werden können. In einem größeren Netzwerk von Prozessoren kann dennoch eine beliebig hohe Rechenleistung erbracht werden. Die vorhandene FPGA-Realisierung erlaubt bereits die Implementierung kleinerer Netzwerke. Der Prozessor ist ferner so ausgelegt, dass er recht effektiv in einer höheren Sprache programmiert werden kann, für die sich dann gleich der erwähnte Compiler für gemischte Systeme anbietet. Da dieser auch die FPGA-Programmierung unterstützen kann, lassen sich in derselben Softwareumgebung Spezialprozessoren und Anwendungsprogramme dafür implementieren. Diese Integration der Hard- und Softwareentwicklung wird auch in einem Promotionsprojekt verfolgt.

F. Mayer-Lindenberg
Technische Informatik VI, AB 4.11
Tel.: (040) 42878-3055
mayer-lindenberg@tuhh.de