Inhalt:
Parallele Rechnerarchitekturen und deren Nutzung,
verschiedene Arten und Probleme der Parallelität,
Beispiele anhand einfacher numerischer Algorithmen,
Prozessortopologien und Kommunikationskonzepte
(PVM,
MPI),
(Teile der Vorlesung wurden von G. Haase in einen
Teubner-Band
aufgenommen)
John v. Neumann: "If people do not believe that mathematics is simple,
that is because they do not realize how complicated life is."
Vorwort zu "Parallele Rechnersysteme ..." [Burkhardt u.a.]: "Und siehe da, die Parallelrechner gehorchen aufs Wort. Zugegeben,
manchmal erst aufs zweite oder dritte."
Gordon Moore über "Moore's Law": "Mir ging es um etwas ganz anderes".
(Stern-Interview, 2005)
Seymour Cray (Gründer von Cray Research): "Anyone can build a fast CPU. The trick is to build a fast system.")
Inbetriebnahme des Chemnitzer Linux-Clusters CHiC (2007)
Anschauungsmaterial / Beispiele:
Rechenleistungen
verschiedener Prozessoren mit verschiedenen Compilern in Abhängigkeit
von der Länge der verarbeiteten Felder (Einfluss des Caches und damit
des Speicherzugriffs auf die Gesamtleistung).
Benchmarks
auf dem Chemnitzer Linux-Cluster
CLiC (2000-2007)
Erste Tests
nach Inbetriebnahme des Chemnitzer Linux-Clusters CHiC (2007)
Zum Demo-Beispiel
"Apfelmännchen"
das Rahmenprogramm,
mit dem ein Master/Worker-Prinzip simuliert wird. Auf den Prozessoren läuft
alternativ eines der beiden Unterprogramme
a_master oder
a_slave.
Das mittels PVM ausführbare Demo-Programm: amandel.LINUXX64
und die entsprechenden Programmversionen mit MPI- bzw. PVM-Aufrufen:
helloc_mpi.c,
hellof_mpi.f,
hello_pvm.f
und Makefiles dazu:
Make_mpi,
Make_pvm,
anzuwenden durch: make -f <makefilename>,
bzw. als „Trockentest”: make -n -f <makefilename>,
bzw. ein Makefile, das die vier obigen Makefiles nacheinander (oder einzeln)
aufruft: Makefile,
genauere Infos dann mit 'make help'.
(Abspeichern der hier angegebenen Programmdateien durch Rechtsclick und 'Save Link As...')
Eine Übungsaufgabe (Rechnen mit verteilt gespeicherten Vektoren).
Erweiterte Aufgabenstellung (Rechnen mit verteilt gespeicherten Matrizen und Vektoren).
Als Vorlage für parallele Programme
mit Zeitmessung:
ein Makefile mit den notwendigen Einstellungen für
"MPIcubecom": Make_zeitoder
ein Makefile mit den notwendigen Einstellungen für
"Cubecom" und PVM: Make_zeit_pvm
ein Fortran-Programmbeispiel: zeitf.f zu compilieren mit:
make -f Make_zeit fzeit (bzw.: make -f Make_zeit_pvm fzeit)
dasselbe als C-Programmbeispiel: zeitc.c zu compilieren mit:
make -f Make_zeit czeit (bzw.: make -f Make_zeit_pvm czeit)