Der aufstrebende Bereich des Cloud-Computing ermöglicht die dynamische Zusammenstellung beliebiger Rechnersysteme für anspruchsvolle verteilte Anwendungen. Gleichzeitig ist die Programmierung moderner Grafikkarten (GPU-Computing) ein wichtiges Mittel zur Umsetzung rechenintensiver Anwendungen geworden. Das Thema dieses Projektseminars (Praktikum) ist die Verwendung von GPUs in Cloud-Systemen. Hierbei müssen CPUs und GPUs verwaltet und die Kommunikation zwischen den Rechnersystemen realisiert werden. Die OpenCL-API (Open Computing Language) spezifiziert ein einheitliches Modell für die Programmierung auf Rechnersystemen mit Graphics Processing Units (GPU) und CPU. In diesem Projektseminar soll eine Lösung entwickelt werden, die OpenCL für die Verwendung in Cloud-Systemen erweitert. 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, die eingehende Arbeitsaufträge annimmt und auf die zur Verfügung stehenden Ressourcen (GPUs und CPUs) verteilt. Hierbei müssen insbesondere Ressourcenanforderungen spezifiziert und überprüft werden.
- Entwurf und Implementierung einer Bibliothek für OpenCL, welche die Verwaltung von CPUs und GPUs und die notwendige Netzwerkkommunikation innerhalb von Cloud-Systemen übernimmt. Um eine größtmögliche Kompatibilität zu bestehenden OpenCL-Anwendungen zu gewährleisten, soll sich das Interface dieser Bibliothek am bestehenden OpenCL Interface orientieren.
|