Computing
CS428: Advanced Operating Systems (5 ECTS)
This course introduces the basics of parallel computing. Topics covered include parallel computing platforms and networks; parallel algorithm design and parallel programming in both homogeneous and heterogeneous systems.
Taught in Semester(s) 2. Examined in Semester(s) 2.
Workload: 100 hours (24 Lecture hours, 24 Lab hours, 52 Self study hours).
Module Learning Outcomes.
On successful completion of this module the learner should be able to:
- Reason about different logical and physical organisation of parallel platforms;
- Apply decomposition techniques to parallelise serial algorithms;
- Implement fundamental algorithms in MPI;
- Calculate speedup, and derive Amdahl's law;
- Describe and use parallel algorithms for dense matrix multiplication;
- Describe and use parallel algorithms for sorting;
- Implement matrix algorithms with CUDA.
Indicative Content
This is an introduction to parallel computing, covering:
- The physical and logical organisation of parallel computing platforms;
- Parallel algorithms; both general techniques and special emphasis on matrix algorithms and sorting algorithms;
- Parallel programming using the message passing paradigm, using the MPI interface;
- The physical architecture of GPUs and its influence on parallel computing strategies and performance;
- Programming GPUs using CUDA.
Module Resources
- Grama et. al. "Introduction to parallel computing", Pearson Education
Back