This page is presenting the course of Models & Tools for Parallelism (Modeler og Vertyg for Parallelitet - spring 2008). 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 followed 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.
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.
The main text book choosen for this course is Introduction to Parallel Computing . We recommend to check the other books at the library since they are also relevant to the course.
This is an SE course and you will be assessed. The rule is as follows: You will be given 6-7 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.
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.