Der aufstrebende Bereich des Cloud-Computings ermöglicht die dynamische Zusammenstellung beliebiger Rechnersysteme für anspruchsvolle verteilte Anwendungen. Gleichzeitig ist die Programmierung moderner Grafikkarten (GPUs) ein wichtiges Mittel zur Umsetzung rechenintensiver Anwendungen geworden.
Das Thema dieses Projektseminars ist die Verwendung von GPUs in Clouds. Hierbei müssen GPUs und CPUs auf unterschiedlichen Rechnersystemen verwaltet und die Netzwerkkommunikation zwischen diesen realisiert werden. OpenCL (Open Computing Language) spezifiziert ein einheitliches Programmiermodell für GPU und CPU. Die Arbeitsgruppe PVS hat im Rahmen eines Projektseminars eine OpenCL-Bibliothek namens dOpenCL entwickelt, die die Ausführung von OpenCL-Anwendungen auf verteilten Rechnersystemen in einer Cloud ermöglicht. In diesem Projektseminar soll dOpenCL um fehlende OpenCL-Funktionen, die zur Ausführung komplexer OpenCL-Anwendungen benötigt werden, und um effiziente Mechanismen zur Ressourcenverwaltung in der Cloud erweitert werden.
Im Rahmen dieses Projektseminars erlernen die Teilnehmer zunächst die Grundlagen des Cloud-Computings und der GPU-Programmierung mit OpenCL. Darauf aufbauend sollen abhängig von der Teilnehmerzahl und -qualifikation unterschiedliche Aspekte abgedeckt werden:
- Entwurf und Implementierung einer Scheduling-Komponente für dOpenCL, die eingehende Arbeitsaufträge annimmt, diese auf die zur Verfügung stehenden Rechnersysteme verteilt und gegebenenfalls neue Rechnersysteme in der Cloud für die Verarbeitung startet. Hierbei müssen insbesondere Anforderungen der Arbeitsaufträge an die Rechnersysteme spezifiziert und überprüft werden.
- Weiterentwicklung von dOpenCL durch die Implementierung fehlender OpenCL-Funktionen. Um eine größtmögliche Kompatibilität zu bestehenden OpenCL-Anwendungen zu gewährleisten, soll sich das Interface von dOpenCL an der Spezifikation der OpenCL-API orientieren und für die dynamische Verwendung von Clouds erweitert werden.
|