Established by: Faculty Board of Science and Technology, 2013-12-13
The course gives an introduction to the subject of parallel programming with a focus on computer systems based on multicore processors. Such processors appear in everything from laptops and mobile devices to the world's largest supercomputers. The course teaches theory and practical skills necessary to construct and reason about efficient parallel programs designed for such systems. The course covers, among other things, the two parallel programming models OpenMP and MPI, parallel computer architecture, design and implementation of parallel programs, experimental methodology, parallel programming patterns, and various problems that may arise when programming parallel computers.
Expected learning outcomes
After completing the course, the students should be able to:
define and with their own words explain concepts and terminology related to parallel programming for multicore-based systems with a focus on the programming models OpenMP and MPI, and account for current trends in parallel computer architecture such as multicore, memory hierarchies, and vector instructions.
perform task decomposition, dependence analysis, and scheduling, and based on given guidelines evaluate a parallel program.
account for parallel programming patterns and write parallel programs using threads, OpenMP, and MPI.
perform experiments whose purpose is to evaluate a parallel program's performance, and clearly present and discuss the obtained results.
Univ: To be admitted you must have 60 ECTS-credits in Computing Science or two years of completed studies, in both cases including C-programming and Unix, (5DV088) or equivalent.
Proficiency in English equivalent to Swedish upper Secondary course English A. Where the language of instruction is Swedish, applicants must prove proficiency in Swedish to the level required for basic eligibility for higher studies.
Form of instruction
Instruction consists of lectures, group exercises, and mandatory assignments. In addition to scheduled activities, individual work with the material is also required.
The performance on the course is assessed based on a number of mandatory assignments and a written exam. On the course as a whole, the grades given are Fail (U), Pass (3) or Pass with Mark (4), or Pass with Distinction (5). In order to pass the course completely all mandatory parts must be passed as well. The final grade of the course is a summary assessment of the results and decided only after all mandatory parts are passed. A student who has passed an examination may not be re-examined.
For all students who do not pass the regular examination there are additional opportunities to do the examination. A student who has taken two tests for a course or segment of a course, without passing, has the right to have another examiner appointed, unless there exist special reasons (Higher Education Ordinance Chapter 6, section 22). Requests for new examiners are made to the head of the Department of Computing Science.
Transfer of credits This course may not be used towards a degree, in whole or in part, simultaneously with another course of similar content. If in doubt, consult the student counselors at the Department of Computing Science and / or program director of your program.
In particular, this course can not, in whole or in part, be used in a degree together with 5DV011 Parallel Computer Systems.
Transfer of credits is considered individually (see http://www.umu.se/utbildning/antagning/tillgodoraknande/).
This course replaces course 5DV011 Parallel Computer Systems which is not given anymore. During 2014 and 2015, this applies to students who have taken 5DV011 but not passed it:
If you have not passed any of the parts of 5DV011 we recommend that you register for this course and takes this course instead.
If you passed one of the parts on 5DV011, you can be examined in the other part by participating in parts of the examination in this course. Contact the course coordinator at the beginning of the course for an individual review of what is required.