DM818: Parallel Computing (10 ECTS)

STADS: 15014001

Level
Master's level course

Teaching period
The course is offered in the autumn semester.
Offered according to needs.

Teacher responsible
Email: daniel@imada.sdu.dk

Timetable
Group Type Day Time Classroom Weeks Comment
Common I Monday 16-18 IMADA semi 36-41,43-50
Common I Tuesday 16-18 U130 38
Common I Wednesday 16-18 IMADA semi 36,38-41,43-51
Common I Thursday 08-10 IMADA semi 37,41,49
Common I Friday 08-10 IMADA semi 36-37,39-40,43-48,50-51
Show entire timetable
Show personal time table for this course.

Comment:
Ubegrænset deltagerantal.

Prerequisites:
Bachelor degree in computer science, physics, mathematics, applied mathematics, mathematics-economy or comparable. 
The course cannot be followed if you have passed DM853.
 


Academic preconditions:
The contents of DM507 Algorithms and Data Structures must be known.

Students taking the course are expected to:
• be able design and implement programs, using standard algorithmic approaches and data structures 
• be able to judge the complexity of algorithms, with regard to runtime as well as with regard to space usage.
 


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.

The course builds on the knowledge acquired in the courses DM507 Algorithms and Data Structures. The course gives an academic basis for writing a Master's thesis, that aims at applying parallel coomputing approaches to problems arising in Computer Science or other disciplines including Chemistry, Physics, or Mathematics.
In relation to the competence profile of the degree it is the explicit focus of the course to:
 
• Provide knowledge on a range of specialized models and methods developed in computer science based on the highest international research standards, including topics from the subject's research front
• Give knowledge of computer science models and methods for use in other professional areas
 
• Describe, analyse, and solve advanced computer scientific problems using the models they learned.
• Shed light on stated hypotheses with a qualified theoretical basis and be critical of both own and others research results and scientific models.
• Develop new variants of the learned methods, where the concrete problem requires it.
• Disseminate research-based knowledge and discuss professional and scientific problems with both colleagues and non-specialists.
• Plan and execute scientific projects of high standard, including managing work situations that are complex, unpredictable, and require novel solutions.
• Take responsibility of own professional development and specialisation have learned.
Be able to launch and implement scientific and interdisciplinary cooperation and take professional responsibility
 


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
The following main topics are contained in the course:
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
    Meddeles ved kursets start.


Website
This course uses e-learn (blackboard).

Prerequisites for participating in the exam
  1. A number of programming assignments. It is required that these projects are approved in order to take the examination a). (15014012).
Assessment and marking:
  1. Oral exam, 30 minutes. No preparation time. External examiner. Marks according to the 7-point grading scale.No Examaids allowed. A closer description of the exam rules will be posted under 'Course Information' on Blackboard. (10 ECTS). (15014002).


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

Educational activities
• Using the acquired knowledge in projects.
• Discussing the scientific articles/book chapters
Educational form
In the intro phase, concepts, theories and models are introduced and put into perspective. In the training phase, students train their skills through exercises and dig deeper into the subject matter. In the study phase, students gain academic, personal and social experiences that consolidate and further develop their scientific proficiency. Focus is on immersion, understanding, and development of collaborative skills.

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.

Course enrollment
See deadline of enrolment.

Tuition fees for single courses
See fees for single courses.