|Content (Syllabus outline)
| Introduction: parallel computer systems, distributed computer systems.
Speedup, performance, scalability of parallel algorithms and distributed systems.
Components of parallel computers: memory, interconnection networks, input and output.
Principles of parallel programming: data and control parallelisms, programming languages, message passing and shared memory.
Multi-core processors, threads, critical sections, shared memory.
Parallelization of sequential programs: OpenMP application programming interface.
Programming with message passing, MPI standard.
Graphics processing unit (GPU), parallel computing using GPU.
Distributed systems: distributed models, communication and synchronisation in distributed systems, distributed file systems (GoogleFS, HDFS). High-performance and high-throughput computing using distributed.
Data-driven parallel computing. |
| Michael J. Quinn: Parallel programming in C with MPI and OpenMP, McGraw-Hill, 2003.
A. Grama, A. Gupta, G. Karypis, V. Kumar: Introduction to Parallel Computing: Design and Analysis of Algorithms, Second Edition, Addison Wesley, New York, 2003.
Anthony Williams: C++ Concurrency in Action, Practical Multithreading, Manning Publications, 2012.
A. S. Tanenbaum, M. van Steen: Distributed Systems: Principles and Paradigms, Second Edition, Pearson Prentice Hall, Upper Saddle River, NJ, USA, 2006.
|The objective of this course is that students will be able to understand the basic principles of parallel and distributed computing. |
|Intendend learning outcomes - knowledge and understanding
|On completion of this course the student will be able to:
demonstrate knowledge and use of distributed computer architectures and parallel computer architectures,
demonstrate the understanding and design of parallel program,
identify, describe and analyse situations, which interfere with activities of parallel and/or distributed computing.
|Intendend learning outcomes - transferable/key skills and other attributes'
| Communication skills: oral lab work defence, manner of expression at written examination.
Use of information technology: web based information search and use of software tools for parallel computing.
Problem solving: design and implementation of parallel programs.