Does your scientific code take hours to days to run? Would you like to learn how to improve your code and run on large scale high performance computing systems?

The University of Delaware HPC Bootcamp will teach you how to write a portable parallel program that can run on multicore CPUs and accelerators like GPUs. Attendees will learn in how to apply incremental parallelization strategies using the OpenACC programming model to accelerate an example application that simulates heat distribution across a 2-dimensional metal plate and apply their knowledge to accelerate a mini-application. 

This event is open to UD students, staff, faculty and research scientists across campus who would be interested to learn strategies to parallelize and accelerate their scientific code.

Participate in the mini-application challenge!

  • First place team receives a $500 cash prize and a certificate sponsored by University of Delaware Data Science Institute (DSI).
  • Second place team receives a complimentary copy of "OpenACC for Programmers: Concepts and Strategies" written by University of Delaware's own Sunita Chandrasekaran and Guido Juckeland from Helmholtz-Zentrum Dresden-Rossendorf.

 Event Format 

The GPU Bootcamp will be hosted online in the Eastern Daylight time zone (EDT). All communication will be done through Zoom, Slack and email. 


Basic experience with C/C++ or Fortran. No GPU programming knowledge is required. This event has limited capacity, so please make sure that prerequisites are met before applying.   

Compute Resources

Attendees will be given access to a GPU cluster for the duration of the GPU Bootcamp.


Day 1: July 8, 2021 (9:00 AM to 12:15 PM EDT)

  • Welcome: 9:00 AM 
  • Connecting to a cluster:  9:00 AM - 09:15 AM 
  • Introduction to GPU programming: 9:15 AM - 9:30 AM (Lecture)
    • What is a GPU and Why Should You care?
    • What is GPU Programming?
    • Available Libraries, Programming Models, Platforms.
  • Introduction to OpenACC: 9:15 AM - 10:00 AM (Lecture + Lab)
    • What is OpenACC and Why Should You Care?
    • Profile-driven Development.
    • First Steps with OpenACC.
    • Lab 1.
  • OpenACC Data Management: 10:00 AM - 10:45 AM (Lecture + Lab) 
    • CPU and GPU Memories.
    • CUDA Unified (Managed) Memory.
    • OpenACC Data Management.
    • Lab 2.
  • Break 11:00-11:15
  • Gangs, Workers, and Vectors Demystified: 11:30 AM - 12:15 PM (Lecture + Lab)
    • GPU Profiling.
    • Loop Optimizations.
    • Lab 3.

Day 2: July 9, 2021 (9:00 AM to 12:30 PM EDT)

  • Welcome (Moderator): 9:00AM
  • Mini-application challenge (9:00AM-12:00PM)
    • Overview of the mini-application (15 min)
    • Review steps to acceleration (5 min)
    • Application challenge 
  • Mini-application Solution Walk-through and next steps (12:00PM-12:30PM)
  • Homework [Offline, support through slack]
    • Introduction to NVIDIA ® Nsight™ Tools
      • Overview of Nsight Tools
      • How to profile a serial application with NVIDIA Tools Extension (NVTX) 
      • Overview of optimization cycle with Nsight Systems
    • Profiling mini-application 
      • Profile a sequential weather modeling application (integrated with NVTX APIs) with NVIDIA Nsight Systems to capture and trace CPU events and time ranges
      • Understand how to use NVIDIA Nsight Systems profiler’s report to detect hotspots and apply OpenACC compute constructs to the serial application to parallelise it on the GPU
      • Learn how to use Nsight Systems to identify issues such as underutilized GPU device and unnecessary data movements in the application and to apply optimization strategies steps by steps to expose more parallelism and utilize computer’s CPU and GPU
Event Focus

Important Event Dates

  • University of Delaware HPC Bootcamp Application Deadline
  • University of Delaware HPC Bootcamp: Day 1
  • University of Delaware HPC Bootcamp: Day 2