Zur Seitennavigation oder mit Tastenkombination für den accesskey-Taste und Taste 1 
Zum Seiteninhalt oder mit Tastenkombination für den accesskey und Taste 2 
Startseite    Anmelden     
Logout in [min] [minutetext]

Projektseminar: Eine Programmiersprache zur sicheren Programmierung von GPUs: Entwicklung und Evaluation des Descend-Compilers - Einzelansicht

Grunddaten
Veranstaltungsart Projektseminar Langtext
Veranstaltungsnummer 102058 Kurztext
Semester WS 2020/21 SWS 6
Erwartete Teilnehmer/-innen 8 Studienjahr
Max. Teilnehmer/-innen 8
Credits Belegung Belegpflicht
Hyperlink http://www.uni-muenster.de/PVS/lehre/ws20/projektseminar.html
Weitere Links Learnweb
Sprache deutsch
Termine Gruppe: [unbenannt] iCalendar Export für Outlook
  Tag Zeit Rhythmus Dauer Raum Raum-
plan
Lehrperson Status Bemerkung fällt aus am Max. Teilnehmer/-innen
Einzeltermine anzeigen
iCalendar Export für Outlook
Di. 10:00 bis 12:00 woch 03.11.2020 bis 09.02.2021       

Findet digital (als Zoom-Konferenz) statt.

 
Gruppe [unbenannt]:
 


Zugeordnete Personen
Zugeordnete Personen Zuständigkeit
Gorlatch, Sergei, Prof. Dr. verantwort
Hagedorn, Bastian, Dr. begleitend
Köpcke, Bastian begleitend
Fey, Florian begleitend
Studiengänge
Abschluss - Studiengang Sem ECTS Bereich Teilgebiet
Bachelor - Informatik (82 079 20) -
Master - Informatik (88 079 20) -
Bachelor - Informatik (82 079 7) -
Bachelor - Informatik (82 079 11) -
Master - Informatik (88 079 8) -
Master - Informatik (88 079 14) -
Bachelor - Informatik (82 079 14) -
MEd Gymnasien u Gesamt - Informatik (E3 079 19) -
Prüfungen / Module
Prüfungsnummer Modul
17001 Projektseminar - Bachelor Informatik Version 2020
13001 Informatik-Projektseminar - Master Informatik Version 2020
18016 Projektseminar - Bachelor Informatik Version 2011
16009 Projektseminar - Bachelor Informatik Version 2007
17016 Projektseminar - Bachelor Informatik Version 2011
13001 Informatik-Projektseminar - Master Informatik Version 2014
14001 Projektseminar - Master Informatik Version 2008
18001 Projektseminar - Bachelor Informatik Version 2014
14201 Projektseminar - MEd Gymnasien u Gesamt Informatik Version 2019
Zuordnung zu Einrichtungen
Fachbereich 10 Mathematik und Informatik
Inhalt
Kurzkommentar

Link zum Learnweb-Kurs:

https://sso.uni-muenster.de/LearnWeb/learnweb2/course/view.php?id=47488

Kommentar

Grafikkarten (GPUs) sind ein wichtiger Bestandteil von modernen Hochleistungsrechnern. Die Programmierung von GPUs ist bekannt dafür, schwierig und fehleranfällig zu sein. Ein Grund für die Schwierigkeiten in der Programmierung von GPUs sind die dafür zur Verfügung stehenden Low-Level-Programmiersprachen, wie CUDA oder OpenCL. In Anlehnung an die Programmiersprache C bieten diese eine große Flexibilität und Kontrolle über die unterliegende Hardware auf Kosten von Sicherheitsmechanismen, die vor Programmierfehlern wie illegalen Speicherzugriffen, Null-Pointer-Dereferenzierungen und Data Races schützen.

Für die Programmierung von CPUs existieren heutzutage Programmiersprachen, die diese Probleme erfolgreich adressieren, während Experten weiterhin die volle Kontrolle über das System behalten. Die wohl bekannteste Sprache in diesem Kontext ist Rust. Beispielsweise gibt es in Rust ein Konzept, nachdem Daten von einzelnen Codeabschnitten besessen werden. Nur ein besitzender Codeabschnitt kann die Daten manipulieren. Dadurch können Fehler wie Data Races erfolgreich vermieden werden.

Basierend auf den in Rust verwendeten Ideen zur Absicherung von paralleler Programmierung wird in der Arbeitsgruppe Parallele und Verteilte Systeme der WWU in Kooperation mit Forschern der University of Edinburgh die Programmiersprache Descend entwickelt. Descend erweitert die Konzepte in Rust um GPU-spezifische Sprachkonstrukte und soll die sichere, aber hardwarenahe Programmierung von GPUs ermöglichen. Ziel ist es, GPU-Programme in Descend zu schreiben und diese mit einem in Rust implementierten Source-to-Source Compiler in korrekten hochperformanten CUDA- oder OpenCL-Code zu übersetzen.

In diesem Projektseminar soll der Descend-Compiler weiterentwickelt und evaluiert werden. Descend soll genutzt werden, um praktisch relevante Anwendungen aus dem Bereich des Hochleistungsrechnens zu implementieren. Dazu werden als Teil des Projektseminars bestehende Implementierungen in CUDA und OpenCL analysiert und in Descend neu implementiert. Gleichzeitig wird an der Codegenerierung gearbeitet, die entsprechend den Anforderungen der Anwendungen angepasst und weiterentwickelt wird. Am Ende des Projektseminars soll für eine Auswahl an Anwendungen hochperformanter GPU-Code generiert und dessen Performance mit handgeschriebenem CUDA- und OpenCL-Code verglichen werden.

Voraussetzungen

Die Teilnahme an diesem Projektseminar setzt grundlegende Kenntnisse der Programmiersprache C++ voraus. Kenntnisse in der parallelen Programmierung sind von Vorteil.

Leistungsnachweis Vorträge, Implementierung eines Softwaresystems, Ausarbeitung, aktive Teilnahme

Strukturbaum
Keine Einordnung ins Vorlesungsverzeichnis vorhanden. Veranstaltung ist aus dem Semester WS 2020/21 , Aktuelles Semester: SoSe 2024