TDT4200
Parallel Computing
Autumn
Trondheim
English
About this course
Content
Optimizing algorithms for both single and multi-processors systems as well as accellerators such as GPUs. Choosing numerical algoriths, use of optimized libraries, compiler optimizations and program profiling. How to take advantage of PC-clusters and graphics cards for computationally large tasks which cannot be run on a single processor system will also be covered. Parallel programming assignments in, among others, MPI and CUDA are included in this course.
Learning outcomes
Understanding parallel programing is becoming increasingly more important as PCs and desktops incorporate multicore and multichip multiprocessor technology. Knowledge: The goal of this course is hence: To give the students a good understanding of optimzing serial programs and algorithms within computational science. Skills: Develop the students programming skills for and future multi- and many-core processor systems.
Teaching methods
Lectures and programming/theory assignments.
The course will be given in English. All problem sets/obligatory activity, work/reports , and exams will be given in English.