Published using Google Docs
CS 435/535 Accelerated Computing
Updated automatically every 5 minutes

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:

 

  1. Read, write and understand code written in relevant languages such as CUDA/C, MPI, OpenMP and OpenACC.
  2. Explain the architectural features of several accelerators such as GPUs and Xeon Phi.
  3. Explain the impact of multicore architectures, large memories, and current storage technologies on resulting performance.
  4. Explain the key performance tradeoffs for accelerated platforms, especially in relation to the memory hierarchy.
  5. Understand the foundational technical approaches for programming accelerated computers, such as tiling and directive-based parallelization.
  6. Explain concurrency and synchronization as related to the shared memory paradigm.
  7. Demonstrate the correct use of synchronization in multithreaded code.
  8. Explain the progression of technical ideas and advances leading to the accelerated computing paradigm.
  9. Use a variety of software and/or hardware tools for development, debugging, and performance analysis of accelerated codes.
  10. Describe the implications for sustainability from the use of accelerated platforms.
  11. Evaluate the potential of accelerated computing to solve specific scientific problems.

Textbooks:

  1. Programming Massively Parallel Processor: A Hands-on Approach, David Kirk and Wen-mei Hwu, 2010
  2. Intel Xeon Phi Coprocessor High-Performance Programming, James Reinders and Jim Jeffers, 2016

Major Topics: