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: | 0 |
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.
|
| |