- ... 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.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.