Overview

Christopher Cameron, Steve Lantz, Peter Vaillancourt, CAC Staff (original)
Cornell Center for Advanced Computing

Revisions: 6/2022, 3/2021, 2/2017 (original)

The OpenMP standard allows programmers to develop threaded parallel applications on shared-memory computers, such as on a node of the Frontera or Stampede2 supercomputers at the University of Texas at Austin's Texas Advanced Computing Center (TACC). OpenMP is an API specification for parallel programming, and implementations always trail the specification. Many of the newest features of the OpenMP specification are not widely available, so this topic focuses on the widely available features from versions 3.0 and earlier. It provides a high-level overview of how to use OpenMP to write programs that use multiple cores on a node for concurrent computation.

Objectives

After you complete this segment, you should be able to:

  • Provide an overview of OpenMP's features
  • List OpenMP components
  • Explain how compiler directives relate to OpenMP
  • Describe how OpenMP introduces parallelism into applications
  • List the components of a directive
  • Distinguish between appropriate uses of OpenMP vs. MPI
  • Name C, C++, and Fortran compilers with support for OpenMP
Prerequisites
  • A working knowledge of general programming concepts
  • A basic familiarity with parallel programming concepts
 
©   Cornell University  |  Center for Advanced Computing  |  Copyright Statement  |  Inclusivity Statement