Introduction to the Intel® OpenMP* Runtime Library

What is this project?

This project provides the source code of the Intel® OpenMP* runtime. The runtime is the part of the OpenMP* implementation that your code is linked against, and that manages the multiple threads in an OpenMP* program while it is executing.


Who is this project for?

This project is for compiler writers who want to use the Intel® OpenMP* runtime as the target of their compiler and for the authors of profiling tools who want to instrument the Intel® OpenMP* runtime to allow their tools better to support programs compiled with the Intel® Parallel Studio XE products.

 


Who isn't this project for?

This project is not for users of the Intel® Parallel Studio XE who are writing OpenMP* programs. They should continue to use the binary distributions of the runtime that come with those products.


Latest Posts

News
Forums
July 1, 2015: New code release

We are excited to announce the next release of the Intel® OpenMP* Runtime Library at openmprtl.org. This release aligns with Intel® Parallel Studio XE 2016 Composer Edition.

New Features

Bug Fixes

  • Fixed Mac OS X* version detection in makefile system to support Mac OS X* 10.10.x
  • Numerous warnings fixed when compiling with Clang*/GCC*

Contributions

  • OMPT contribution by John Mellor-Crummey, Tim Cramer, and Jonas Hahnfeld
  • Compiler warning fixes by Jack Howarth
  • FreeBSD* build fix by David Italiano

- See more at: https://www.openmprtl.org/download#stable-releases

New Features

Bug Fixes

  • Fixed Mac OS X* version detection in makefile system to support Mac OS X* 10.10.x
  • Numerous warnings fixed when compiling with Clang*/GCC*

Contributions

  • OMPT contribution by John Mellor-Crummey, Tim Cramer, and Jonas Hahnfeld
  • Compiler warning fixes by Jack Howarth
  • FreeBSD* build fix by David Italiano

- See more at: https://www.openmprtl.org/download#stable-releases

New Features

Bug Fixes

  • Fixed Mac OSX* version detection in makefile system to support Mac OSX* 10.10.x
  • Numerous warnings fixed when compiling with Clang*/GCC*

Contributions

  • OMPT contribution by John Mellor-Crummey, Tim Cramer, and Jonas Hahnfeld
  • Compiler warning fixes by Jack Howarth
  • FreeBSD* build fix by Davide Italiano
April 13, 2015: New code release

We are excited to announce the next release of the Intel® OpenMP* Runtime Library at openmprtl.org. This release aligns with Intel® Parallel Studio XE 2015 Composer Edition Update 4.

New Features

  • Debugger support interface added to the OSS library

Bug Fixes

  • Fixed implementation of task 'final' clause
  • Fixed a crash that occurred when task dependence was used
  • Fixed hierarchical barrier in oversubscription case

Contributions

  • Code cleanup from Carlo Bertolli (IBM)

 

March 16, 2015: New code release

We are excited to announce the next release of the Intel® OpenMP* Runtime Library at openmprtl.org. This release aligns with Intel® Parallel Studio XE 2015 Composer Edition Update 3.

New Features

  • OpenMP* 4.1: Support for a new kind of task needed for asynchronous offload
  • Improved Intel® Trace Analyzer and Collector and Intel® VTune™ Performance Tools support

Bug Fixes

  • Missed symbol omp_in_final added into header/module files
  • Fixes for hierarchical barrier for the case where affinity is off or disabled, and for when the computer is oversubscribed

Contributions

  • aarch64 port from Chris Bergstrom (PathScale)
  • ppc64le port from Carlo Bertolli (IBM)
  • KMP_MB() fix for ARM from Chris Bergstrom (PathScale)
  • OpenMP 2.5 cleanup from Jonas Hahnfeld (RWTH Aachen University)

 

Dear all,

I am looking for flag option that used to generate intermediate representation of OpenMP* on icc, such as explain in (1.7.1 Work Sharing Example).

Also, is it possible to extend  icc compiler by adding new pragma (directive)?

Thanks in adavnce

Regards

Is there any way I can summon nCores with OpenMP?

I use __kmpc_push_num_threads for support num_threads clause. But it is segmentation fault when call __kmp_push_num_threads.

I debug with gdb and found that __kmp_threads is null. This is __kmpc_push_num_threads bug? or I miss anything?

kmp_runtime.c:7884
7884	    kmp_info_t *thr = __kmp_threads[gtid];
(gdb) p __kmp_threads
$1 = (kmp_info_t **) 0x0

Thank you

 

Documentation

Reference Manual for latest release

Resources

OpenMP* Forums
FAQs
Licensing