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
December 17, 2014: 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 2.

New Features

  • OpenMP* 4.0: omp_is_initial_device() implemented
  • Code to support lock hints using Intel® Transactional Synchronization Extensions (Intel® TSX) (as in http://rd.springer.com/chapter/10.1007%2F978-3-319-11454-5_13 ). This code is not enabled in the default library build (and uses the “kmp_” prefix rather than “omp_” since it is not a standard OpenMP* feature)

Bug Fixes

  • get_omp_proc_bind() fixed on OS X*.
  • Crash caused by multiple load/unload fixed on Microsoft Windows* IA-32 architecture.

 

October 20, 2014: LLVM in Clang Developers Meeting

In case you missed it, you may like to know that there will be a talk on "OpenMP* Support in Clang/LLVM: Status Update and Future Directions" at the LLVM developers' meeting http://www.llvm.org/devmtg/2014-10/ in a couple of weeks' time.

October 2, 2014: 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.

New Features

  • Contribution from ScaleMP*: stack padding.
  • Redesign of wait and release code; performance improvements.

Bug Fixes

  • Fixes for Microsoft Windows* multiple processor groups.
  • Fix Fortran module build on Linux*: offload attribute added.
  • Fix entry names for distribute-parallel-loop construct to be consistent with the compiler codegen.
  • Fix inconsistent error message for KMP_PLACE_THREADS environment variable.

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