Lecture on Parallel Systems


Winter Term 2017/18, LVA 703650




 Fridays, 10:15 - 12:00 (begin Oct. 6)


Prof. T. Fahringer, Distributed and Parallel Systems Group, Institute for Computer Science, University of Innsbruck, office hours (ICT building, 2nd floor): Wednesday 1 - 2 pm, email: Thomas.Fahringer at uibk.ac.at


All lectures and lecture material including exams and laboratories are given in English only.


All major microprocessor vendors (Intel, AMD, Sun, etc.) are by now exclusively developing microprocessors with multiple cores per chip as of today. Any device ranging from regular desktop computers, notebooks, PDAs, cellular phones, servers, game consoles, supercomputers, and even industry computers and any device requiring embedded systems is based on this new parallel processors. The main problem is that there are very few computer scientists and programmers who have expertise on how to program multicore processors which will be a major disadvantage for all graduates leaving university for IT industry or staying on in research to deal with any programming for modern computers. Parallel processing is thus no longer limited to a few specialists interested in supercomputing, but instead parallel processing has become mainstream which is the only way forward towards new IT-infrastructure and modern computer programming.

Parallel processing has matured to the point where it has begun to make a considerable impact on the computer marketplace. The ultimate efficiency in parallel systems is to achieve a computation speedup factor of p with p processors. Although often this ideal cannot be achieved, some speedup is generally possible by using a multiprocessor architecture. The actual speed gain depends on the system's architecture and the algorithm run on it. This course serves as an introduction to the area of parallel systems with a special focus on programming for parallel architectures. Basic concepts and important techniques will be presented. The major approaches to parallel programming, including shared-memory multiprocessing and message-passing, will be covered in detail. Students will gain programming experience in each of these paradigms through an accompanying laboratory. Architectural considerations, parallelization techniques, program analysis, and measures of performance will be covered. We will not follow any particular text through out the entire class. In stead, we will use several text books as the general guideline of the lecture covering both basic concepts and programming skills.

As part of this lecture we thus offer an introduction to most important basic concepts of parallel processing which is crucial know-how needed to deal with basically any new computer put on the market. This course is designed for all graduate students interested in parallel processing and high performance computing.

Mailing list


please subscribe at: http://informatik.uibk.ac.at:2081/mailman/listinfo/parsys

Lecture Foils (appear one day before each lecture)

            Can be found under OLAT one day before each lecture.

Example Exam

    Here you find an example exam. 

Course Outline

 Introduction to Parallel Systems

 Parallel Programming Models

 Message Passing Programming

 Dependence Analysis

 OpenMP Programming

 Evaluation of Programs

 Optimizations for Scalar Architectures

 Models for Parallel Computing

External material