Parallel and Distributed Computing
From Computer Engineering Faculty
(Redirected from Pdc)
The development of this course has been initiated and supported by Intel's Multi-Core Curriculum Initiative. For details please visit http://www.intel.com/cd/software/university/asmo-na/eng/index.htm.
Lecturer: Volodymyr Obrizan (obrizan@kture.kharkov.ua).
Contents |
Lectures
- Introduction, history, motivation. Download slides.
- Basics of Parallel and Distributed Computers Architectures. Download slides.
- Basics of Parallel Programming. Download slides.
- Parallel Programming using OpenMP Library. Download slides.
- Performance Analysis. Download slides.
- Performance Analysis (cont.)
- Windows Threads. Download slides.
- Windows Threads (cont.)
- Parallel Programming with MPI. Lecture notes on the site of University of Nizhny Novgorod: Go to the course.
- Parallel Programming with MPI (cont.)
- Parallel Methods for Matrix-Vector Multiplication. Lecture notes on the site of University of Nizhny Novgorod: Go to the course.
- Parallel Methods for Matrix Multiplication. Lecture notes on the site of University of Nizhny Novgorod: Go to the course.
- Introduction to Intel Threading Building Blocks Library. Download slides.
- Introduction to Intel Threading Building Blocks Library (cont.)
- Advanced Algorithms of Intel TBB. Download slides.
- Advanced Algorithms of Intel TBB (cont.)
- Intel TBB: Parallel Containers, Allocators, Synchronization.
Labs
- Introduction to Intel VTune Performance Analyzer, Thread Checker, Thread Profiler, OpenMP. Download student manual.
- Parallel programming using Windows Threads. Download student manual.
- Distributed programming using MPI library. Download student manual.
- Parallel programming using Intel Threading Building Block Library.
Schedule
The schedule is available on the University's web-site. Please look for the P&DC classes.
Exam Questions
- Motivation for concurrency in software.
- Parallel computing platforms.
- Understanding performance. Amdahl’s Law. Speed-up. Efficiency. Scalability.
- Task decomposition model. Real life and software examples.
- Data decomposition model. Real life and software examples.
- Data flow decomposition model (pipeline). Real life and software examples.
- Basic parallel programming constructs.
- Programming using Windows Threads.
- Basic Windows API functions for multithreading.
- OpenMP library. Motivation, application, benefits.
- Basic OpenMP pragmas for parallel programming.
- Reduction operations in OpenMP. Motivation, solution, examples.
- Load balancing in OpenMP. Problem definition, pragmas, static and dynamic balancing.
- Parallel programming errors: data races, deadlocks. How to identify. How to fix.
- Performance problems: too many threads, excessive locking. How to identify. How to fix.
- Intel VTune Performance Analyzer: sampling wizard.
- Intel VTune Performance Analyzer: call-graph wizard.
- Intel Thread Checker.
- Intel Thread Profiler.
- MPI: Basic concepts and definitions.
- MPI: Basic point-to-point operations.
- MPI: Basic collective operations.
- Intel Threading Building Blocks library. Motivation, structure of the library.
- Blocked_range class of Intel TBB.
- Basic algorithm of Intel TBB: parallel_for.
- Basic algorithm of Intel TBB: parallel_reduce.
- Advanced algorithms of Intel TBB: parallel_while.
- Advanced algorithms of Intel TBB: pipeline.
- Concurrent containers of Intel TBB.
- Comparison of three approaches: Windows Threads, OpenMP, Intel TBB. Advantages and disadvantages.
References
Synopsis
- http://www.software.unn.ac.ru/ccam/?doc=107 — Very good synopsis developed by University of Nizhny Novgorod, Russia.
- http://software.intel.com/en-us/articles/courseware-access/ — Parallel Programming Courseware.
Books
- Multi-Core Programming, by Shameem Akhter and Jason Roberts. Copyright 2006 Intel Press. P. 336.
- Intel Threading Building Blocks, by James Reinders. Copyright 2007 James Reinders, 978-0-596-51480-8. P.303.
- Patterns for Parallel Programming, by Timothy G. Mattson, Beverly A. Sanders, Berna L. Massingill. Copyright 2005 by Pearson Education, Inc. P. 355.
- Parallel Programming, by Barry Wiklinson and Michael Allen. Copyright 1999 by Pearson Education, Inc. P. 431.
Links
- http://www.intel.com/multi-core/ — Intel's Multi-Core technologies web-site.
- http://software.intel.com/ — Intel Sotware Network.
- http://www.threadingbuildingblocks.org — Intel Threading Building Blocks: sources download, news, examples, forum.
- http://intel.com/software/products/tbb — TBB on the Intel's web-site
- http://en.wikipedia.org/wiki/Intel_Threading_Building_Blocks — TBB on Wikipedia. Lots of useful links to academic papers.
- http://software.intel.com/en-us/articles/multi-threading-in-the-net-environment/ — multithreaded programming using .NET environment.
Video
MIT Open CourseWare
Massachusetts Institute of Technology provides open courses on parallel and distributed programming:
