IT-Universitetet i København
 
  Tilbage Kursusoversigt
Kursusbeskrivelse
Kursusnavn (dansk):High Performance Computing 
Kursusnavn (engelsk):High Performance Computing 
Semester:Efterår 2018 
Udbydes under:cand.it., spil (games) 
Omfang i ECTS:7,50 
Kursussprog:Engelsk 
Kursushjemmeside:https://learnit.itu.dk 
Min. antal deltagere:15 
Forventet antal deltagere:
Maks. antal deltagere:50 
Formelle forudsætninger:Students must have experience with and be comfortable with programming, and be capable of independently implementing algorithms from descriptions in pseudocode. This corresponds to at least having passed an intermediate-level programming course and created medium sized software projects.

Basic mathematics understanding; Trigonometry, vectors and linear algebra, etc. 
Læringsmål:

  • Design and implement algorithms for specific hardware architecture (especially cache layout).

  • Explain how memory is structured in modern hardware architecture (CPU registers, cache levels, main memory).

  • Implement parallel C++11 code using multiple threads.

  • Use SIMD instructions on CPU to boost single threaded performance.

  • Write code that minimizes numerical errors

  • Use the appropriate floating-point representation

  • - Different trade-offs of speed / accuracy / size
    - Using IEEE 754
    - Working with numerical errors

  • Compute shaders / OpenCL / CUDA

  • - Data transfer
    - Memory model
    - Optimizing performance using shared memory between hardware threads
    - Job distributions

  • Describe performance characteristics of a program (algorithmic complexity, cache misses, memory access patterns, scalability)

  • Use data-oriented design to performance tune code.
  •  
Fagligt indhold:The course will focus on how to achieve the highest possible performance based on modern hardware architecture. In the course you will use low level C++ code for creating solution using vectorization, cache-friendly memory layout and multithreading. In the course you will also learn how to use the GPU to solve certain kind of problems using Compute Shaders / OpenCL / CUDA. 
Læringsaktiviteter:

10 weeks of lectures. 4 weeks of project work.

The lectures of the class will include class-based discussions and small quizzes to make the students reflect about the topics.

The course will contain compulsory programming assignments.

Weekly exercises (5 of which is mandatory). 

Obligatoriske aktivititer:5 mandatory exercises must be handed in and approved.

Be aware: The student will receive the grade NA (not approved) at the ordinary exam, if the mandatory activities are not approved and the student will use an exam attempt. 
Eksamensform og -beskrivelse:D22: Aflevering med mundtlig eksamen suppleret af aflevering., (7-scale, external exam)

Submission of an individual project including source code, binaries (if any) and a short report describing the implementation details and the theory used.

The exam will cover both the curriculum as well a project.

Oral exam: 20 min.