Login |
 
 

Programming massivly parallel - driving graphics boards to the extreme

Overview

Achievement: SWS : 2, Credits 4

Course type : Seminar

Language: English

Overview

See the Introduction Slides

See the Introduction to CUDA Development Slides

 

Content

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.

 

Topics

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

 

Literature

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.

Prerequisites

Basic knowledge in Parallel Programming