Anbindung der MPI2-Prozessverwaltung an ein Resource-Management-System
Das Message Passing Interface (MPI) ist das weltweit am meisten benutzte Werkzeug zur Implementierung paralleler Applikation. Es unterstützt sowohl Cluster als auch Shared-Memory basierte Systeme (SMP). Der bislang verwendete Standard MPI-1 realisiert aber ausschließlich ein statisches Prozessmodell, bei dem die Anzahl der Prozesse während der gesamten Ausführung fest ist. Fällt eine Ressource aus wird die gesamte parallele Applikation automatisch beendet. Es besteht außerdem keine Möglichkeit für die Applikation Instanzen hinzuzufügen oder kontrolliert zu beenden.
Im verabschiedeten MPI-2 Standard hat das MPI Forum Schnittstellen zur Verfügung gestellt, die es einer Applikation gestatten auf einen Ressourcenausfall zu reagieren und/oder neue Ressourcen zu integrieren. MPI-2 bietet aber nach wie vor keine explizite Schnittstelle zu Ressource-Management Systemen wie LSF, PBS oder SGE an. Dies ist angesichts der grundlegenden technischen Unterschiede zum einen nicht möglich und zum anderen widerspräche es dem Grundsatz des Standards in die Betriebssystemebene nicht einzugreifen.
Im Rahmen dieser Arbeit soll für die Computing Center Software (openCCS), das Ressourcemanagementsystem des Paderborn Center for Parallel Computing, eine solche Schnittstelle zu MPI-2 Applikationen entwickelt werden. Die Arbeit soll zwei Resultate ergeben:
- Eine Implementierung einer für die Applikation transparente Schnittstelle zwischen MPI-2 und openCCS, die es einer MPI-2 Anwendung gestattet zur Laufzeit bei einem Ressourcenausfall von openCCS neue Ressourcen anzufordern und weiter zu rechnen.
- Entwicklung eines API zwischen Ressourcemanagementsystem und Applikation
Der Schwerpunkt dieser Arbeit liegt auf dem ersten Ziel. Die Implementierung soll die Fehlertoleranz von MPI-2 Anwendungen erhöhen. Bei Ausfall einer Ressource wird die Applikation durch MPI-2 benachrichtigt und fordert mittels der MPI-2 Funktion MPI_COMM_SPAWN neue Ressourcen an. Hier muss (für die Applikation transparent) von openCCS eine neue Ressource angefordert und der Applikation zur Verfügung gestellt werden.
Für das zweite Ziel ist eine Spezifikation zu erstellen, die Datenstrukturen und API-Funktionen definiert und Grundlage einer zukünftigen Implementierung ist.
Anforderungsprofil:
- Programmierung in C
- Linux-Kenntnisse
- Programmierung verteilter Systeme
Literatur:
- Improving the Dynamic Creation of Processes in MPI-2; Euro-PVM/MPI'06; Márcia Cristina Cera, Guilherme P. Pezzi, Elton N. Mathias, Nicolas Maillard, Philippe Navaux
- Resource Management for High-Performance PC Clusters; HPCN Europe 1999; Matthias Brune, Axel Keller, Alexander Reinefeld
- MPICH2; http://www-unix.mcs.anl.gov/mpi/mpich/
Betreuer: Simon, Jens
Informationen: Keller, Axel




Print