Parallel algorithms


Aim of the course

Understand and apply advanced parallelization methods and the main parallel algorithms.

Lecture programme

Principles of constructing parallel algorithms: scalability, domain and functional decomposition, communication, mapping to hardware. Quality models, quality analysis of parallel programs, tools. Overview of parallel programming environments. Strategies for load balancing. Algorithms such as "parameter study". Parallel cellular automata. Parallel sorting. Graph algorithms, the analysis of complex networks. Parallel FFT algorithms. Search and optimization. Some algorithms for numerical linear algebra. Introduction to parallel algorithms of discrete event simulation. "out-of-core" computations. Algorithms for petascale computing.

Overview of the course elements

The course also includes laboratory classes. They consolidate the content of those classes and extend the knowledge taught at lectures. Students learn the methods of creating parallel algorithms and their evaluation / analysis, and will master developing complex parallel programs.

Reading list

1. Ian Foster: Designing and Building Parallel Programs. Addison-Wesley, 1994
2. High Performance Cluster Computing: Programming and Applications, Vol. 2 R. Buyya (ed.), Prentice Hall PTR, 1999
3. M.A. Heroux, P. Raghavan, H.D. Simon. Parallel Processing for Scientific Computing, SIAM, 2006
4. D.A. Bader (ed). Petascale Computing: Algorithms and Applications, Chapman and Hall /CRC, 2008
5. Wybrane artykuły naukowe z Parallel Computing oraz materiały seminariów w Dagstuhl

Copyright © 2010 Department of Computer Science   |   AGH University of Science and Technology   |   Created by Creative Bastards