... machen.1
Die Handbücher zu Compilern und Tools sind in der Bibliothek vorhanden.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... besprochen.2
in den folgenden Versionen: CXdb 2.0, CXpa 1.3, APC 1.1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... ausgewählt.3
Dabei kann man über die Wahl von RCS statt SCCS durchaus streiten.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... LINALG4
Die Sourcen zu diesem und allen weiteren Beispiel-Programmen befinden sich unter /tuhh/info/tu_beispiele/convex_kurs
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... gelöst.5
Diese Routine stammt, wie auch die folgenden zur LU-Zerlegung (LUDCMP und LUBKSB), aus dem Buch ``Numerical Recipes'' von Press, Flannery, Teukolsky und Vetterling.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... Optimierung6
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... ersetzt.8
Bei älteren RCS-Versionen muß man stattdessen ''$Header'' benutzen.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... würde.9
Hier wie im folgenden werden optionale Parameter in [    ] angegeben.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... mining''.10
Diese Umformungen werden ausführlich im Abschnitt 4.2.1 besprochen.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... ''Aliasing''.11
Beispiele für Aliasing s. Abschnitt 4.2.2.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... MFLOPS.12
Mit dieser Spitzen-Leistung (''Peak Performance'') verhält es sich wie mit der Lichtgeschwindigkeit in der Physik: Normalerweise liegt man weit darunter, und je mehr man sich ihr nähern will, umso mehr Energie braucht man, ohne sie je erreichen zu können.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... können.13
Umgekehrt gilt aber auch: Programme, die nur mit -O1 oder niedriger optimiert wurden, enthalten keine Vektor-Kommandos und gehören daher nicht auf die C3840 (eine mögliche Ausnahme: skalare Programme, die den riesigen Speicher benötigen)!
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... aufgeteilt:14
Die Programmfragmente sollen die Struktur der Umformung verdeutlichen; sie sind nicht unbedingt mit dem vom Compiler erzeugten Code identisch. BLA(I) etc. steht dabei nicht für einen Funktionsaufruf, sondern für eine Menge von Array-Operationen.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... wichtig.15
Für Aliasing in Fortran vgl. die Bemerkung in Abschnitt 3.3.1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... B.16
Warum das Argument #1 sein soll, weiß ich auch nicht. Vielleicht zählt der Application Compiler rückwärts ?
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... profitieren.17
Dies ist auch der Grund, warum man zur NAG auch immer die VECLIB mit einbinden muß.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... Anfängen.18
Der Application-Compiler soll hier weitergehen: Er ist geplant als ''automatischer Parallelisierer und Vektorisierer'' für ein zukünftiges Viel-Prozessor-System.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... zurückgegeben.19
Diese Konstruktion ist analog zu COMMON-Blöcken in FORTRAN, unterliegt aber einer strengen Typprüfung.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.