CODE | CCE3015 | ||||||||||||
TITLE | Programming Parallel Architectures | ||||||||||||
UM LEVEL | 03 - Years 2, 3, 4 in Modular Undergraduate Course | ||||||||||||
MQF LEVEL | 6 | ||||||||||||
ECTS CREDITS | 5 | ||||||||||||
DEPARTMENT | Communications and Computer Engineering | ||||||||||||
DESCRIPTION | The study-unit introduces concepts of parallel computing by considering different architectures that support this, and working through different categories of examples. The implementation of such solutions and their subsequent analysis gives practical experience and an understanding of the difficulties involved. Study-unit Content: - Introduction to Parallel Architectures: Motivation; Flynn taxonomy; Example architectures; Problem classification; Programming models; - Working with Threads: Programming model; POSIX threads API; - Vector Processing: SIMD Extensions; Programming interface; - GPU Computing: GPU architectures; CUDA API; Memory hierarchy; Thread hierarchy; Scalability; Synchronization; Debugging; Profiling; - Optimizing Performance: Maximizing parallelization, instruction throughput, memory bandwidth usage; - Floating Point Considerations: IEEE Floating Point format; Accuracy and rounding; Algorithm considerations; - Large-Scale Parallel Systems: Introduction to Grids & Public Computing; Parallelism at multiple levels. Study-unit Aims: The study-unit aims to develop the student鈥檚 ability to think clearly about the relationship between a problem abstraction and architectural implementation details. We focus on the techniques for the development of solutions of scientific computing problems on parallel architectures. A number of case studies are considered to illustrate facets of the subject. This study-unit will enable you to gain experience in building parallel solutions for scientific and engineering computing problems. The study-unit will use C/C++ to access the parallel computing libraries of the architectures used. Learning Outcomes: By the end of the study-unit the student will be able to: - Explain the major benefits and limitations of parallel computing; - Identify and explain the differences between common current parallel architectures; - Develop parallel solutions for scientific computing problems on different architectures; - Analyse the performance of a parallel solution. Main Text/s and any supplementary readings: Online Texts: - 鈥渘Vidia CUDA C Programming Guide鈥, Version 6.07.5, Feb 2014Sep 2015. Available online at http://nvidia.com/cuda. - 鈥淐UDA C Best Practices Guide鈥, Version 6.07.5, Feb 2014Sep 2015. Available online at http://nvidia.com/cuda. Essential Texts: - David B. Kirk and Wen-mei W. Hwu, 鈥淧rogramming Massively Parallel Processors: A Hands-on Approach鈥, Second Edition, Morgan Kaufmann, 2013. ISBN 978-0-12-415992-1. - Rob Farber, 鈥淐UDA Application Design and Development鈥, Morgan Kaufmann, 2011. ISBN 0123884268. - Shane Cook, 鈥淐UDA Programming: A developer's guide to parallel computing with GPUs鈥, Morgan Kaufmann, 2013. ISBN 978-0-12-415933-4. Recommended Texts: - Grama et al., 鈥淚ntroduction to Parallel Computing鈥, Second edition, Addison-Wesley, 2003. - Mattson et al., 鈥淧atterns for Parallel Programming鈥, Addison-Wesley, 2005. Background/Reference: - Stroustrup, 鈥淭he C++ Programming Language鈥, Special Edition, Addison-Wesley, 2000. - Eckel, 鈥淭hinking in C++鈥, Vol. 1-2, Second edition, Prentice-Hall, 2000. |
||||||||||||
STUDY-UNIT TYPE | Lecture and Tutorial | ||||||||||||
METHOD OF ASSESSMENT |
|
||||||||||||
LECTURER/S | Johann A. Briffa |
||||||||||||
The University makes every effort to ensure that the published Courses Plans, Programmes of Study and Study-Unit information are complete and up-to-date at the time of publication. The University reserves the right to make changes in case errors are detected after publication.
The availability of optional units may be subject to timetabling constraints. Units not attracting a sufficient number of registrations may be withdrawn without notice. It should be noted that all the information in the description above applies to study-units available during the academic year 2025/6. It may be subject to change in subsequent years. |