Skip to Main Content

CSC4005 Parallel Programming: Home

Course Description

This course introduces concepts of parallel programming. Topics include parallel computer architectures, parallel programming languages, data structure designs for efficient parallel processing, synchronization controls, and applying parallel programming to high performance computing and AI/Machine Learning.

Recommended Books

Parallel Programming

This accessible text covers the techniques of parallel programming in a practical manner that enables readers to write and evaluate their parallel programs. Supported by the National Science Foundation and exhaustively class-tested, it is the first text of its kind that does not require access to a special multiprocessor system, concentrating instead on parallel programs that can be executed on networked computers using freely available parallel software tools. The book covers the timely topic of cluster programming, interesting to many programmers due to the recent availability of low-cost computers. Uses MPI pseudocodes to describe algorithms and allows different programming tools to be implemented, and provides readers with thorough coverage of shared memory programming, including Pthreads and OpenMP. Useful as a professional reference for programmers and system administrators.

Parallel and High Performance Computing

Complex calculations, like training deep learning models or running large-scale simulations, can take an extremely long time. Efficient parallel programming can save hours—or even days—of computing time. Parallel and High Performance Computing shows you how to deliver faster run-times, greater scalability, and increased energy efficiency to your programs by mastering parallel techniques for multicore processor and GPU hardware.

Recommended Databases