ES800: Parallel Computing in Science (5 ECTS)

STADS: 15013801

Level
Master's level course

Teaching period
The course is offered in the autumn semester.

Teacher responsible
Email: daniel@imada.sdu.dk

Timetable
There is no timetable available for the chosen semester.

Prerequisites:
None

Academic preconditions:
Basic knowledge on C-programming is required. Basic knowledge on algorithms, data structures, and complexity is an advantage.

Course introduction
The goal of this course is to introduce the students to the aspects of parallel computing: architecture, programming paradigms, algorithms, and standards. Both traditional computer science algorithms (e.g. sorting, searching, and dynamic programming algorithms) as well as algorithms for scientific computing (e.g. matrix computations) will be covered. Students learn how to apply the most widely used standards for writing parallel programs (MPI, Pthreads, and OpenMP) and to thoroughly quantify the performance of parallel programs by means of metrics for scalability.

Expected learning outcome
At the end of the course the student is expected to be able to:

  • Explain the techniques and algorithms from the curriculum in clear and precise language.
  • Analyze the parallel systems covered in the curriculum with respect to performance and scalability.
  • Apply parallel programming techniques by implementing the techniques and algorithms from the curriculum in example programs.
  • Undertake empirical studies for the parallel implementations and draw sound conclusions.
Subject overview
Parallel programming platforms, principles of parallel algorithm design, basic communication operations, analytical modeling of parallel programs, programming using the message passing paradigm, programming shared address space platforms, dense matrix algorithms, sorting, graph algorithms, search algorithms for discrete optimization problems, dynamic programming, fast fourier transformation.

Literature
There isn't any litterature for the course at the moment.

Website
This course uses e-learn (blackboard).

Prerequisites for participating in the exam
Prerequisite test consisting of programming assignments. (15013812)

Assessment and marking:
Oral exam, Pass/fail, external examiner (5 ECTS). (15013802)

Reexam in the same exam period or immediately thereafter

Expected working hours
The teaching method is based on three phase model.
Intro phase: 21 hours
Skills training phase: 21 hours, hereof:
 - Tutorials: 21 hours

Educational activities

Language
This course is taught in Danish or English, depending on the lecturer. However, if international students participate, the teaching language will always be English.

Remarks
The course is taught together with DM818 Parallel Computing.

Course enrollment
See deadline of enrolment.

Tuition fees for single courses
See fees for single courses.