OpenMP - A New Portable Paradigm of Parallel Computing

By George Delic, Ph.D.

HiPERiSM Consulting, LLC
P.O. Box 569
Chapel Hill, NC 27504-0569
george@hiperism.com
http://www.hiperism.com


ABSTRACT

The OpenMP paradigm was launched in 1997 and has been adopted by several computer workstation and mainframe vendors in various implementations. The standard also has an OpenMP Architecture Review Board (http://www.openmp.org) and has attracted attention because OpenMP ports of legacy code have demonstrated scalable performance through incremental parallelism without requiring a major rewrite of an application as the first step. In this respect the OpenMP paradigm offers a simpler and more cost effective path to parallel code development than do message passing paradigms. The OpenMP paradigm of parallel programming uses a master-slave (fork-join) program model and in this respect differs from both the data parallel or task parallel models. Because OpenMP has features such as orphaned directives and scope for nested parallelism it offers scalable parallel performance not previously possible in high performance programming languages on Shared Memory Parallel (SMP) platforms. The language paradigm adopted in the OpenMP standard is extensions to existing language standards through comment fields that enable the user to direct parallelism. The vendor provides OpenMP support through a compile line option enabling OpenMP directive recognition by the compiler. The execution model views the source as a sequence of serial and parallel regions, where, in the latter case, parallel work is invoked and controlled by directives. Parallel performance can be optimized by different scheduling options for parallel regions. In addition to directives, OpenMP features and functions include runtime library routines and environment variables to control threads. OpenMP constructs help the user control execution flow through constructs for parallel, work-sharing, synchronization, and the data environment in a simple, logical and verifiable way.

A poster to be presented at the

Forum On Numerical Methods for
Partial Differential Equations

Return to Forum Page