Login |

Programming massivly parallel - driving graphics boards to the extreme


Achievement: SWS : 2, Credits 4

Course type : Seminar

Language: English


See the Introduction Slides

See the Introduction to CUDA Development Slides



Graphics process unit (GPU) originally designed to render computer graphics on a monitor, to produce a color for every pixel on the screen by using programmable arithmetic units known as pixel shaders. A pixel shader combines various inputs (geometry, colors, texture coordinates, etc.) in final color's calculation to produce high quality graphics output. In 2000, researchers observed that these input "colors" could actually be "any" data, and since then GPUs have been programmed to address non-graphics problems in science, engineering, finance, and so on.

Recently, GPUs have been accelerated scientific computing and visualization applications by providing a powerful computational platform to exploits parallelization from those applications. Moreover, we can find GPU boards easily in PC, laptop, desktop. However, implementing a computational problem on GPUs requires knowledge of its architecture and programming model.

This seminar will introduce architecture and programming model for GPU. The main focus is to provide students the basic knowledges to write program on GPU board. More than that, students are also expected to exploit and understanding parallelization strategies for GPU.



Wed, 29.06.2011, 10:15 to 11:45
1. Stephan Sellien Knapsack Problem (Slides)
2. Dirk Kirsten Travelling Salesman Problem (Slides)
Wed, 06.07.2011, 10:15 to 11:45
1. Oliver Sampson DBScan clustering (Slides)
2. Sergey Pulnikov GPU Search



See the Introduction Slides


Course criteria

  1. Seminar Presentation :

    • Check 1-2 weeks before with your advisor (at total minimum 7 day before)
    • 30 minutes, including questions and discussion

  2. Summary and Implementation

    • 2-4 pages in LNCS-Style (LaTeX) until 30/09/2011,
      The latex layout which has to be used can be found here.


Basic knowledge in Parallel Programming