CS 435/535 Accelerated Computing
Credit Hours:
4/3
Course Coordinator:
Not currently offered
Course Description:
Heterogeneous approaches that use special-purpose processors to accelerate the execution of a variety of applications. GPUs, Intel Xeon Phi, APUs, FPGUs. The sustainability implications of these platforms. Lectures, homeworks, labs, and group programming projects using NVIDIA GPUs and Intel Xeon Phi.
Prerequisites:
CS 333
Goals:
Upon the successful completion of this class, students will be able to:
- Read, write and understand code written in relevant languages such as CUDA/C, MPI, OpenMP and OpenACC.
- Explain the architectural features of several accelerators such as GPUs and Xeon Phi.
- Explain the impact of multicore architectures, large memories, and current storage technologies on resulting performance.
- Explain the key performance tradeoffs for accelerated platforms, especially in relation to the memory hierarchy.
- Understand the foundational technical approaches for programming accelerated computers, such as tiling and directive-based parallelization.
- Explain concurrency and synchronization as related to the shared memory paradigm.
- Demonstrate the correct use of synchronization in multithreaded code.
- Explain the progression of technical ideas and advances leading to the accelerated computing paradigm.
- Use a variety of software and/or hardware tools for development, debugging, and performance analysis of accelerated codes.
- Describe the implications for sustainability from the use of accelerated platforms.
- Evaluate the potential of accelerated computing to solve specific scientific problems.
Textbooks:
- Programming Massively Parallel Processor: A Hands-on Approach, David Kirk and Wen-mei Hwu, 2010
- Intel Xeon Phi Coprocessor High-Performance Programming, James Reinders and Jim Jeffers, 2016
Major Topics:
- Introduction to GPGPUs
- Introduction Programming in CUDA
- Solving Problems in Parallel
- Amdahl’s Law & heterogeneity
- Introduction to OpenMP
- Introduction to Xeon Phi
- Performance and Memory with Xeon Phi
- Concurrency and Threads with Xeon Phi