Einführung
PHI ist eine Parallele H-matrix Implementierung für sequentielle und parallele rechnersysteme mit geteiltem und verteiltem speicher. Hierarchische matrizen, oder kurz H-matrizen, stellen eine klasse von matrizen dar, welche die komplette matrix-algebra ermöglichen, z.b. matrix-multiplikation und matrix-inversion. Dabei erfolgen die einzelnen operationen mit fast linearem aufwand. Für eine vertiefte einführung in dieses gebiet, sei auf die einschlägige literatur verwiesen.
Das hauptziel bei der programmierung von PHI liegt in der implementierung dieser matrix-algebra und deren parallelisierung. Dabei werden die parallelen algorithmen sowohl für rechner mit geteiltem speicher, also z.b. multi-prozessor workstations oder serversysteme, als auch für solche mit verteiltem speicher, etwa netzwerke von workstations oder cluster, entwickelt. Im ersteren fall erfolgt die parallelisierung mittels POSIX Threads. Für den fall eines verteilten speichers wird auf nachrichten-basierte kommunikation gesetzt, etwa mittels MPI.
Anforderungen
PHI wurde in der programmiersprache C++ implementiert. Für andere sprachen, etwa C und Fortran, existieren funktionen, die die wichtigsten algorithmen zur verfügung stellen.
Von einer reihe von compilern, sowie den hiermit verbundenen betriebssystemen ist ein problemloser betrieb von PHI bekannt, darunter befinden sich:
- Linux (x86, Opteron, Itanium, PowerPC, Alpha) mit GCC, Intel-CC, PathScale-CC
- Sun Solaris mit GCC und Sun-CC,
- Darwin mit GCC und IBM VisualAge,
- HP-UX (PA-RISC) mit HP-CC (aCC),
- AIX mit IBM Visual-Age und
- IRIX mit mips-cc.
Der grossteil der eigentlichen algebra in PHI is mittels functionen aus dem LAPACK standard implementiert worden. Dementsprechend wird eine solche software-bibliothek vorausgesetzt (siehe auch die links). Für die nutzung der parallelen algorithmen auf einem system mit verteiltem speicher ist eine funktionierende MPI implementierung notwendig. Analog hierzu, wird das vorhandensein der PThread-bibliothek auf einem rechner mit gemeinsamem speicher vorausgesetzt.
Die folgenden software-bibliotheken werden von PHI unterstützt, sind aber für den betrieb nicht zwingend erforderlich:
- zlib: ein-/ausgabe von komprimierten dateien
- X11: unterstützung für die grafische ausgabe
Lizenz
PHI ist für nicht-kommerzielle wissenschaftliche zwecke bzw. lehre frei verfügbar. Um den quelltext zu erhalten, füllen Sie bitte die lizenzvereinbarung aus.