Bibliotheken zur Entwicklung paralleler Algorithmen
Unterprogramm-Bibliotheken, die im SFB 393 entwickelt wurden.
(vor 1996: DFG-Forschergruppe "SPC")
Die Bibliotheken liegen jeweils in einer Version für verschiedene
Rechnerarchitekturen vor (in den entsprechenden Unterverzeichnissen)
/afs/tu-chemnitz.de/project/sfb393/FEM/libs/$(archi)/
mit:
archi=LINUX Linux (32bit), mit PVM 3.4 oder MPICH 1.1.1
archi=LINUXX64 Linux (64bit), mit PVM 3.4, (gcc-Version 4.8.5)
archi=UBU64 Ubuntu (64bit), (gcc-Version 7.3.0)
archi=OMPI64 Linux (64bit), mit OpenMPI
ältere Versionen:
archi=parix Parix auf Transputersystemen (ACE-Compiler)
archi=ppc Parix auf PowerPC-Systemen (GCPowerPlus, Xplorer)
archi=ppcmpi wie ppc, nur Kommunikation mit MPI statt Parix
archi=SUN4 SunOS 4.1.3, mit PVM 3.4
archi=SUN4SOL2 SunOS 5.x, Solaris 2, mit PVM 3.4
archi=SUNMP SunOS 5.x (MP), mit PVM 3.4 (=SUN4SOL2)
archi=HPPA HP-UX 10, mit PVM 3.4
archi=HPPA64 HP-UX 11 (64-Bit-Adressen), mit PVM 3.4
archi=LINUX_lam Linux, mit LAM-MPI 6.5.9 (sfb393/lammpi)
archi=LINUX_LAM Linux, mit LAM-MPI 7.1.1 (SuSE Distrib.)
archi=CLIC Linux auf CLIC mit LAM-MPI 6.3.2
archi=IA64 Linux auf Itanium-2 (64-Bit-Adr), Intel-Compiler, LAM-MPI
archi=IA64g Linux auf Itanium-2, GNU-Compiler, LAM-MPI
archi=CHIC Linux (64bit), gcc-3.4.6, MVApich-2
archi=CHICO Linux (64bit), gcc-3.4.6, OpenMPI
archi=CHIC420 Linux (64bit), gfortran 4.2.2, MVApich-2
archi=CHICO420 Linux (64bit), gfortran 4.2.2, OpenMPI
archi=CHICP Linux (64bit), Pathscale 3.1, MVApich-2
archi=CHICPO Linux (64bit), Pathscale 3.1, OpenMPI
Die folgenden Bibliotheken sind jeweils auf allen genannten Systemen
in gleicher Weise nutzbar. Spezifische Aspekte der Parallelität treten
dabei nur in der ersten Bibliothek auf. Einzelne Routinen aus den letzten
beiden Bibliotheken benutzen aber Unterprogramme der libCubecom.a.
- libCubecom.a / libMPIcubecom.a / libMPIcom.a
Routinen zur intelligenten Kommunikation im Hypercube (incl. Aufbau
der virtuellen Hypercube-Topologie und globaler Operationen über alle
Prozessoren unter Verwendung von Vektoroperationen aus libvbasmod.a)
Diese 3 Bibliotheken sind alternativ zu verwenden:
libCubecom.a : in Verbindung mit PVM;
libMPIcubecom.a : in Verbindung mit MPI (nutzt nur send/recv im Hypercube);
libMPIcom.a : in Verbindung mit MPI (nutzt auch MPI-gather/-reduce für globale Kommunikation, deshalb nicht notwendig 2n Prozessoren)
libNoPVM.a
enthält Dummy-Routinen, so dass für eine Einzelprozessorversion beim Linken
weder PVM noch MPI benötigt wird.
Diese Bibliothek muss zusätzlich
und vor libCubecom.a eingebunden werden.
- libvbasmod.a
Vektoroperationen im Stile von BLAS1 und darüber hinaus; vereinheitlichte
Rufzeilen, erweiterter Funktionsumfang, unrolled loops, zum Teil Grundlage
für Kommunikationsbibliothek
- libKLZ.a
Sparse-Matrix-Routinen für die
Speicherform KLZ (Kompaktliste zeilenweise)
- libGraf.a / libGrafX.a
elementare X11-Schnittstelle für Fortran;
grafische Ausgabe von 2D/3D-FEM-Netzen und -Lösungen vom Parallelrechner
(eXtended: verwendet Double-Buffer für flimmerfreie Darstellung)
Historie der letzten Änderungen
- libTools.a
einige kleine Hilfsprogramme, die z. T. von Unterprogrammen der anderen
Bibliotheken genutzt werden.
Ausführliche Dokumentationen der in den Bibliotheken enthaltenen
Unterprogramme sind zu finden unter:
- SFB393/02-01a - Bibliotheken zur Entwicklung
paralleler Algorithmen; Dokumentation zu libvbasmod.a, libCubecom.a,
libGraf.a (X11-Schnittstelle), libTools.a
- SFB393/02-02a -
Visualization Tools for 2D/3D-FEM.
Help screen (by Andre John) for the 2D graphics program.
- SPC94_12
- Verarbeitung von Sparse-Matrizen in Kompaktspeicherform KLZ; Dokumentation
zu libKLZ.a
- SPC94_24
- Grafik-Ausgabe vom Parallelrechner für 2D-Gebiete; Dokumentation
zu libGraf.a (FEM-spezifische Grafik)
- SPC95_4
- Grafik-Ausgabe vom Parallelrechner für 3D-Gebiete; Dokumentation
der Verbindung über libGraf.a zu GRAPE
(3D-FEM-Postprocessing)