Description |
Heterogenität spielt bei modernen Rechnerarchitekturen eine entscheidende Rolle. Neben den traditionellen und multi-core CPUs haben sich Grafikprozessoren (GPUs) als sinnvolle Ergänzung für rechenintensive Anwendungen erwiesen. Die Programmierung solcher Systeme ist aufwendig. Mit OpenCL steht zwar inzwischen ein Programmiermodell bereit, welches die einheitliche Programmierung ermöglicht; dies ist jedoch ein low-level-Programmiermodell, mit aufwendiger und fehleranfälliger Programmierung.
An der Universität Münster wird zur Zeit die SkelCL-Bibliothek entwickelt, die eine vereinfachte Programmierung von heterogenen parallelen Systemen ermöglichen soll, durch zwei high-level Konstrukte: - vorgefertigte parallele Muster vereinfachen die Beschreibung von Berechnungen, - ein Vektor Datentyp führt implizit nötige Datentransfers durch und erleichtert so die Datenverwaltung.
Im Rahmen des Projektseminars soll die vorhandene SkelCL-Bibliothek erweitert und ihre Implementierung verbessert werden. Das Vorhaben beinhaltet insbesondere:
- Entwurf und Implementierung eines Interfaces zur Durchführung von einfachen Vektoroperationen, wie Vektoraddition oder -multiplikation.
- Optimierung und Anpassung der vorhandenen Implementierung auf spezielle OpenCL Devices, wie z.B. GPUs von NVIDIA oder CPUs von Intel.
- Implementierung von dynamischem Zusammenfassen von parallelen Mustern, um den Overhead bei der Ausführung zu reduzieren.
|