SFB 342 Up Prev Next Tour durch die Forschungsschwerpunkte


Parallele und verteilte Ein-/Ausgabe auf Netzen von Arbeitsplatzrechnern

Als Erweiterung des normalen Programmiermodells mit Nachrichtenaustausch sollte in einer parallelen Programmierumgebung auch parallele Ein-/Ausgabe angeboten werden. Eine Anbindung gewöhnlicher E/A an das Programmiermodell des MMK war bereits in den Jahren 1990-1994 erarbeitet worden. Von 1995 bis 1997 wurde diese E/A parallelisiert und für PVM zur Verfügung gestellt. Ein Benutzungskonzept und eine effiziente Implementierung paralleler E/A war 1995 (und ist bis heute) Gegenstand zahlreicher weltweiter Forschungsanstrengungen (siehe z.B. Parallel I/O Consortium). Ein Konzept hierzu sollte durch den Vergleich existierender Arbeiten und durch Benutzerbefragungen erstellt werden.


Anwendungsanforderungen

Zu Beginn der Arbeiten existierte noch kein Konsens über die spezifischen Anforderungen an parallele E/A-Systeme. Zwar sahen Anwender die Notwendigkeit zur Leistungssteigerung in den Ein-/Ausgabephasen ihrer Programme, konnten jedoch nur wenig zur Erarbeitung einer Methodik der Nutzung paralleler E/A beitragen. In verschiedenen Untersuchungen wurde an verschiedenen Institutionen versucht, das E/A-Verhalten existierender paralleler Programme zu analysieren und daraus Entwurfskonzeptet für parallele E/A-Systeme abzuleiten. Zusammen mit den Ergebnissen der amerikanischen Scalable I/O Initiative ergab sich ein Überblick über Probleme und Konzepte und die Erkenntnis, daß Dateizugriffe paralleler Anwendungen von denen sequentieller deutlich abweichen. Zur optimalen Anpassung an parallele Systeme sind deshalb besonders ausgelegte Benutzungsschnittstellen der parallelen E/A notwendig.

Im Rahmen einer umfassenden Studie wurden geplante und existierende kommerzielle und frei erhältliche E/A-Systeme auf die in ihnen realisierten Zugriffsmechanismen hin kategorisiert [Lam97, LLRB96]. Es wurden 11 Systeme analysiert, darunter der Standardisierungsvorschlag MPI-IO, das Public Domain-Produkt PIOUS sowie parallele Dateisysteme von Herstellern von Hochleistungsrechnern (z.B. von nCube und IBM). Bei insgesamt 10 möglichen Zugriffssemantiken ergab sich ein uneinheitliches Bild der untersuchten Systeme. Keines deckte alle Varianten ab, alle jedoch die Hälfte der Varianten oder mehr. Ein Kandidat, der eine gute Abdeckung der Benutzeranforderungen mit seiner Schnittstelle erreicht, ist das parallele E/A-System PFS von Intel. Es wurde deshalb als Kandidat für weitere Untersuchungen und Entwicklungen gewählt.


Schnittstelle für die parallele E/A

Die Zugriffssemantik auf Dateien eines parallelen E/A-Systems wird als Modus bezeichnet und ist durch mehrere Elemente gekennzeichnet: Durch die Dateizeiger, die je Prozeß privat oder für alle beteiligten Prozesse gemeinsam sein können, die Zuteilung der Datensätze zu den Prozessen und die Unterscheidung, ob Zugriffsoperationen unabhängig oder kollektiv durchgeführt werden. Jeder Modus definiert eine spezifische Kombination dieser drei Eigenschaften.

Bei der Konzeption der Benutzungsschnittstelle spielten die folgenden Überlegungen eine wichtige Rolle: a) Die Schnittstelle sollte bezüglich ihrer Syntax an die üblichen E/A-Operationen von POSIX.1 angelehnt sein, um die Einarbeitungszeit der Anwender zu verkürzen. b) Die Schnittstelle sollte möglichst viele relevante Modi bieten und leicht um weitere zu ergänzen sein. c) Da wir verschiedene Verteilungsstrategien für die einzelnen Dateien untersuchen wollten, durfte die Schnittstelle keine Abhängigkeiten zur Datenverteilung aufweisen. d) Die Schnittstelle sollte asynchrone E/A-Operationen bereitstellen, um eine Überlagerung von Berechnung und E/A zu gewährleisten und damit die Effizienz zu steigern. e) Schließlich sollte die Schnittstelle vom parallelen Programmiermodell, mit dem sie zusammen eingesetzt wird, unabhängig sein.

Die Wahl einer geeigneten Schnittstelle fiel auf das durch PFS von Intel angebotene Modell. Der wesentliche Vorteil hierbei ist, daß alle von den Anwendern als wichtig erachteten Zugriffssemantiken durch einzelne Modi abgedeckt sind: atomare und nicht-atomare Unix-Zugriffssemantik, Logbuchsemantik, Broadcast/Reduce-''ßemantik, Gather/Scatter-Semantik und eine einfache Datensatzsemantik. Eine detaillierte Beschreibung der Modi findet sich in [Lam97]. Im Rahmen der durchgeführten Arbeiten wurde das Modell von PFS in erweiterter Form für vernetzte Arbeitsplatzrechner implementiert und als paralleles Dateisystem anderen Teilprojekten zur Verfügung gestellt. Gleichzeitig wurde es in die Lehre im Rahmen des Parallelrechnerpraktikums übernommen.

Bei der Realisierung der Schnittstelle durch eine Programmierbibliothek standen die folgenden Konzepte im Vordergrund:

Portierbarkeit. Das System soll leicht auf verschiedene Unix-Derivate portiert werden können. Dazu ist es nötig, daß das parallele E/A-System nicht auf herstellerspezifischen Eigenschaften der unterschiedlichen Zielsysteme aufbaut.

Heterogenität. Das E/A-System muß mit Programmierbibliotheken (z.B. PVM) zusammenarbeiten, die die gleichzeitige Verwendung von nicht-binärkompatiblen Rechnern gestatten.

Skalierbarkeit. Es muß darauf geachtet werden, daß möglichst viele der parallelen E/A-Operationen nebenläufig ausgeführt werden können. Da die verwendeten Arbeitsplatzrechner alle mit eigenen Festplatten ausgerüstet sein sollten, gilt es, möglichst alle existierenden E/A-Kanäle parallel zu nutzen. Im besten Falle kann so eine lineare Skalierbarkeit der E/A-Bandbreite erreicht werden.

Sicherheit. In Mehrbenutzerumgebungen muß der bekannte Schutz gegen unberechtigte Zugriffe Dritter realisiert werden. Weiterhin sind Mechanismen zu implementieren, die die Konsistenz der Daten beim gleichzeitigen Zugriff durch mehrere Prozesse gewährleisten.

Zur Erreichung dieser Ziele wurde unsere Implementierung PFSLib als RPC-basiertes verteiltes System realisiert, das Dateien über mehrere Platten verteilt und dadurch Datenlokalität unterstützt. PFSLib ist von der verwendeten Programmierbibliothek zur parallelen Programmierung unabhängig und wird im Rahmen der Arbeiten des SFB primär mit PVM-Programmen zusammen eingesetzt.


Implementierung und Evaluierung

Die Implementierung des parallelen E/A-Systems PFSlib [Lam97] stützt sich auf das Client/Server-Modell ab. Hierbei wurde ein Server-Prozeß implementiert, der die Lese- und Schreibanforderungen entgegennimmt und bearbeitet. Als Client-Prozesse treten die Prozesse der parallelen Anwendung selbst auf, die nebenläufig auf parallele Dateien schreiben wollen. Es wird das Verfahren der statusbehafteten Auftragnehmer eingesetzt, das im allgemeinen zu einer höheren Effizienz als statuslose Verfahren führt, jedoch z.B. auf Systemzusammenbrüche empfindlicher reagiert. Die Alternative eines statuslosen Verfahren war allerdings durch Entscheidungen bei der Semantik der Schnittstelle bereits ausgeschlossen worden. Die Kooperation zwischen dem Server-Prozeß und den Client-Prozessen erfolgt über enfernte Prozeduraufrufe (RPC). Die eigentliche Ein-/Ausgabe wird über spezielle Dienstprozesse abgewickelt, die bei einigen Zugriffsmodi der Dateien einen hohen Grad an Asynchronität erzielen. Hierbei wird der modifizierte Wert des Dateizeigers bereits zur Programmfortsetzung an den Auftraggeber zurückgeliefert, während die eigentliche E/A-Operation noch in Bearbeitung ist. Die Verwaltung der Verteilungsinformation der Dateien, die die Zuordnung zu den lokalen Dateien beschreibt, wird in balancierten Binärbäumen vorgenommen. Die üblichen Operationen zum Einfügen und Löschen in diesen Bäumen waren für das parallele E/A-System nicht ausreichend und wurden um komplexere Verfahren für diesen Anwendungsfall erweitert.

Die notwendigen Dienste zur Verwaltung und Koordination der parallelen Dateizugriffe stellt ein zentraler Verwaltungsprozeß (pfsd) zur Verfügung. Zugriffe auf entfernt liegende Teile einer verteilten Datei werden von speziellen Daemonen ermöglicht. Diese iod-Prozesse selbst sind statuslos und führen lediglich Aufträge aus, die ihnen vom pfsd-Prozeß übermittelt werden. Überschreitet das Auftragsvolumen einen einstellbaren Schwellenwert, spaltet der iod-Prozesse Kindprozesse ab, die anschließend die Operation ausführen. Auf diese Weise erhält man eine verbesserte Skalierbarkeit der Leistung des Systems. Die dritte Komponente von PFSLib ist die Benutzerbibliothek, die zum Anwenderprogramm dazugebunden wird und die Umsetzung der Schnittstelle darstellt.

An PFSLib wurden umfangreiche Leistungsmessungen vorgenommen. Als Zielarchitekturen kamen Arbeitsplatzrechner verschiedener Hersteller zum Einsatz, die über konventionelles Ethernet und zusätzlich über ATM gekoppelt genutzt werden. Die Ergebnisse zeigen, daß teilweise deutlich höhere E/A-Leistungen erreicht werden konnten als mit bereits existierenden Systemen. Details finden sich in [Lam97].

Die Tauglichkeit von PFSLib für reale Anwendungen wird zur Zeit in einer Kooperation mit dem Teilprojekt B2 evaluiert. Das parallele E/A-System wird hier als Basis für das Datenbanksystem MIDAS eingesetzt.