Shodor

a national resource for computational science education

HOME BWPEP Shodor Blue Waters

Dynamic Programming with CUDA, Pt 1

By Robert Hochberg
Shodor, Durham, North Carolina

This module provides a quick review of dynamic programming, but the student is assumed to have seen it before. The parallel programming environment is NVIDIA's CUDA environment for graphics cards (GPGPU - general purpose graphics processing units). The CUDA environment simultaneously operates with a fast shared memory and a much slower global memory, and thus has aspects of shared-memory parallel computing and distributed computing. Specifics for programming in CUDA are included where appropriate, but the reader is also referred to the NVIDIA CUDA C Programming Guide, and the CUDA API Reference Manual.

Upon completion of this module, students should be able to:

  • Identify problems suitable for dynamic programming techniques
  • Parallelize some dynamic programming algorithms

The documents can be downloaded below:

Resources:

Dynamic Programming with CUDA Pt 1 Document : The module document in PDF format.

Dynamic Programming Pt 1 Assessment Document : The student assessment document in PDF format.

Dynamic Programming Pt 1 Code : A zip file of the module's accompanying code for student exercises.

NVIDIA CUDA C Programming Guide : The NVIDIA CUDA C Programming Guide posted with special permission from the NVIDIA corporation.

NVIDIA CUDA C Best Practices Guide : The NVIDIA CUDA C Best Practices Guide posted with special permission from the NVIDIA corporation.

The CUDA Compiler Drive NVCC : The CUDA Compiler Drive NVCC Guide posted with special permission from the NVIDIA corporation.