OpenMP

Introduction

OpenMP (Open Multi-Processing) is an application programming interface (API) that supports multi-platform shared memory multiprocessing programming in C, C++ and Fortran on many architectures, including Unix and Microsoft Windows platforms. It consists of a set of compiler directives, library routines, and environment variables that influence run-time behavior.

Jointly defined by a group of major computer hardware and software vendors, OpenMP is a portable, scalable model that gives programmers a simple and flexible interface for developing parallel applications for platforms ranging from the desktop to the supercomputer.

An application built with the hybrid model of parallel programming can run on a computer cluster using both OpenMP and Message Passing Interface (MPI), or more transparently through the use of OpenMP extensions for non-shared memory systems.

OpenMP website

http://www.openmp.org

 Documentation

 There are different versions of OpenMP Specifications. Among those, version 3.0 lauched in May 2008 is the complete one. Visit the link http://openmp.org/wp/openmp-specifications/ for detail information on these specifications.

Version 3.0 Complete Specifications - (May, 2008). (PDF)

Compilers

There are a number of compilers from various vendors or open source communities implement the OpenMP API such as gcc (GNU), XL C/C++/Fortran (IBM), Visual Studio 2008 C++ (Microsoft) and etc. Visit link http://openmp.org/wp/openmp-compilers/ for complete list of compilers that support OpenMP.

For compiling OpenMP pgrogram on Lab Cluster, you can use gcc and compile your program with -fopenmp