Neue Arithmetik der Karlsruher Forschungsgruppe Kulisch in der 4361 realisiert:

Rechner liefern keine korrekten Ergebnisse

20.12.1985

KARLSRUHE (CW) - Mit der Entwicklung neuartiger Rechnersysteme befaßt sich die Forschungsgruppe Kulisch am Institut für Angewandte Mathematik der Universität Karlsruhe. Im folgenden Bericht beschreibt die Universität Problemstellungen und Ergebnisse dieser Arbeiten.

Wegen der vielfältigen kommerziellen Anwendungen übersieht man häufig die zentrale Rolle, die Computern beim technisch-wissenschaftlichen Rechnen auch heute noch zukommt.

Berechnungen spielen sich in Rechenanlagen in zwei unterschiedlichen Zahlsystemen ab. Das eine besteht aus einer beschränkten Teilmenge der ganzen Zahlen, das andere sind die sogenannten Gleitkommazahlen. Für Anwendungen im Bereich des nichtwissenschaftlichen Rechnens benötigt man ausschließlich das System der ganzen Zahlen. Solange der Bereich der darstellbaren ganzen Zahlen nicht überschritten wird, verlaufen Rechnungen in diesem Zahlenbereich aus mathematischer Sicht - solange der Rechner technisch intakt ist - fehlerfrei. Wegen der großen Zahl derartiger Anwendungen wird der Rechner heute vielfach für ein perfektes mathematisches Werkzeug gehalten. Was der Rechner liefert, so glaubt man, ist korrekt wie ein mathematisch bewiesener Satz.

Rechenfehler häufig nur mühsam beherrschbar

Für den Bereich des technisch-wissenschaftlichen Rechnens trifft dies leider nicht zu. Gleitkommazahlen und Gleitkommaoperationen können die reellen Zahlen und deren Verknüpfungen nur approximieren. Ein Hauptärgernis besteht hier in der Tatsache, daß der Rechenfehler nur mühsam und häufig gar nicht beherrschbar ist. Man wird hier mit einer scheinbar paradoxen Situation konfrontiert. Viele Rechenanlagen führen die Gleitkomaoperationen heute mit maximaler Genauigkeit aus. Nichtsdestoweniger kann das Ergebnis einer Rechnung, welche aus mehreren Verknüpfungen zusammengesetzt ist, auch nach nur wenigen Operationen bereits völlig falsch sein. Die Berechnung ,der folgenden Summe möge dies illustrieren: 10(...)= 1323.

Praktisch alle auf dem Markt befindlichen Rechenanlagen liefern bei der Berechnung der Summe in der angegebenen Reihenfolge das Ergebnis Null, da die üblichen Gleitkommaformate den großen Zahlbereich der auftretenden Summanden nicht erfassen können. Dies könnte eine gewisse Kontrolle des Rechenvorgangs durch den Benutzer verhindern.

Mechanische Tischrechner oder einfache elektronische Taschenrechner beispielsweise erlauben diese Kontrolle. Der Benutzer gibt jede Rechenoperation selbst ein und nimmt jedes Zwischenergebnis selbst entgegen. Durch sein Verständnis dessen, was abläuft, kontrolliert er den Rechenprozeß. Mancher Leser wird vom Gebrauch des Rechenschiebers oder eines Taschenrechners mit dieser Art der Kontrolle einer maschinell unterstützten Rechnung vertraut sein.

Mit dem Aufkommen der elektronischen Rechenanlagen war diese interaktive Art der Fehlerkontrolle einer Rechnung durch den Benutzer nicht mehr praktikabel. Die enorme Geschwindigkeitssteigerung verlangte die Entwicklung systematischerer Methoden zur Fehlerkontrolle. Die für die ersten elektronischen Rechenanlagen entwickelten Methoden basieren auf Fehlerabschätzungen jeder einzelnen Gleitkommaoperation. Da der Rechner in der Lage ist, eine große Anzahl von Operationen auszuführen, muß der Benutzer eine große Anzahl von Fehlerabschätzungen vornehmen. Darüber hinaus muß er studieren, wie sich diese Fehler in komplizierten Algorithmen fortpflanzen.

Bei den heute erzielbaren Rechengeschwindigkeiten von einigen hundert Millionen Operationen in der Sekunde ist auch diese Vorgehensweise nicht mehr praktikabel. Mangels einer Alternative wird häufig gar keine Fehleranalyse durchgeführt. Damit wird das Rechnen zu einem systematischen Experimentieren. Wenn in einem komplizierten Rechenprozeß Teilrechnungen der obigen Art anfallen, ist in der Regel die gesamte Rechnung wertlos. Das Problem der Fehleranalyse entpuppt sich damit als ähnlich schwierig oder vielleicht noch schwieriger als der Rechenprozeß selbst.

Nun sind Rechenanlagen einmal dazu erfunden worden, komplizierte Aufgaben dem Menschen abzunehmen. Es ist daher nur naheliegend zu versuchen, auch den Prozeß der Fehleranalyse einer numerischen Rechnung selbst wieder dem Rechner zu übertragen.

In Anbetracht dieser Sachlage wurde Ende der sechziger Jahre von Professor Ulrich Kulisch an der Universität Karlsruhe die Vorstellung entwickelt, daß die arithmetische Basis des Gleitkommarechnens gegenüber früheren Ansätzen noch einmal wesentlich verbreitert werden müsse, wenn man bei der Rechengenauigkeit und Rechenkontrolle weiterkommen wolle: Verantwortlich für das Auftreten von Rechenfehlern sind die bei jeder einzelnen Operation ausgeführten Rundungen. Ziel einer Basisverbreiterung des wissenschaftlichen Rechnens mußte es demnach sein, die Anzahl der in einem Rechenprozeß ausgeführten Rundungen drastisch herunterzudrücken. Als ein wichtiger Schritt in dieser Richtung wurde der Versuch unternommen, in den üblichen linearen Räumen der Mathematik - wie reelle und komplexe Zahlen, Vektoren und Matrizen - sowie den zugehörigen Intervallräumen die arithmetischen Verknüpfungen nicht wie bisher aus einzelnen Gleitkommaoperationen aufzubauen, sondern mit maximaler Genauigkeit im Rechner direkt zu erzeugen. Die Rechnerarchitektur muß dazu natürlich so ausgelegt werden, daß dies möglich ist.

So wurde in Karlsruhe zunächst eine allgemeine Theorie der Rechnerarithmetik entwickelt, welche diese Idee systematisch verfolgt. Die einschlägigen Untersuchungen waren Mitte der siebziger Jahre abgeschlossen.

Die neue Theorie der Rechnerarithmetik gipfelt in einer neuartigen Definition der arithmetischen Verknüpfungen in Rechenanlagen. Eines der für die Praxis relevanten Hauptergebnisse dieser Untersuchungen besteht in einem Nachweis, daß es möglich ist, alle in den oben aufgeführten linearen Räumen und zugehörigen Intervallräumen auftretenden inneren und äußeren Verknüpfungen mit maximaler Genauigkeit zu berechnen, wenn der Rechner in der Lage ist, Skalarprodukt zweier Vektoren beliebiger Dimension maximal genau auszuführen. Dem Skalarprodukt zweier Vektoren kommt demnach eine ganz zentrale Bedeutung zu. Die neue Arithmetik beeinflußt auch die Entwicklung von Programmiersprachen. Von den Karlsruher Mathematikern sind Erweiterungen der Programmiersprachen Pascal und Fortran ausgearbeitet worden, welche das Programmieren im Bereich von TW-Anwendungen erheblich vereinfachen und zuverlässiger machen.

Während der Jahre l977 bis 1979 wurde am Institut für Angewandte Mathematik ein erster Rechner an gebaut, welcher vollständig mit der neuen Arithmetik ausgestattet ist. Es zeigt sich, daß ein so gebauter Rechner in der Lage ist, bei praktisch allen Grundaufgaben der Numerik die Lösung mit maximaler Genauigkeit in Schranken einzuschließen. Die neue Arithmetik erlaubt darüber hinaus eine anschließende Verifikation der Lösung, das heißt den rechnet Nachweis der Existenz und Eindeutigkeit der Lösung des Problems innerhalb der berechneten Schranken. Ist diese nicht gegeben, so stellt der Rechner dies fest und informiert hierüber den Benutzer. Der Rechner informiert den Benutzer auch dann, wenn er mittels des vorgegebenen Algorithmus oder des verwendeten Zahlenformates die Lösung nicht finden kann.

Dies sind Ergebnisse, welche mit herkömmlicher

Gleitkomma-Arithmetik nicht erzielt worden sind und auch nicht erzielt werden können. Die aufzuwendende Rechenzeit ist stets von der gleichen Größenordnung wie diejenige, welche auch bei Ausführung eines herkömmlichen Gleitkomma-Näherungsalgorithmus aufzuwenden wäre. Die neue Arithmetik eröffnet der Numerik neue Dimensionen im Hinblick auf eine automatisierte Fehlerkontrolle beziehungsweise eine Nachkorrektur von Rechenergebnissen durch den Rechner selbst bis hin zu maximaler Genauigkeit und sogar noch darüber hinaus. Numerisches Rechnen wird mit diesem Werkzeug von dem Niveau einer experimentellen auf das einer mathematischen Wissenschaft angehoben. Bei der 4361 der IBM ist diese neue Arithmetik bereits in Hardware realisiert worden.