OpenMP Programming Challenge (Schreiben performance-optimierter Programme mit C oder C++ und OpenMP und Erringen der ultimativen Performance-Krone)

Neuigkeiten
20.4.2006: am Dienstag, den 25.4.2006 um 12:30Uhr findet ein erstes Treffen mit allen interessierten Studenten statt (bei uns im Rechnerpool 0646).

OpenMP Programming Challenge
Dieses Projekt besteht aus 3 Unterprojekten zu je 4SWS, aus denen die Beteiligten je nach angestrebten Abschluß ein oder zwei Unterprojekte auswählen und bearbeiten können. Die Arbeit an den Unterprojekten erfolgt in Zweiergruppen. Diese Unterprojekte sind im Einzelnen:

Sorting Challenge (4SWS)
Ziel dieses Projektes ist es, verschiedene Varianten paralleler Sortierverfahren in OpenMP zu implementieren, zu vergleichen und am Ende die schnellsten Varianten aller Gruppen gegeneinander antreten zu lassen um den ultimativen Sortierchampion zu küren.

Erwartet werden parallele und auf Geschwindigkeit optimierte Implementierungen min. dreier verschiedener Sortierverfahren, von denen jeweils min. 2 Varianten angefertigt werden müssen. Die Implementierung kann wahlweise in C oder C++ erfolgen.

Darüber hinaus sind alle Programme ausführlich und unter Verwendung des Systems Doxygen zu dokumentieren, sowie Performancedaten auf einer parallelen Maschine zu ermitteln. Zur Verwaltung der Quellcodes stehen Subversion-Projektarchive auf dem Server des Fachgebietes zur Verfügung.

Searching Challenge (4SWS)
Ziel dieses Projektes ist es, die aus der Vorlesung Parallelverarbeitung 1 bekannten Algorithmen zur Ermittlung der Anzahl der maximalen Komponenten in einem Graphen und zur Suche des kürzesten Weges in einem Labyrinth zu implementieren, zu vergleichen und am Ende die schnellsten Varianten aller Gruppen gegeneinander antreten zu lassen um den ultimativen Suchchampion zu küren.

 

Die ausführlichen Aufgabenstellungen für diese Aufgaben gibt es online:

 

  • Connected Components - Aufgabe 1
  • Labyrinth - Aufgabe 1

 

Erwartet werden parallele und auf Geschwindigkeit optimierte Implementierungen der beiden Algorithmen, von denen jeweils min. 3 Varianten angefertigt werden müssen. Die Implementierung kann wahlweise in C oder C++ erfolgen.

Darüber hinaus sind alle Programme ausführlich und unter Verwendung des Systems Doxygen zu dokumentieren, sowie Performancedaten auf einer parallelen Maschine zu ermitteln. Zur Verwaltung der Quellcodes stehen Subversion-Projektarchive auf dem Server des Fachgebietes zur Verfügung.

To Test or not to Test (4SWS)
Die Aufgabe bei dieser Projektarbeit besteht darin, Tests für einen OpenMP-Compiler zu entwickeln. Die Funktionalität von OpenMP ist durch die Spezifikation klar umrissen und daher ist es durch kleine Testprogramme problemlos möglich, einen Compiler auf seine Spezifikationstreue hin zu testen. Das Schreiben einer vollständigen Testsuite ist die Aufgabe in diesem Teilprojekt.

Für dieses Projekt muß nur eine Variante jedes Tests entwickelt werden, allerdings sind auch bedeutend mehr Programme als in den anderen Teilprojekten zu implementieren.

 

Die Implementierung muss in diesem Fall in C erfolgen, C++ ist nicht erlaubt (das ist keine Schikane, sondern der zu testende Compiler versteht kein C++). Darüber hinaus sind alle Programme ausführlich und unter Verwendung des Systems Doxygen zu dokumentieren, sowie die Tests unter Verwendung eines Makefiles einfach ausführbar zu gestalten. Zur Verwaltung der Quellcodes stehen Subversion-Projektarchive auf dem Server des Fachgebietes zur Verfügung.

 

Teilnehmerkreis
Studierende der Informatik ab dem 5. Semester und andere Interessierte.

 

Anforderungen
Kenntnisse in C/C++, sowie in OpenMP (am Einfachsten haben es sicherlich Studenten, die die Vorlesung Parallelverarbeitung 1 besucht haben)

 

Umfang
4 SWS (6 Creditpoints) oder 8SWS (12 Creditpoints) - je nach bearbeiteten Projekten. Bitte beachten Sie, dass 1CP einem Arbeitsaufwand von ca. 30h entspricht, so das also für die 4SWS-Variante ein Gesamtaufwand von ca. 180h betrieben werden muss (und das bis zum Ende des Semesters)!

 

Projektbetreuer
Prof. Claudia Leopold
Michael Süß

Bitte melden Sie sich bei Interesse frühzeitig bei Herrn Michael Süß (am Besten schon vor Semesterbeginn per Mail oder persönlich).