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’s 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: - “nVidia CUDA C Programming Guide”, Version 6.07.5, Feb 2014Sep 2015. Available online at http://nvidia.com/cuda. - “CUDA 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, “Programming Massively Parallel Processors: A Hands-on Approach”, Second Edition, Morgan Kaufmann, 2013. ISBN 978-0-12-415992-1. - Rob Farber, “CUDA Application Design and Development”, Morgan Kaufmann, 2011. ISBN 0123884268. - Shane Cook, “CUDA Programming: A developer's guide to parallel computing with GPUs”, Morgan Kaufmann, 2013. ISBN 978-0-12-415933-4. Recommended Texts: - Grama et al., “Introduction to Parallel Computing”, Second edition, Addison-Wesley, 2003. - Mattson et al., “Patterns for Parallel Programming”, Addison-Wesley, 2005. Background/Reference: - Stroustrup, “The C++ Programming Language”, Special Edition, Addison-Wesley, 2000. - Eckel, “Thinking 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 2024/5. It may be subject to change in subsequent years. |