HPE DSI 301

Data Science Courses

Parallel Programming with OpenMP

Credit: One digital badge, which can be used towards an appropriate HPE DSI micro-credential program
Lecture Contact Hours: 3 hours per week over five weeks (15 hours total)
Format: Synchronous online meetings on MS Teams

Prerequisites

Participants should be familiar with at least one low-level programming language such as C, C++, or Fortran, and should be comfortable working in a UNIX/Linux command-line environment. Completion of the corresponding HPE DSI courses in Cluster Computing and C++ programming is encouraged and will help satisfy the prerequisite background knowledge.

Description

Modern computing systems increasingly rely on multicore and many-core processor architectures to deliver high computational performance. As traditional single-core systems have become largely obsolete, effective software development now requires an understanding of parallel programming techniques that can utilize shared-memory parallelism on modern CPUs. OpenMP is one of the most widely adopted programming models for developing shared-memory parallel applications in scientific computing and high-performance computing (HPC) environments.

This course provides a practical, hands-on introduction to parallel programming using the OpenMP Application Programming Interface (API). Participants will learn how to transform serial applications into efficient parallel programs by incorporating OpenMP compiler directives, runtime library routines, and environment variables into existing codebases.

The course introduces the core concepts of shared-memory parallel programming and the OpenMP execution model. Topics include thread creation and management, the fork-and-join programming model, work-sharing constructs, data scoping, synchronization mechanisms, reductions, scheduling strategies, and performance considerations for multicore systems. Participants will also explore techniques for identifying parallel regions and optimizing applications for improved scalability and execution efficiency.

Through hands-on coding exercises and live demonstrations, participants will modify and execute existing serial programs on multicore systems using OpenMP-enabled compilers. Emphasis is placed on practical parallelization strategies commonly used in scientific computing, engineering simulations, and computational research applications.

Upon successful completion of the course, participants will be able to:

  • Understand the fundamentals of shared-memory parallel programming  
  • Use OpenMP compiler directives and runtime functions effectively  
  • Parallelize serial applications for multicore CPU, and GPU architectures  
  • Apply work-sharing constructs and synchronization mechanisms correctly  
  • Manage thread execution and data sharing safely and efficiently  
  • Analyze and improve the performance of parallel applications  
  • Compile, execute, and debug OpenMP-enabled programs in HPC environments  

This course is designed for students, researchers, and professionals interested in developing parallel applications for modern multicore and hybrid GPU computing systems. The course is offered as an elective within the Micro-credential in High Performance Computing program. For additional information about these programs, please contact HPE DSI at  contact@hpedsi.uh.edu

Mandatory Policies

Attendance: Regular class attendance, participation, and engagement in coursework are important contributors to student success. Grades (Pass/Fail) will not be assigned to students who fail to attend at least 12 hours of synchronous instruction. Absences may be excused as provided in the Excused Absence Policies included in the current UH Course Catalog.

Recording of Class: Students may not record all or part of class, livestream all or part of class, or make/distribute screen captures, without advanced written consent of the instructor. Classes may be recorded by the instructor. Students may use instructor’s recordings for their own studying and note-taking. Instructor’s recordings are not authorized to be shared with anyone without the prior written approval of the instructor.

Academic Honesty Policy >

Enrollment Policy >