Springe zum Hauptinhalt
Matthias Pester
Parallelrechner
Matthias Pester 

Grundlagen der Parallelrechnerprogrammierung

Linux-Cluster

Inhalt:

  • Parallele Rechnerarchitekturen und deren Nutzung, verschiedene Arten und Probleme der Parallelität, Beispiele anhand einfacher numerischer Algorithmen, Prozessortopologien und Kommunikationskonzepte
    (PVM, MPI, OpenMP),
  • Teile der Vorlesung wurden von G. Haase in einen Teubner-Band aufgenommen.
  • PC-Pool und Nutzungshinweise für Linux.

Zitate und Links:

  • 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.")
  • Die schnellsten Supercomputer: Top-500
  • Supercomputer-Beispiele: CRAY XMP, o.ä., CRAY-2, IBM 3090, CM-1, GCPP, CLiC, CHiC, Earth Simulator (Aufbau), JUGENE, ..., Linux Cluster im MRZ
  • Inbetriebnahme des Chemnitzer Linux-Clusters CHiC (2007)

Anschauungsmaterial / Beispiele:

Material zur Übung:

  • Dokumentation einiger für PVM und MPI verwendbarer typischer Hypercube-Kommunikationsroutinen (u.a.) - S. 8-31
  • Spezielle Hinweise zur Benutzung von PVM und MPI mit der aktuellen Installation im MRZ (PVM 3.4.6, Open-MPI 1.4.3)
  • Beispiel eines Hostfiles zur Nutzung von PVM oder MPI.
    Bitte beachten, dass einzelne Rechner vorübergehend nicht erreichbar sein können, siehe Informationen des MRZ
  • Mini-Beispiele "Hello World":   in der „neutralen” Version mit Cubecom-Routinen:   helloc.c,   hellof.f,  
    mit den Makefiles dazu als Vorlage: Make_cube_mpi,   Make_cube_pvm,  
  • 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_zeit   oder
  • 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)  

webstat
webstat(0)