Konzepte und Beispiele paralleler Rechnerarchitekturen (III):

Gebündelte Mikrorechner liefern MFLOPS zum Discount-Preis

21.06.1985

Will man den in vielen Programmen explizit oder auch implizit vorhandenen Parallelismus nutzen, um ein Programm schneller als mit einem herkömmlichen Uni -Prozessor durchzuziehen, so kann man zum Beispiel einige wenige Minicomputer in "Parallelschaltung" auf die Software ansetzen, aber auch eine gitterartige Struktur von zahlreichen Mikrocomputern. Dies tut beispielsweise Charles M. Seitz vom California Institute of Technology (Caltech) bei seinem Projekt "Cosmic Cube", das der Erforschung der sogenannten "Hypercube"-Topologie dient.

Mit "Hypercube" bezeichnen Forscher wie Seitz eine besondere Verbindungsstruktur zur Verknüpfung der zahlreichen, im Cosmic Cube vorhandenen Prozessoren oder besser "Berechnungs-Knoten". Denn diese Knoten umfassen neben Mikroprozessoren auch lokale Speicher-Chips. Sie arbeiten als Multiple-Instruction -Multiple-Data-Maschine (MIMD) alle parallel nebeneinander her, kommunizieren aber miteinander. Dabei ist die gesamte Struktur so angelegt, daß man durch modulare Erweiterungen des Konzepts immer mehr Verarbeitungsleistung und auch Speicherkapazität vorsehen kann.

Seitz und seine Caltech-Kollegen wollten sich mit ihrem Cosmic Cube, der übrigens auf Mikroprozessoren der Intel-8086-Familie basiert, ein experimentelles Werkzeug schaffen, das ihre theoretischen Überlegungen bestätigen (oder widerlegen) soll: Überlegen, die besagen, Architekturen der hier skizzierten Art-Seitz spricht von "konkurrierenden" Prozessoren - seien ganz besonders gut geeignet, hat man es mit bestimmten, rechenintensiven Problemen aus der Chemie und der Physik zu tun. Außerdem wird an diesem Rechner erprobt, wie die Hypercube-Struktur sich daneben noch in den Bereichen "Künstliche Intelligenz", Luft- und Raumfahrttechnik, Bildverarbeitung, geophysikalische Lagerstättenforschung, Schaltkreisentwicklung und anderen, Computer-Simulationen umfassenden Gebieten einsetzen läßt.

Eines ist allen hier skizzierten Aufgabengebieten gemein, sagt Seitz: Alle hier vorkommenden Probleme sind strukturell gut dafür geeignet, in kleinere Module aufgespalten zu werden, die dann von den einzelnen Knoten, die natürlich miteinander Nachrichten über den Stand der Dinge austauschen, separat und zur gleichen Zeit behandelt werden. Und das bedeutet natürlich, daß sich die Rechenzeit teilweise ganz erheblich verkürzt, setzt man den innovativen "Cube" ein. Nun sind auch herkömmliche Supercomputer, also "Vektor-Rechner", sehr schnell, weil sie intern ja parallel arbeiten - aber eben nur dann, wenn sie Vektoroperationen ausführen. Hingegen sind die Hypercube-Strukturen der Caltech-Forscher auch dann noch schnell, heißt es, wenn sie völlig anders gelagerte Aufgabenstellungen, wie eben zum Beispiel solche aus dem Bereich der "Künstlichen Intelligenz", behandeln.

Es gibt heute in Kreisen der Supercomputer-Experten mehr und mehr Stimmen, die meinen, herkömmliche Vektor-Maschinen erreichen mit ihrer Leistung wohl bald die theoretischen Grenzen des ihnen zugrundeliegenden Konzepts. Denn weder die Schaltgeschwindigkeit der Bauelemente noch die Zeit, die die Signale von einem Schaltkreis zum nächsten benötigen, werden sich noch grundlegend verringern lassen; auf schnellere Rechner sei also kaum mehr zu hoffen.

Hingegen böten "kubische" Strukturen, die sich ja überdies aus höchst preiswerten Großserien-VLSI-Chips herstellen lassen, keinerlei theoretische Grenze für den immer weiteren Ausbau, also für das Hinzufügen von immer mehr Knoten. Und eben diese Strukturen böten den Vorteil, nicht nur bei Vektoroperationen Tempo vorlegen zu können.

Die Caltech-Hypercube-Struktur wurde von Seitz mit Hilfe von Geldern aus dem US-Rüstungsetat sowie des Energieministeriums entwickelt, wobei die Firma Intel die dabei verwendeten Mikroprozessoren und Gleitkomma-Koprozessoren "spendete". Doch inzwischen hat dieses Unternehmen das Hypercube-Konzept in eigener Regie mit modernerer Hardware fortentwickelt und ein " System namens "iPSC" daraus gemacht, das in den USA jetzt kommerziell angeboten wird: Es soll, tönt die Werbetrommel, Supercomputerleistung zu bislang unbekannt günstigen Kosten bieten und, was wohl nicht minder interessant ist, nicht nur als ganz gewöhnliches Werkzeug für Wissenschaftler und Techniker dienen, die aufwendige Simulationen zu behandeln haben; es soll auch gleich ein Werkzeug für jene Informatiker sein, die selber mit dem Entwickeln fortschrittlicher, paralleler Computer befaßt sind. Sei es Hardware, sei es Software.

Schneller Rechenknecht

In einer Grund-Version besteht ein iPSC-System aus 32 Hochleistungs -Mikrocomputern vom Typus "286", die untereinander über mehrfach vorhandene schnelle Kanäle kommunizieren. Außerdem ist die ganze 32er-Gruppe über einen globalen Kommunikationskanal mit einem kleinen lokalen Host-Computer verbunden, der als "Cube Manager" firmiert und der das Systemmanagement besorgt beziehungsweise auch die erforderliche Programmierumgebung bereitstellt. Er ist es auch, der dem Gesamt-System ein Arbeiten in zwei Modi ermöglicht: entweder als Stand-alone-System oder, eingebunden in ein Netz, als schneller "Rechenknecht", der einem großen Host-Computer zuarbeitet.

Den Kern eines Knotens in einem Hypercube bildet ein 80286-Prozessor, zu dem sich ein Gleitkomma-Arithmetik-Prozessor und ferner noch 512-KB-CMOS-DRAM -Speicher gesellen. Weitere 64 KB sind als Nur-Lese-Speicher (ROM) ausgeführt und alles zusammen findet jeweils auf einer einzigen Platine Platz.

Von dieser Platine gehen sieben bidirektionale Punkt-zu-Punkt-Kommunikationskanäle aus, also nicht nur ein Bus, und außerdem der schon erwähnte achte globale Kommunikations-Kanal. Jeder dieser Kanäle wird von einem eigenen Kommunikations-Koprozessor gesteuert, wobei das in der Form geschieht, daß der gerade aktive Knoten im Direkt-Speicherzugriff unmittelbar in den Speicher jenes anderen Knotens schreibt, zu dem der momentan geschaltete Kanal führt.

Man sieht aus der Beschreibung, daß der Hypercube vor allem ein geschicktes Konzept zum Aufbau möglichst leistungsfähiger und vielfältiger, parallel betreibbarer Verbindungen zwischen relativ simplen Knoten ist; ein Konzept also, mit dem vor allem die vielbeklagten Bus-Engpässe überwunden werden sollen, die sonst ja selbst bei raffinierter Auslegung dann immer störender werden, wenn man mehr und mehr Prozessoren zusammenkoppelt.

Die Befürworter dieser Hypercube-Topologie heben daher auch hervor, es sei leicht, ihr Konzept an immer weiter verbesserte VLSI-Chips anzupassen und ihren Cube mit weiteren Knoten in dem Maße immer weiter auszubauen, in dem er mehr Leistung erbringen soll. Und Seitz betont außerdem, sein Hypercube biete schon von Haus aus eine höchst effiziente interne Kommunikation; eine Kommunikationsweise nämlich, die sehr eng dem entspreche, was man zur Lösung der real in der Welt vorkommenden Probleme - siehe Geophysik - benötige. Denn die Kommunikation zwischen den einzelnen Elementen sei dank der sieben plus einen Kanäle exakt für jene Art von wechselseitiger "Interaktivität" optimiert, die man in den zu lösenden Problemen des wirklichen Lebens auch vorfinde. Und außerdem könne man die Hard- und die Software eines spezifischen Hypercubes stets ganz exakt so konfigurieren, daß sie dem Umfang und den Leistungsanforderungen der zu bearbeitenden Probleme gut angepaßt seien.

War weiter oben davon die Rede, der Hypercube-Computer sei auch als Werkzeug für den forschenden Computer-Entwickler gedacht, so läßt sich hier nun noch ein bißchen genauer darlegen, warum: Wer sich mit parallelen Architekturen, also mit konkurrierend arbeitenden Prozessoren innerhalb eines MIMD-Maschinenkonzepts befaßt, stößt sehr bald darauf, daß die Frage nach der "besten" Verbindung aller in das System eingebundenen Verarbeitungselemente eine zentrale Rolle einnimmt. In der Wissenschaft werden daher die vielfältigsten Topologien untersucht; von Bus-Strukturen über Ring- und Baum-Konfigurationen bis zu zwei- und dreidimensionalen Gittern. Doch gerade die Hypercube-Topologie, in Fachkreisen auch als "Binärer Hyper-Kubus" oder auch

"Boole'scher Hyper-Kubus" bekannt, ist flexibel genug, zu Forschungszwecken die anderen hier erwähnten Strukturen nachzubilden.

Eine andere Bezeichnung für Hypercube ist auch "Binärer n-Kubus", wobei n angibt, wieviel Knoten jeweils direkt miteinander - also ohne Umweg über zwischengeschaltete andere Knoten - verbunden sind. Ein Kubus mit 32 Knoten beispielsweise wird als fünfdimensionales System bezeichnet (2(5) = 32), und in ihm kommuniziert jeder Knoten mit seinen fünf nächsten Nachbarn direkt; ein siebendimensionaler Hypercube wiederum hat 128 Knoten und jeder tauscht mit seinen jeweils sieben nächsten Nachbarn Botschaften direkt aus.

Anzumerken ist an dieser Stelle, daß das Konzept dieses Hypercubes-amerikanischen Unterlagen zufolge - auf die Autoren H. Sullivan und T. R. Braschkow zurückgeht, die auf einem Symposium über Computerarchitektur im Jahre 1977 ein entsprechendes Papier vorgelegt haben.

Doch zurück zum iSPC, der mit 32 Knoten und 16-MB-Speicher beginnt und bis zum 128-Knoten-System mit 64-MB-Speicher ausgebaut werden kann. Wie wird so ein System nun programmiert?

Zu jedem einzelnen Knoten gehört ein Knoten-Betriebssystemkern, der dessen lokale Ressourcen verwaltet und die - nachrichtengesteuerte, also nicht etwa über einen gemeinsamen Speicher gehende-Kommunikation mit den anderen Knoten bewirkt. Außerdem kooperiert dieser BS-Kern mit dem "Cube Manager;" und das ist ein Mikrocomputer vom Typ 286 / 310, der ein Xenix-Betriebssystem hat und neben 2-MByte-Hauptspeicher ein Festplatten- sowie ein Floppy- Laufwerk besitzt.

Im Rahmen der Xenix-Umgebung dieses Cube-Managers können Programmiersprachen wie "Fortran 286", "C" und "Assembler" eingesetzt werden; später sollen noch andere Sprachen folgen.

Nach Angaben aus dem Hause Intel nimmt die Serie iPSC einen ganz besonderen Platz zwischen einerseits teuren, aber leistungsstarken Supercomputern Ó la Cray und andererseits preiswerten, aber wenig Power bietenden Superminis ein. Denn ein 128 -Prozessor-System soll beispielsweise etwas mehr als 500 000 Dollar kosten und etwa 10 MFLOPS leisten (Millionen Gleitkomma-Operationen pro Sekunde).

Das entspräche der Leistung von etwa 25 VAX-Rechnern zu je 0,4 MFLOPS, die aber, pro Stück, schon mehr als 200 000 Dollar kosten.

Und vergleicht man den Personal Supercomputer mit teuren Vektor-Rechnern, so schneiden diese zwar bei reinen Vektor-Operationen in den Kosten pro MFLOPS immer noch günstiger ab - allerdings muß man erst die fünf bis zehn Millionen Dollar für so eine Maschine aufgebracht haben -, doch da in der realen Welt ja nicht bloß Vektor-Probleme anstehen, werden solche Rechner in vielen Fällen nur unzureichend ausgelastet. Der iPSC-Cube könne dank der parallelen Prozessoren auch bei nicht vektorisierbaren Operationen stets mit hoher Auslastung gefahren werden, wie Intel-Fachleute erklären: nämlich mit etwa 80 bis 99 Prozent seiner theoretischen Leistung.

Spätestens an dieser Stelle erhebt sich nun die Frage, warum man ein System nach Art der Hypercube-Topologie nicht schon früher entwickelt hat. Experimentielle Versuche mit Multiprozessor-Anordnungen hat es in der Tat schon gegeben: So etwa einst den bekannten "ILLIAC IV" der University of Illionois, der über 64 Bearbeitungselemente Datenprozessoren) verfügte, sowie der "C.mmp" der Carnegie-Mellon-Universität mit seinen 16 Prozessoren, die über einen "Kreuzschienenverteiler" miteinander kommunizierten.

Zum Hypercube in seinen diversen Realisierungen führt nun nicht etwa ein einzelner, besonders bemerkenswerter technischer Durchbruch, sondern es sind praktisch drei Entwicklungen, die hier zusammentreffen. Dazu gehört erstens die Tatsache, daß moderne VLSI-Chips heute relativ viel Leistung für vergleichsweise bescheidene Beträge bieten, zweitens die Existenz besonderer Netz-Koprozessoren für Mikrorechner, die einen kostengünstigen Aufbau auch komplexen Datenkanal-Strukturen erlauben und drittens schließlich die Preisentwicklung bei den Speichern. Denn auch die sind erst in letzter Zeit so kompakt und billig geworden, daß man nun jedem Knoten eines Cubes ausreichende Mengen Speicherplatzes spendieren kann.

Es gibt aber noch einen zweiten Weg, die große Bedeutung zu illustrieren, die gerade der modernen VLSI-Technik bei der Entwicklung und Realisierung der neuen Intel -Version des Hypercubes zukommt. Denn während diese Rechner jetzt mit Prozessoren der 286er-Familie ausgestattet sind, arbeitete der Cosmic Cube des Caltech-Professors Seitz noch mit den "gewöhnlichen" 8086er Chips. Und vergleicht man nun beide Rechner miteinander, so resultiert allein aus dem Übergang zu den modernen Chips und Ko-Prozessoren eine Verzehnfachung der Kommunikations-Bandbreite der einzelnen Kanäle auf 10 MBit pro Sekunde und eine Verfünffachung der "Skalar-Leistung". Außerdem konnte der Speicher pro Knoten dank der Verwendung von 256-KBit-Chips vervierfacht werden

Wenn hier von der "Skalar-Leistung die Rede war, liegt der Gedanke nahe, auch nach der "Vektor-Performance" der Cube-Architektur zu fragen. Doch damit würde man sich gedanklich auf einen Irrweg begeben, denn die Hypercube-Rechner sind voll und ganz skalare Maschinen ohne jegliche spezialisierte Vektor-Verarbeitungs-Einheit. Jeder Knoten arbeitet also strikt skalar, und zwar sowohl an numerischen als auch an logischen Aufgaben.

Das hat zur Folge, daß diese Art Rechner nicht - wie ein Vektor-Rechner - immer dann stark an Leistung verliert, wenn skalare Partien eines Programms bearbeitet werden müssen; er kennt also den berüchtigten "skalaren Flaschenhals" der typischen Vektorrechner nicht. Sein Tempo bezieht der Cube auch bei Vektor-Operationen daraus, daß, hier viele Prozessoren gleichzeitig an Teilabschnitten der Aufgabenstellung arbeiten, weshalb man ihn auch dadurch schneller machen kann, daß man mehr Knoten (Prozessoren) hinzufügt. Und diese Mehrprozessor-Leistung wird dann auch in den skalaren Abschnitten eines Programms stets genutzt.

Damit wirklich kein Flaschenhals auftreten kann, sieht das Konzept des Hypercubes aber auch keinerlei zentrale Steuerung und keinen zentralen, gemeinsam benutzten Speicher vor, so Seitz weiter. Man hat hier also, sieht man einmal vom Cube Manager ab, ein völlig "verteiltes System" vor sich, das seine Arbeit intern durch den Austausch von Botschaften koordiniert, die von Knoten zu Knoten gehen. Würde man hingegen eine zentrale Steuerung und einen zentralen Speicher vorgesehen haben, so wäre das nur wieder ein Element, das die weitere Leistungssteigerung und die weitere Ausbaubarkeit der Maschine begrenzen würde.

In einem verteilten System wie dem Cube kann man beobachten, daß viele Anwendungen eine wechselseitige Abstimmung über den Fortschritt der in den einzelnen Knoten bearbeiteten Teil-Prozessen nur zwischen - jeweils benachbarten Knoten erfordern. Je größer dabei nun der Berechnungsaufwand innerhalb der Knoten ist, desto günstiger wird dann das Verhältnis zwischen Bearbeitungs- und Kommunikationszeit; desto besser wird also, erfahrungsgemäß, die Effizienz des Gesamtsystems.

Im übrigen ist das Betriebssystem, das in jedem Knoten resident gehalten wird, so ausgelegt, daß es für den Rechner kaum einen Unterschied macht, ob eine Nachricht zum Nachbar-Knoten oder zu einem Knoten auf der anderen Seite der Gesamtstruktur geschickt werden muß.

Dieses Betriebssystem, so sagen Intel-Mitarbeiter dazu, sei übrigens betont "einfach" gehalten und vor allem auf die Bedürfnisse technisch-wissenschaftlicher "Problemlöser" abgestimmt. Und auch auf Leute zum Beispiel, die, auf der Basis der gebotenen Hardware sowie der Kern-Betriebssystemfunktionen, an der weiteren Entwicklung von Parallel-Computern vom Cube-Typus arbeiten wollen. Von denen erwartet man sich, daß sie im Laufe der weiteren Arbeiten schrittweise immer mehr Anwendungs-Softwarepakete erstellen, die dann wiederum von Wissenschaftlern und Ingenieuren, die selber nicht Informatiker sind, sondern quasi "einfache Anwender", genutzt werden können. Die Spekulation geht natürlich dahin, daß die jetzt zunächst in den USA gebotene, kommerzielle Verfügbarkeit eines Non-Von-Neumann-Rechners in einem gewissen Sinne "Standards" setzt und Informatiker ermutigt, für diesen Typ Maschine mehr Anwendungssoftware zu entwickeln als für Systeme, von denen es irgendwo in einer Hochschule bloß ein einziges Exemplar gibt.

In diesem Zusammenhang muß aber auch erwähnt werden, daß der Hersteller dieses Cube-Systems bereits mit unabhängigen Softwarehäusern über die Entwicklung von Anwendungspaketen verhandelt und in dieser Richtung im übrigen auch selbst schon aktiv ist: Das Unternehmen hat eine eigene Arbeitsgruppe für Anwendungen aufgebaut, die von Dr. Cleve Moler von der University of New Mexico geleitet wird. Ihm sagt man nach, er habe zur Entwicklung von Anwendungsprogrammen für die numerische Analyse wichtige Beiträge geleistet, und dabei habe er sich besonders mit deren Implementierung auf "Scientific Machines" und Supercomputern befaßt.

Parallelverarbeitung

Zu den Themen, die in EDV-Fachkreisen in letzter Zeit mehr und mehr Interesse gefunden haben, gehört auch die parallele Datenverarbeitung, also die Abkehr vom herkömmlichen Uni-Prozessor. Sie tritt, in zahlreichen Konzepten und Produkten, in höchst vielseitiger Form zutage und wird auch von Wissenschaftlern mit zu den testen Forschungsarbeiten moderenen lnformatik gezählt. Der CW wird das Gebiet "Parallelverarbeitung" in einer losen Folge themengerichteter Beiträge von mehreren Seiten beleuchten, ohne aber wissenschaftliche Systematik oder enzyklopädische Vollständigkeit anzustreben. Dabei wird der Bogen der Texte, die die wichtigsten Aspekte des Parallel -Processing abdecken sollen, von der reinen Theorie bis zu praktisch nutzbaren Produkten der einschlägigen Industrie gespannt.

Bisher erschienen:

"Datenverarbeitung im Gänsemarsch stößt an ihre Grenzen" (CW 20, Seite 58),

"Der Multiprozessor wird attraktiv (CW 22, Seite 56).