Bayreuth Reports on Parallel and Distributed Systems
| Informationen zum Herausgeber |
|
| Angewandte Informatik 2 - Parallele und verteilte Systeme | |
| Email an den Herausgeber |
- 2
-
Parallele Implementierung und Analyse eines expliziten Adams-Verfahrens
(2010)
- Das Adams-Bashforth-Verfahren ist ein numerisches Verfahren zur Lösung von gewöhnlichen Differentialgleichungen. In dieser Arbeit werden mehrere Implementierungsvarianten des Adams- Bashforth-Verfahrens vorgestellt, verglichen und analysiert. Zunächst arbeiten die Implementierungen sequentiell. Später werden die sequentiellen Implementierungen für den Einsatz auf einem Parallelrechner erweitert. Dabei wird besonderen Wert auf die Ausnutzung der Speicherhierarchie durch eine geschickte Organisation der Berechnungsreihenfolge gelegt. Außerdem wird bei der Synchronisation darauf geachtet, dass die Implementierungen auf Mehrkernprozessoren mit einer Shared-Memory- Architektur gut skalieren. Ziel ist die Ausführungszeit des Adams-Bashforth-Verfahrens zu minimieren.
- 3
-
Effiziente parallele Implementierung eines expliziten Euler-Verfahrens für Grafikprozessoren durch Diamant-Tiling
(2012)
- Die hier vorliegende Arbeit beschäftigt sich damit, das explizite Euler-Verfahren auf Grafikprozessoren zu optimieren. Dabei werden die Speicherhierarchien, lokale Datenwiederverwendung, Ausnutzung der Speicherbandbreite der GPU und die Synchronisierung zwischen Host und Device genauer untersucht. Dabei werden zwei Implementierungen näher betrachtet, das Diamant-Tiling und das lineare Verfahren, da sie sich gut eignen um die Optimierungen genauer zu untersuchen. Es stellt sich dabei heraus, dass Optimierungen wie die lokale Datenwiederverwendung und der optimale Zugriff auf den Speicher sich gegensätzlich verhalten. Ein Mischverfahren (das Waben-Tiling), dass dabei die Vorteile des linearen Verfahrens und des Diamant-Tilings vereint, führt daher zu den besten Laufzeiten.
- 4
-
Reduktion des Kommunikationsaufwands iterierter Runge-Kutta-Verfahren für dünnbesetzte gewöhnliche Differentialgleichungssysteme
(2012)
- Iterierte Runge-Kutta (IRK) Verfahren sind eine Klasse von Lösungsverfahren für Anfangswertprobleme gewöhnlicher Differentialgleichungssysteme (DGL), welche ein hohes Parallelisierungspotential besitzen. Während Implementierungen für dichtbesetzte DGL regelmäßig Vektoren der Größe der DGL austauschen müssen, können spezialisierte Löser Kommunikationskosten einsparen, indem nur die wenigen tatsächlich benötigten Vektorelemente ausgetauscht werden. In dieser Arbeit werden parallele Implementierungen von IRK-Verfahren für verteilten Adressraum betrachtet. Es werden zunächst allgemeine Implementierungen für dichtbesetzte DGL vorgestellt. Anschließend wird deren Kommunikation für dünnbesetzte DGL und Probleme mit beschränkter Zugriffsdistanz optimiert. Die entstandenen Implementierungen werden in Hinsicht auf Laufzeit und Skalierbarkeit untersucht. Dafür werden Messungen auf verschiedenen Rechnersystemen mit unterschiedlichen dünnbesetzten DGL ausgewertet. Dabei wird festgestellt, dass eine Implementierung der Kommunikation sowohl für dünnbesetzte DGL als auch für Probleme mit beschränkter Zugriffsdistanz besonders gut geeignet ist.
- 5
-
Implementierung und Untersuchung paralleler Volumen-Rendering-Techniken für Graphikprozessoren
(2013)
- Zuerst soll in dieser Arbeit ein Standardverfahren für einen Volumenraycaster auf einer GPU in OpenCL implementiert und erläutert werden. Hierbei werden kurz die benötigten Algorithmen aus der Computergraphik sowie deren mathematischen und physikalischen Herleitungen erklärt. Dabei werden einige einfache Optimierungen vorgestellt, welche spezifisch auf die Hardware der GPU eingehen. Auch werden einfache Verbesserungen erläutert, welche rein optischer Natur sind. Durch deren Implementierung lassen sich die dreidimensionalen Strukturen der Volumendaten besser erkennen. Zusätzlich ist es mit diesen Verbesserungen möglich die interessanten Bereiche der Volumendaten hervorzuheben. Des Weiteren läuft dieser implementierte Standard-Volumenraycaster auf moderner Hardware bereits mit Bildwiederholraten, welche Interaktivität ermöglichen. Danach soll dieser Standard-Volumenraycaster durch Empty-Space-Skipping, also durch das Überspringen von leeren Bereichen innerhalb der Volumendaten, mit Hilfe eines Octrees beschleunigt werden. Hierbei ist es das Ziel den Raycaster mit dem Octree auf die spezifischen Gegebenheiten der GPU anzupassen. Insbesondere soll versucht werden die SIMD-Effizienz und damit die Performance durch eine geschickte Kombination von der Octreetraversierung und dem Zeichnen des Inhalts eines Octreeknotens zu erhöhen. Durch diese Octreeoptimierung lässt sich die Performance des Raycasters bei Volumendaten mit vielen leeren Bereichen stark erhöhen. Als Nächstes wird in dieser Arbeit versucht, den Raycaster weiter mit persistenten Threads zu beschleunigen. Dieser Versuch scheitert jedoch. So sind sowohl die Performance als auch die SIMD-Effizienz mit persistenten Threads stets geringer als ohne persistente Threads. Abschliessend soll die Ausführung des Raycasters mit Octree auf der GPU näher untersucht werden. Zuerst werden hierfür Messungen durch selbst erstellte Benchmarks vorgenommen. Bei der darauffolgenden Diskussion der Messergebnisse zeigt es sich, dass das Verfahren linear mit dem Chiptakt und der Zahl der Multiprozessoren skaliert. Da es nur einen kleinen Bruchteil der maximalen Speicherbandbreite benötigt, skaliert es nicht mit dem Speichertakt. Die Speicherzugriffe dieses Verfahrens sind bereits so lokal, dass die GPU-Caches gut ausgenutzt werden. Deshalb können die Speicherzugriffszeiten so gut verborgen werden, dass sie sich nicht negativ auf die Performance auswirken. Die Rechenleistung der GPU lässt sich durch das Verfahren jedoch nur mittelmässig bis schlecht ausnutzen. Diese niedrige Ausnutzung ist vor allem auf eine zu niedrige Occupancy und auf eine zu ungleichmässige Auslastung der verschiedenen Ressourcen der GPU zurückzuführen. Jedoch ergeben sich aus den Untersuchungen noch einige weitere Optimierungsansätze, um die erzielte Rechenleistung und damit die Performance zu erhöhen. Obwohl kurz graphische Optimierungen in der Arbeit vorgestellt und implementiert werden, so ist es kein Ziel dieser Arbeit die Bildqualität des Raycasters massiv zu verbessern oder diesen durch verbesserte Näherungslösungen oder Ähnliches zu beschleunigen. Bei vielen dieser Verbesserungen wäre es nur schlecht möglich gewesen spezifisch auf die Eigenschaften der GPU einzugehen. Auch beschäftigt sich diese Arbeit hauptsächlich mit der Verbesserung der SIMD-Effizienz und im Gegensatz zu vielen anderen GPGPU-Arbeiten nur wenig mit der Optimierung der Speicherzugriffe.
- 6
-
MPI auf Basis von RESTful HTTP
(2013)
- Diese Arbeit beschäftigt sich mit der Entwicklung einer MPI-Implementierung, welche zur Kommunikation RESTful HTTP einsetzt. Im Kontrast zu verbreiteten MPI-Systemen, deren hauptsächlicher Fokus auf dem Einsatz in homogenen und eng gekoppelten Rechnersystemen liegt, bietet ein solcher Ansatz die Möglichkeit, mit MPI umgesetzte parallele Programme in einem Umfeld zu betreiben, dessen Charakteristiken denjenigen des World Wide Web gleichen. Die Arbeit baut auf einer bereits bestehenden prototypischen Implementierung eines solchen Systems auf, die jedoch konzeptionelle Mängel aufweist. Neben der theoretischen Betrachtung von RESTful HTTP im MPI-Umfeld wird darauf aufbauend dieses Basissystem grundlegend überarbeitet und REST-Konformität hergestellt. Nach einer Bewertung dieser Implementierung und einer Analyse von möglichen Optimierungen erfolgen Performance-Messungen und der exemplarische Einsatz des Systems für ein reales Problem des wissenschaftlichen Rechnens.
