OpenMP Programming Challenge (write performance-optimized programs with C or C++ and OpenMP and win the ultimate performance crown)

The content on this page was translated automatically.

News
20.4.2006: on Tuesday, 25.4.2006 at 12:30pm there will be a first meeting with all interested students (at our computer pool 0646).

OpenMP Programming Challenge
This project consists of 3 subprojects of 4SWS each, from which the participants can choose and work on one or two subprojects depending on the degree they are aiming for. The work on the subprojects is done in groups of two. These subprojects are in detail:

Sorting Challenge (4SWS)
The aim of this project is to implement and compare different variants of parallel sorting methods in OpenMP and to have the fastest variants of all groups compete against each other at the end to choose the ultimate sorting champion.

Parallel and speed-optimized implementations of at least three different sorting methods are expected, of which at least 2 variants must be created. The implementation can be done in either C or C++.

In addition, all programs must be documented in detail using the Doxygen system and performance data must be determined on a parallel machine. Subversion project archives are available on the department's server for managing the source codes.

Searching Challenge (4SWS)
The aim of this project is to implement and compare the algorithms known from the Parallel Processing 1 lecture for determining the number of maximum components in a graph and for finding the shortest path in a labyrinth, and at the end to have the fastest variants of all groups compete against each other to select the ultimate search champion.

 

The detailed tasks for these tasks are available online:

 

  • Connected Components - Task 1
  • Labyrinth - Task 1

 

Parallel and speed-optimized implementations of the two algorithms are expected, of which at least 3 variants must be produced. The implementation can be done in either C or C++.

In addition, all programs must be documented in detail using the Doxygen system and performance data must be determined on a parallel machine. Subversion project archives are available on the department's server to manage the source codes.

To Test or not to Test (4SWS)
The task of this project is to develop tests for an OpenMP compiler. The functionality of OpenMP is clearly defined by the specification and therefore it is possible to test a compiler for its specification fidelity without any problems using small test programs. Writing a complete test suite is the task in this sub-project.

Only one variant of each test needs to be developed for this project, but significantly more programs need to be implemented than in the other sub-projects.

 

In this case, the implementation must be done in C, C++ is not allowed (this is not harassment, but the compiler under test does not understand C++). In addition, all programs must be documented in detail using the Doxygen system and the tests must be easy to execute using a Makefile. Subversion project archives are available on the department's server for managing the source codes.

 

Participants
Students of computer science from the 5th semester and other interested parties.

 

Requirements
Knowledge of C/C++ and OpenMP (students who have attended the lecture Parallel Processing 1 will certainly have the easiest time)

 

Scope
4 SWS (6 credit points) or 8SWS (12 credit points) - depending on the projects worked on. Please note that 1CP corresponds to a workload of approx. 30h, so that for the 4SWS variant a total workload of approx. 180h must be done (and that until the end of the semester)!

 

Project supervisor
Prof. Claudia Leopold
Michael Süß

If you are interested, please contact Mr. Michael Süß in good time (preferably before the start of the semester by e-mail or in person).