Melden Sie sich hier an, um auf Kommentare und die Whitepaper-Datenbank zugreifen zu können.

Kein Log-In? Dann jetzt kostenlos registrieren.

Falls Sie Ihr Passwort vergessen haben, können Sie es hier per E-Mail anfordern.

Der Zugang zur Reseller Only!-Community ist registrierten Fachhändlern, Systemhäusern und Dienstleistern vorbehalten.

Registrieren Sie sich hier, um Zugang zu diesem Bereich zu beantragen. Die Freigabe Ihres Zugangs erfolgt nach Prüfung Ihrer Anmeldung durch die Redaktion.

11.04.1986 - 

Konzepte und Beispiele paralleler Rechnerarchitekturen (XIV):

Der Transputer wurde von der Software her erdacht

Beginnend mit den ersten Mikroprozessoren vor mehr als einem Dutzend Jahren, seitdem es kompakte Computer-Kerne auf je einem einzigen Chip gibt, liegt der Gedanke nahe, leistungsstarke größere Rechner zu bauen: Die Wunschvorstellung ist, daß man viele bis sehr viele dieser Chips in geeigneter Weise zusammenschaltet und sie dann auf parallele Weise arbeiten läßt. Seit dieser Gedanke auf Zustimmung stößt liegt nun auch die Idee nahe, Mikroprozessor-Chips gleich von vornherein so zu konzipieren, daß sie dem Architekten eines Computers dieses Zusammenschalten so leicht wie möglich gestalten.

Mit dem ausdrücklichen Ziel, den Bau von Systemen mittels Tausender von Prozessoren zu ermöglichen, wurde in den letzten Jahren ein Mikroprozessor gestaltet, der nun unter seinem Namen "Transputer" zunehmend für Gesprächsstoff sorgt. Es handelt sich dabei um eine Entwicklung der britischen Firma Inmos, die gewissermaßen von der Software her erdacht worden ist, denn sie unterstützt die Implementierung von Systemen für die parallele Verarbeitung von Programmen und Teilprogrammen (Prozessen). Ein solcher Transputer verfügt außerdem über jeweils vier besondere Kommunikationswege, "Links" genannt, die die Kopplung mit anderen Transputern ermöglichen, was den Bau von Transputer-Netzen mit parallel arbeitenden Knoten ganz wesentlich erleichtert.

Der neueste dieser Transputer - er wurde erst vor kurzem weltweit vorgestellt - ist ein Chip mit einem 32-Bit-Prozessor und einer Leistung von angeblich 10 Mips (Millionen Instruktionen pro Sekunde), mit vier der erwähnten Links, 2 KByte RAM, einem Speicher-Interface mit 32 Bit sowie einem Speicher-Steuerbaustein. Alles zusammen wurde in 1,5-Mikrometer-CMOS-Technik, und zwar in Form von mehr als 200 000 Transistoren, auf einem kleinen Stückchen Silizium integriert. Der Name des Transputers: "IMS T 414".

Dieser T 414, der dafür konzipiert ist, die inhärente Parallelität eines Programmes in Mehr-Transputer-Konfigurationen nach Kräften zu nutzen, stellt sich intern als moderne RISC-Architektur (Reduzierter Instruktions-Satz) dar, die beispielsweise Additionen und Subtraktionen (laut Inmos) in 50 Nanosekunden bewältigt. Komplexere Befehle sollen dem Unternehmen zufolge immer noch in weniger als einer Mikrosekunde ausgeführt werden können. Alle Befehle sind nur ein Byte lang und Inmos verspricht, der T 414 arbeite mit ganz "extrem kompakten Programmen".

Occam nutzt den Prozessor aus

Der 414 - es gibt daneben übrigens noch einen 16-Bit-Transputer namens T 212 - kann laut Inmos in Hochsprachen wie C, Pascal und Fortran programmiert werden, doch irgendwie wäre das fast ein Mißbrauch: Denn wann immer man die speziellen Fähigkeiten dieser Chips zur parallelen oder "konkurrierenden" Verarbeitung voll nutzen will, sei es nach Inmos-Meinung besser, die eigens für den Transputer beziehungsweise für das Programmieren konkurrierender Prozesse entwickelte Sprache Occam einzusetzen. Mit ihrer Hilfe sollen dann aus Hunderten bis Tausenden von Transputern beispielsweise Rechner der vielbeschworenen Fünften Generation entwickelt werden, also Rechner für den Bereich der "Künstlichen Intelligenz".

Occam ist nicht nur eine Sprache, die sich zum einfachen und übersichtlichen Programmieren konkurrierend abarbeitbarer Prozesse eignet, sondern Occam repräsentiert gleichzeitig auch das niedrigste Sprachniveau, auf dem Transputer und Transputer-Netze programmiert werden sollen. Assembler oder gar Maschinensprache der herkömmlichen Art sind demnach bei Inmos nicht vorgesehen. Occam hat darüber hinaus die Eigenschaft, daß ein in dieser Sprache geschriebener Code "unverändert" bleibt, falls man Konfigurationen mit mehr oder weniger Transputern zur Verfügung stehen hat. Denn Occam will gewissermaßen nur die Logik der Programme abbilden, erst von der konkreten Hardware hängt es dann ab, wie schnell die Programme bearbeitet werden können. Später soll ferner ein spezieller Gleitkomma-Transputer für numerische Berechnungen verfügbar sein.

Occam basiert auf dem Begriff des "Prozesses" und von der Sprache her gesehen, ist ein einzelner Transputer jeweils einem Occam-Prozeß äquivalent. Dabei können mehrere, konkurrierend auf mehreren Transputern laufende Prozesse logisch wiederum zu einem größeren Ganzen, nämlich zu einem eigenen Prozeß zusammengefaßt werden. Dessen Teil-Prozesse wiederum können, falls nur ein einziger Transputer zur Verfügung steht, von jenem pseudo-konkurrierend (in Wirklichkeit also in sequentieller Reihenfolge) ausgeführt werden. Nach Angaben des Hauses Inmos bedarf es dazu keinerlei zusätzlichen Software-Overheads.

Im Rahmen eines Systems von Occam-programmierten Transputern kommunizieren die Prozesse über synchronisierte Punkt-zu-Punkt-Verbindungen miteinander, die Kanäle genannt werden. Dabei können diese Kanäle physisch von einem Transputer zu einem anderen führen, also über die seriellen Links mit jeweils 10 MByte pro Sekunde Voll-Duplex-Datenrate. Sie können aber auch intern im Transputer implementiert sein.

Jeder Occam-Prozeß muß solange warten, bis die Quelle, von der er Eingaben erwartet, und das Ziel, dem er Ausgaben senden soll, "kommunikationsbereit" sind, und erst dann beginnt ein Transputer damit, den Prozeß zu bearbeiten. Dabei sei wichtig und speziell für die Transputer mit ihren vier Links pro Baustein hervorzuheben, daß der gleichzeitige Einsatz auch einer großen Zahl dieser logischen Kanäle "nur von geringem (negativen) Einfluß auf die Leistung des Transputers" ist.

Die ausgeprägte Kommunikationsfreudigkeit der Transputer ist in erster Linie den besagten vier Links zu verdanken, und sie sticht besonders von den Kommunikationseigenschaften vorteilhaft ab, die konventionelle Multiprozessor-Systeme auf der Basis eines gemeinsamen Busses aufweisen. Denn bei jenen Systemen - so zumindest die Inmos-Techniker - sei der Bus ja ein ausgesprochener Kommunikations-Flaschenhals, der stets "bloß eine Transaktion weiterleiten könne und der bei heftiger Inanspruchnahme rasch mit Verstopfungen, Zugriffsverzögerungen und sinkendem Durchsatz" reagiere. Außerdem senke das Hinzufügen von immer mehr Prozessoren die Leistung eines Busses auch noch deshalb, weil dessen kapazitive Belastung gleichzeitig ja immer größer werde. Folge: Die Kommunikations-Bandbreite sinkt ausgerechnet dann wenn mehr Prozessoren eigentlich doch zusehends mehr Bandbreite erfordern würden.

Bei den Transputern hingegen stellen die Links reine Punkt-zu-Punkt-Wege dar, die jeweils exakt bloß zwei Transputer koppeln; es teilen sich also niemals mehrere Transputer eine Verbindung.

Keine Zugriffsblockade bei aktiven Links

Dadurch können nun alle Links eines Systems gleichzeitig aktiv sein, was wiederum zur Folge haben soll, daß jetzt viele Transaktionen gleichzeitig abgewickelt werden können. Es gebe keine Zugriffsblockaden, und je mehr Transputer einem System einverleibt würden, desto größer werde automatisch dabei auch die Zahl der verfügbaren Links. Oder mit anderen Worten: Erweitert man ein Transputer-System um weitere Einheiten, so wird die Kommunikationsbandbreite ebenfalls größer.

Als praktischen Beleg dafür, daß dies alles nicht nur leere Theorie ist, führte Inmos unlängst Transputer-Systeme vor, die verblüffende Leistungen zu ebenso verblüffend niedrigen Kosten erzielen. So etwa ein System von 16 Transputern in quadratischer 4 x 4-Konfiguration, das der Datenreduktion bei der Identifizierung von Fingerabdrücken dient. Es hat die Aufgabe, aus etwa 250 KB Rohdaten eines TV-Bildes rund 1 KB codierter Nutzinformation über die wichtigsten Charakteristika eines Fingerabdrucks zu destillieren und erledigt diese Aufgabe in rund drei Sekunden. Ein herkömmliches System auf Basis eines konventionellen Rechners hingegen benötigt, trotz zusätzlich eingesetztem Vektorprozessor, rund zwölfmal so lange. Doch während das letztere System mehr als 100 000 Pfund kostet, soll dessen auf Transputern basierendes schnelles Gegenstück für nicht einmal ein Zehntel dieses Preises gebaut worden sein.

Nur geringer Aufwand für 25fache Leistung

Nicht weniger verblüffend sind die von Inmos bekanntgegebenen Leistungsdaten eines anderen Systems, das unbekannte Fingerabdrücke mit 3,5 Millionen gespeicherten Fingerabdrucksätzen vergleicht und eine eventuelle Übereinstimmung erkennt; dabei besteht jeder der 3,5 Millionen Sätze aus zehn Einzel-Abdrücken von jeweils 1 KB Datenvolumen.

Hier besteht das konventionelle System aus zwei leistungsstarken Minicomputern sowie vier zusätzlichen Vektorprozessoren im Gesamtwert von mehr als 500 000 britischen Pfund. Es kann pro Sekunde rund 20 Vergleiche durchführen.

Die gleiche Aufgabe kann aber auch ein Feld von zehn mal zehn Transputern samt einem Plattenspeicher von 500 MB bewältigen; es erreicht dann pro Sekunde rund 500 Vergleiche und kostet nicht einmal ein Fünftel dessen, was die konventionelle Apparatur verschlingt.

Noch eindrucksvoller stellt sich der Vorteil dar, den die erwähnten Netze kleiner Transputer laut Inmos erreichen, rechnet man die Zahl der geleisteten Datenreduktionen beziehungsweise Vergleiche pro aufgewendeter Kosten; denn dann stellt sich heraus, daß die Mehrprozessorlösungen pro Pfund Kapitalaufwand mehr als 120mal soviel leisten wie die herkömmlichen Computer...

Alvey- und Esprit-Programme zeigen Occam-Interesse

Diese Zahlen zeigen, daß es sich lohnt, das Konzept des Transputers und besonders das der Sprache Occam noch ein wenig näher zu beleuchten, zumal diese Chips inzwischen auch im Rahmen des britischen Alvey- und des europäischen Esprit-Forschungsprogramms mehr und mehr Interesse zu finden scheinen.

Die Architektur des Transputers basiert, und das soll die Entwicklung von Systemen erleichtern, auf dem Begriff des "Prozesses", der hier sowohl als Software- als auch als Hardware-Grundbaustein verstanden werden darf.

So wird ein System softwareseitig also als Satz wechselseitig miteinander verbundener Prozesse entworfen, die alle als jeweils völlig unabhängige Entwurfs-Einheiten aufgefaßt werden können. Die Prozesse kommunizieren mit anderen über die schon erwähnten Punkt-zu-Punkt-Kanäle, doch ihr interner Aufbau bleibt nach außen hin verborgen; ein Prozeß wird somit allein durch die Nachrichten, die er sendet und empfängt, komplett spezifiziert. Dabei wird die Kommunikation zwischen den Prozessen selbsttätig synchronisiert, ohne daß es irgendwelcher getrennter Synchronisations-Mechanismen bedürfte.

Jeder der hier erwähnten Prozesse, dessen Inneres ja "verborgen" ist, kann intern wiederum als Satz untereinander kommunizierender Prozesse aufgebaut sein. Dadurch kommt eine hierarchische Strukturierung zustande und der Entwickler eines Systems hat es auf jeder Ebene nur mit einem kleinen und gut handhabbaren Satz einzelner Prozesse zu tun, verspricht Inmos.

Die Prozesse werden in Hardware implementiert

Im Rahmen des Occam-Transputer-Konzepts kann ein Prozeß in Hardware implementiert werden. Und zwar ist beispielsweise ein Transputer, der ein Occam-Programm abarbeitet, ein solcher Hardware-Prozeß. Dieser Prozeß kann unabhängig von anderen entworfen und kompiliert werden, wobei wiederum seine interne Struktur verborgen bleibt und er sich mit anderen Prozessen synchronisiert und mit ihnen kommuniziert; das geschieht über die Links, die die besagten Occam-Kanäle physisch implementieren.

Ein Prozeß kann aber auch auf andere Weise in Hardware implementiert werden. Und zwar, indem man - vielleicht aus Kostengründen - zum Beispiel einen besonderen Transputer mit einem speziellen Befehlssatz versieht. Oder spezielle, schnelle, festverdrahtete Logik, sollte maximales Tempo die Hauptforderung sein.

Den Transputer nur noch als Black Box betrachten

Eine weitere Möglichkeit besteht darin, einen Transputer ein für allemal zur Durchführung einer ganz bestimmten Aufgabe zu programmieren und ihn dann nur noch als "Black Box" zu betrachten. Und in späteren Entwicklungsphasen der Technik soll es sogar möglich werden, eine zweckentsprechende Kombination von Software-Prozessen, von festverdrahteter Logik und von fest programmierten Transputern auf einem einzigen Chip unterzubringen, um mehrere solcher Chips dann wieder zu komplexeren Netzen zusammenzuschalten. Es entsteht dabei ein Netz nahezu beliebiger Topologie, die nur noch durch die Zahl der Links begrenzt wird, über die die einzelnen Bausteine des Netzes verfügen; es könnten ja auch einmal mehr als vier sein. . .

Neben den Links, das darf nicht übersehen werden, verfügt jeder einzelne Transputer über seine eigene Speicherschnittstelle, die die direkte Adressierung von maximal 4 GB erlaubt und die eine Datenrate von 25 MB pro Sekunde gewährleistet. Das bedeutet, daß ein Parallel-Rechner mit mehreren Transputern um so mehr an Speicherbandbreite gewinnt, je mehr Transputer hinzugefügt werden. Das ist ein ganz anderer Sachverhalt als beispielsweise jener, der von Poly-Prozessor-Systemen mit enger Kopplung, also mit einem relativ großen gemeinsamen Speicher, bekannt ist.

Zum klaren Verständnis des Transputer-Mehrrechner-Konzepts ist es an dieser Stelle nötig, die schon mehrfach behandelten Links noch etwas genauer anzuschauen. Jedes Link stellt dem System zwei Occam-Kanäle zur Verfügung, die Daten in gegensinniger Richtung transportieren können. Jegliche Kommunikation über irgendein Link kann - und das ist ein für die Leistung eines Transputer-Netzes entscheidender Punkt - sowohl absolut gleichzeitig mit der internen Arbeit des Transputers erfolgen als auch gleichzeitig mit Kommunikationsprozessen über die anderen Links.

Da die Prozesse, die über ein Link miteinander kommunizieren, kraft der Sprache Occam automatisch synchronisiert werden, ist ein Programm, das die wechselseitige Kommunikation zweier auf verschiedenen Transputern laufender Prozesse bewirkt, laut Inmos "identisch" mit einem, das die Kommunikation zweier auf dem gleichen Transputer ablaufender Prozesse der gleichen Gestalt regelt.

Prozesse werden im Rahmen der Sprache Occam so miteinander verbunden, daß ein System konkurrierend (parallel) bearbeitbarer Programmteile entsteht. Dabei erlaubt die Sprache, jeden Prozeß als "Black Box" mit irgendwelchen internen Zuständen zu betrachten, die das Verhalten beliebiger Dinge repräsentiert: seien es logische Gatter oder Mikroprozessoren, Werkzeugmaschinen oder ein Büro.

Die Occam-Prozesse selber sind finit; sie werden also bei Vorliegen aller nötigen Eingabedaten und -signale gestartet durchlaufen eine bestimmte Zahl von Aktionen und "enden" zuletzt. Dabei kann eine "Aktion" beispielsweise ein Satz (anderer) sequentieller Prozesse sein, die, wie in konventionellen Rechnern und Programmsprachen, einer nach dem anderen abgearbeitet werden. Oder auch ein Satz paralleler Prozesse, die alle zur gleichen Zeit bearbeitet werden müssen.

Synchronisation vermeidet Pufferung

Da jeder Prozeß intern selber wieder aus mehreren Prozessen bestehen kann und weil von jenen manche ja parallel ausführbar sein können, kann jeder Prozeß ein gewisses Maß an interner Nebenläufigkeit besitzen, das überdies, im Zuge des Startens und Beendens der einzelnen Teil-Prozesse, mal höher und mal geringer sein kann: Alles fließt.

Zergliedert man die Prozesse eines Occam-Programmsystems Schritt für Schritt immer weiter in ihre Teilprozesse und jene wiederum in deren Konstituenten, so kommt man letztlich bei jedem Transputer-Parallelrechner zu drei elementaren Prozessen: erstens der "Zuweisung", zweitens der "Ein-" und drittens der "Ausgabe". Dabei setzt die Zuweisung den Wert einer Variablen auf jene Zahl fest, die sich als Ergebnis bestimmter Berechnungen ergibt, während die Elemente Ein- und Ausgabe der Kommunikation von Prozeß zu Prozeß dienen.

Innerhalb dieses Rahmens kommunizieren zwei konkurrierend abzuarbeitende Prozesse, indem sie (wenigstens) einen Ein-Weg-Occam-Kanal benutzen, der sie miteinander verbindet: Der eine Prozeß gibt dann eine Nachricht an den Kanal aus und der andere übernimmt von jenem eine Eingabe.

Bei dieser Art von Kommunikation liegt der Witz darin, daß eine automatische Synchronisation erfolgt und daß die Kommunikation nicht gepuffert wird: Die erwähnte Kommunikation zwischen zwei Prozessen kann also stets erst dann stattfinden, wenn sie beide dazu bereit sind. Erst dann nämlich kopiert der ausgebende Prozeß den jeweiligen Wert über den Kanal auf den eingebenden Prozeß. Klar muß man außerdem sehen, daß jeder Prozeß zahlreiche Ein- und Ausgabekanäle haben kann, die gleichzeitig kommunizieren beziehungsweise kommunizieren wollen. Das kommt natürlich daher, daß jeder Prozeß intern nebenläufige Prozesse besitzen kann.

Mit der Sprache Occam läßt sich ein Netz von Transputern ebenso programmieren wie ein einzelner Transputer, denn jeder einzelne Transputer implementiert ja das Occam-Konzept der Nebenläufigkeit und der Kommunikation. Steht nur ein einziger Transputer zur Verfügung, so teilen die konkurrierenden Prozesse sich in seine Kapazität; dabei erfolgt die skizzierte Kanal-Kommunikation nun hilfsweise in der Form, daß Daten einfach innerhalb des Speichers hin- und herbewegt werden.

Es ist also möglich, betont Inmos, das gleiche Occam-Programm auf einer breiten Vielzahl von realen Occam-Transputer-Konfigurationen einzusetzen; davon möge eine auf minimale Kosten gezüchtet sein, die andere auf höchste Leistung und die dritte vielleicht einen zweckmäßigen Mittelweg repräsentieren.

Die Sprache Occam und der Transputer wurden zur gleichen Zeit und im gleichen Haus entwickelt. Dies ist der Grund, weshalb alle Transputer über besondere Hardware-Vorkehrungen und über besondere Maschinenbefehle verfügen (die nach außen nicht bekanntgegeben werden); Hardware und Befehle, die laut Inmos speziell dem Zweck dienen, das Occam-Modell von Nebenläufigkeit und Kommunikation optimal zu implementieren und Occam-Programme so schnell wie möglich abzuarbeiten.

Das bedeutet, immer nach Inmos alle Transputer-Befehlssätze sind speziell so entworfen worden, daß sie eine einfache, direkte und effiziente Kompilierung (Übersetzung) von Occam-Programmen in die eigentliche Maschinensprache ermöglichen. Dabei bleibt die Occam-Programmierebene für alle Transputer-Produkte laut Inmos stets die gleiche, auch wenn die einzelnen Chips, beispielsweise aus Kostengründen, nicht alle den gleichen Maschinenbefehlssatz haben mögen.

Ein ganz neues Abstraktionsniveau . . .

Die Leistung elektronischer Rechenanlagen hat sich in den letzten Jahren, nimmt man beispielsweise die MIPS (Millionen Instruktionen pro Sekunde) als Maßzahl, pro Jahrzehnt um jeweils etwa den Faktor zehn vergrößert. Doch während man diesen Leistungsgewinn bislang vor allem durch stete Fortschritte in die Halbleitertechnik erzielen konnte, sieht es für die Zukunft anders aus, betont das Halbleiterhaus Inmos: Zwar biete die Chiptechnik auch künftig noch die Chance, immer mehr Transistoren auf kleinstem Raum unterzubringen - doch die eigentliche "Leistung" der Schaltkreise soll fortan nur noch moderat anwachsen.

Diese neue Linie zwingt nun dazu, sich über das optimale Konzept moderner Computer grundlegend neue Gedanken zu machen. Denn in der Vergangenheit, und sie führte dann ja auch zum vielbeklagten "von-Neumann-Flaschenhals", war es aus Kostengründen sinnvoll, einen einzigen Prozessor mit relativ viel Speicher auszustatten, während es heute sinnvoll erscheint, Systeme mit einem viel stärkerem Maße an Parallelverarbeitungsfähigkeit als je zuvor aufzubauen. Der Grund: Heute kann man auf einem einzigen "Wafer" mühelos und in nur einem Arbeitsgang 256 und mehr konventionelle Prozessoren herstellen. Oder auch 2 MB Hauptspeicher und mehr.

Die Idee, die hinter der Entwicklung des Transputers steht, ist daher nun eben die, einmal ein programmierbares Bauelement zu schaffen, das die Vorteile, die der neuen VLSI-Technik (...)härent sind, bequem zu nutzen gestattet, meint man bei Inmos. Das soll also eine Art "Baustein" sein, der die Errichtung umfangreicher Systeme für die konkurrierende Verarbeitung erleichtern soll.

In diesem Zusammenhang wird betont, der Transputer stelle doch eigentlich die physische Realisierung eines völlig neuen, bisherige Ebenen übersteigenden Abstraktionsniveaus dar. Und in der Tat kann man hier Parallelen ziehen zu jener Zeit, als das Denken in einzelnen Röhren- und Transistorfunktionen vom Denken in logischen Gattern und den Begriffen der Booleschen Algebra ersetzt wurde. Denn im Zusammenwirken mit der neuen Sprache Occam stellt der Transputer in der Tat ja so etwas wie eine neue Ebene bereit, auf der man, ohne Irritation durch logische oder gar elektronische Detailprobleme, moderne, konkurrierend arbeitende Rechnersysteme aufbauen kann.

Systeme, so versprechen es die Väter des Transputers, deren Leistung nahezu linear in dem Maße steigen soll, in dem mehr und mehr einzelne Transputer eingesetzt werden. . . -es