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® Composer XEIntel® Cluster Studio XE and Intel® Parallel Studio XE products.

 


Who isn't this project for?

This project is not for users of the Intel® Composer XE, Intel® Cluster Studio XE  and Intel® Parallel Studio XE products 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 23, 2013: 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® Composer XE 2013 SP1 Update 2, scheduled for release in early 2014.

New features

  • The library can now be built with clang
  • Support for Vtune analysis of load imbalance
  • Code contribution from Steven Noonan to build the runtime for ARM* architecture processors
  • First implementation of runtime API for OpenMP cancellation

Bug Fixes

  • Fixed hang on Windows (only) when using KMP_BLOCKTIME=0

 

 

October 21, 2013: Feedback, Please; Git Mirror Available

Feedback, please

SC13 is less than a month away. I'd like to be able to present information and success stories about your uses of the open-source runtime. Therefore I'd be grateful if people who are using the runtime could reply to  this thread  on the forum and tell us what you're doing with it. 

p.s. I'll be at SC on the Intel Booth (2701) from 10:00-noon on Tuesday and Wednesday if you want to come by and chat about anything OpenMP related.

Git mirror available

There is now a git mirror of the code in the LLVM svn repository. This brings the openmp.llvm.org code in line with other LLVM sub-projects. You can find it at  http://llvm.org/git/openmp.git

-- Jim Cownie

October 8, 2013: Release as part of LLVM

We are very happy to announce that the Intel® Open source OpenMP* runtime is now an official LLVM sub-project, so the sources can be downloaded from the http://openmp.llvm.org site. 

When we initially set up this site, we said that it was our aim to support the LLVM project; our compiler team have been making great progress on implementing OpenMP in CLANG (see http://clang-omp.github.io), and now we have also been able to commit the runtime sources into the LLVM repository.

The code at http://openmp.llvm.org is identical to that at http://openmprtl.org and is licensed with a fully LLVM compatible license, including a patent grant.

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