Aalborg University| Computer Science Dpt.| Control Engineering Dpt.
Home| Course
› Welcome ! › Prerequisites › Course Objectives › Text Books › Additional Materials › Course Grading › Contact
› Schedule › Lecture 1 › Lecture 2 › Lecture 3 › Lecture 4 › Lecture 5 › Lecture 6 › Lecture 7 › Lecture 8 › Lecture 9 › Lecture 10 › Lecture 11 › Lecture 12 › Lecture 13 › Lecture 14 › Lecture 15

Welcome !

This page is presenting the course of Models & Tools for Parallelism (Modeler og Vertyg for Parallelitet - spring 2010). You can find all the information relative to this course on this page and some materials linked to the course. This course will be given in english and will last 15 lectures of three times 30 minutes (with a break of 5 minutes in-between) and will be preceded by exercices in your project group rooms.


Students are expected to know the C language, the basic GNU tools (emacs, gcc, ...), have access to a Unix system, and have access to C compilers on their PCs. In addition you are expected to have followed a course on algorithms and data structures, and know basics on computer architecture.

You can argue that you could use C# instead. However, there are several reasons why you should use C for this course. First, you did learn C but you never had the chance to really use it. Here you go. Second, we will use libraries that are written natively in C. Other languages are but wrappers to these libraries. The concept of threads is general and as computer scientists/engineers, you should be able to apply these concepts in different languages. Java and C# have a special support for it, C uses pthreads. Last but not least, the university is not supposed to educate C# programmers but scientists and engineers in computer science. You learn concepts and you are versatile for their applications.

Course Objectives

This course aims at teaching models of parallel machines and tools to program them. It is an introduction to parallel programming, how to parallelize programs, and how to use basic tools like MPI and POSIX threads. Students will learn more on concurrency theory in another course so we skip this topic.

Text Books

The main text book choosen for this course is Principles of Parallel Programming [1]. I give you a few other titles related to the course. I highly recommend [2] if you know C++.


Course book

Additional Materials

Keen students may want to consult these links for additional inspiration on the subject:

Course Grading

This is an SE course and you will be assessed. The rule is as follows: You will be given 4 compulsory + 1 optional assignments to complete. The idea is to have one every second lecture. You are required to have them written down. These assignments will be approved or not approved. If they are not approved you will have to complete them until they are approved. You should be able to complete all 5 assignments. The exercise directions tell you the bare minimal that you must do but you should be able to be enough ahead of time to do assignment 5 at the end.

Deadlines: The assignments are divided into exercises that are split over two lectures. From the date of the last given exercise of one assignment, you have two weeks to hand-in the assignment. If you respect the deadline, you'll be marked almost immediately and you will be granted one additional week beyond the deadline to complete your assignment if there is something wrong. If you do not respect the deadline, your assignment will not be marked before the 30th of May and you will lose the possibility to complete your assignments if there is something wrong. All assignments must be handed-in the 30th of May latest.

Note: You are expected to be able to do your exercises during the exercise sessions so do not missuse them for other purposes. You can get your assignments approved more easily during the exercise sessions (since you can discuss them and show me that you understand them). Students not working on their assignments will be invited to leave to respect those who wish to work and to avoid distracting them.

I accept multiple-authors assignments only at these conditions: 1) The authors belong to the same group, which qualifies for team-work, and 2) Every author must be able to explain the assignments fully, which will be checked.

To pass the course, you must get all your assignments approved. Here is the current list of approved assignments. Please tell me if you notice any mistake.


Any question or remark relative to the course is welcome.