Concurrent Programming
The game is over for software that is written only for
a single processor.
Robert Crooke
general manager Business Client Division, Intel
Opis przedmiotu/Course description
Semestr/Semester |
Wykład/Lecture |
Laboratorium/Laboratory |
Ćwiczenia/Class |
Egzamin/Exam |
8 |
2 |
-- |
2 |
-- |
9 |
-- |
2 |
-- |
E |
The course provides both a comprehensive introduction to concurrent and parallel programming, and a thorough discussion of selected advanced topics.
The lecture covers important concepts and mechanisms, while the classes give opportunity to test the new
skills and knowledge in practice.
Tematyka/Topics
Wykład/Lectures
- Fundamentals:
- Parallel vs concurrent execution
- Shared memory vs distributed memory
- Expressing concurrency
- Concurrent programming with shared memory
- Mutexes, barriers
- Semaphores
- Monitors
- POSIX threads
- Concurrent programming with distributed memory
- Message passing
- Guarded commands
- Properties of concurrent programs and their correctness.
- PRAM
- Performance of parallel algorithms.
- Parallel programming
- Shared memory: OpenMP.
- Distributed memory: MPI.
Laboratorium/Laboratory
- OpenMP.
- POSIX threads.
- MPI.
Zaliczenie/Credits and examination method
- Credits: see course regulations below.
- The exam consists of two parts: theory and excercises (both written).
Regulamin/Regulations
Regulamin przedmiotu/Course regulations
- The course consists of lectures, laboratories and classes.
- Credits in lectures are obtained automatically.
- Laboratories and classes are obligatory. Two unjustified absences cause lack of attestation.
According to the Regulations of Studies at Silesian University of Technology, the fact of absence may
be presented to the Dean.
- During the 1st semester of the course students have to take an assesment test.
To obtain the credits in classes it is necessary
to acheive a grade greater or equal to 3. Unjustified absence during a test results in grade 2.0
(fail) for the test.
- Second semester of the course is regulated by separate regulations, see below.
- In all cases stated neither in these Regulations nor in the Regulations of Studies
at Silesian University of Technology, the lecturer will decide.
Regulamin laboratorium /Laboratory regulations
- Laboratory classes are obligatory. Two unjustified absences cause lack of attestation.
According to the Regulations of Studies in the Silesian University of Technology, the fact
of absence may be presented to the Dean.
- To obtain credits for the classes a student is required to complete three exercises and obtain
positive (i.e. >= 3.0) grades for each of them. An exercise involves a practical task, that may
be assigned to an individual student or to a team of students.
- An exercise is graded as an average of
- a grade given for a task (program and report),
- a grade obtained during an assessment test,
with restrictions discussed below. Both grades must be positive (i.e. >= 3.0) for the exercise
to be graded.
- A student who did not submitted a solution of a task before the deadline as set in the
schedule or who failed the assessment test will not be given more than 3.0 for the exercise.
In such a case the student is still required to obtain both positive grades for the exercise as
described above.
- While grading the program and the report the teacher takes into account not only the quality
of the final product but also the way it has been obtained: timing of the work, distribution
of workload in case of team assignment, level of skills and knowledge demonstrated in the
classroom.
- Auxiliary tasks are assigned and auxiliary assessment tests are organized by the teacher
responsible for a given exercise. The teacher sets the deadlines on individual basis.
- Positive grades are final and can not be improved.
- The final grade is equal to
- an average of grades granted for particular tasks, if all the grades are positive,
- 2.0 otherwise.
- In all cases stated neither in these Regulations nor in the Regulations of Studies in the
Silesian University of Technology, the lecturer will decide.
Literatura/Bibliography
- B. Chapman, G. Jost, R. van der Pas, Using OpenMP, MIT Press, 2008
- P. Pacheco, Parallel Programming with MPI, Morgan Kaufman Publishers, Inc., San Francisco, 1996.
Materiały pomocnicze/Materials
- Lecture slides
- The slides (date of last update: 05-06-2009)
are provided "AS IS". They may contain errors and omissions (some intended).
They are not provided as substitute of the lectures.
The slides do NOT contain all the topics discussed in the classroom
The author would like to thank dr inż. Agnieszka Debudaj-Grabysz and
dr inż. Jacek Widuch for their helpful comments.
- OpenMP
- PThreads
- MPI