<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
          "http://www.w3.org/TR/html4/strict.dtd">
<!-- Material used from: HTML 4.01 specs: http://www.w3.org/TR/html401/ -->
<html>
<head>
  <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <title>OpenMP* : Support for the OpenMP language</title>
  <link type="text/css" rel="stylesheet" href="menu.css">
  <link type="text/css" rel="stylesheet" href="content.css">
</head>

<body>
<div id="menu">
  <div>
    <a href="http://llvm.org/">LLVM Home</a>
  </div>

  <div class="submenu">
    <label>OpenMP Info</label>
    <a href="/index.html">About</a>
  </div>

  <div class="submenu">
    <label>Quick Links</label>
    <a href="http://lists.cs.uiuc.edu/mailman/listinfo/openmp-dev">openmp-dev</a>
    <a href="http://lists.cs.uiuc.edu/mailman/listinfo/openmp-commits">openmp-commits</a>
    <a href="http://llvm.org/bugs/">Bug Reports</a>
    <a href="http://llvm.org/svn/llvm-project/openmp/trunk/">Browse SVN</a>
    <a href="http://llvm.org/viewvc/llvm-project/openmp/trunk/">Browse ViewVC</a>
  </div>
</div>

<div id="content">
  <!--*********************************************************************-->
  <h1>OpenMP&reg;: Support for the OpenMP language</h1>
  <!--*********************************************************************-->

  <p>The OpenMP subproject of LLVM is intended to contain all of the
     components required to build an executing OpenMP program that are
     outside the compiler itself. Support for OpenMP 3.1 in Clang is in the
     process of being promoted into the Clang mainline, and can be
     found at <a href="http://clang-omp.github.io/">OpenMP/Clang</a>. 
  </p>

  <p>Here you can find :-
    <ul>
      <li>
        the code for the runtime library against which
        code compiled by the OpenMP/Clang compiler must be linked before it
        can run. This code is also available
        at <a href="http://openmprtl.org/">openmprtl.org</a>; we intend to
        keep the different sites in sync.
      </li>
      <li>
        the library that supports offload to target devices (in
        "offload")
      </li>
      <li>
        the OpenUH test-suite which is being integrated.
      </li>
    </ul>
  </p>

  <p>Support for the parts of the OpenMP 4.0 language that are not
  associated with the "target" constructs are contained in the
  "runtime" directory. Support for offloading computation via the
  "target" directive is in the separate "offload" directory. That
  builds a library that provides the interfaces for transferring code
  and data to an attached computational device. Initial support here
  is for the Intel&reg Xeon Phi&#0153 coprocessor, but work is
  beginning to support other attached computing devices, and the
  design is intended to be general. The README.txt in the "offload"
  directory describes how to build the offload library.
  </p>

  <p>All of the code here is <a
     href="http://llvm.org/docs/DeveloperPolicy.html#license">dual licensed</a>
     under the MIT license and the UIUC License (a BSD-like license).
     The LICENSE.txt file at the top of the OpenMP project contains
     the license text and associated patent grants.
  </p>

  <!--=====================================================================-->
  <h2 id="goals">Features and Goals</h2>
  <!--=====================================================================-->

    <ul>
        <li>Correctness as defined by the 
          <a href="http://www.openmp.org/mp-documents/OpenMP3.1.pdf">OpenMP
          3.1 standard (PDF)</a> now, and <a href="http://www.openmp.org/mp-documents/OpenMP4.0.0.pdf">OpenMP
          4.0 standard (PDF)</a> in the future.</li>
        <li>High performance.</li>
        <li>ABI compatibility with <a href="http://gcc.gnu.org">Gcc</a> and
        <a href="http://software.intel.com/en-us/intel-compilers">Intel's
        existing OpenMP compilers.</a> 
        With this release we have restored compatibility with OpenMP
        3.1 code compiled by gcc 4.9, however we do not have support
        for OpenMP 4.0 code that uses task cancellation when compiled
        by gcc 4.9. How we will support such code remains a research issue.
        </li>
    </ul>

  <!--=====================================================================-->
  <h2 id="why">Why have the runtime code here?</h2>
  <!--=====================================================================-->

  <p>It makes sense to have the runtime sources in the same place
    (and with the same license) as the compiler.
  </p>

  <!--=====================================================================-->
  <h2 id="requirements">Platform Support</h2>
  <!--=====================================================================-->

  <p>The OpenMP runtime is known to work on 
    <ul>
      <li>ARM&reg;&nbsp; architecture processors</li>
      <li>PowerPC&trade;&nbsp; processors</li>
      <li>32 and 64 bit X86
        processors when compiled with clang, with the Intel compiler
        or with gcc, and also the Intel&reg;&nbsp;Xeon Phi&trade; product family, when compiled with
        the Intel compiler.
      </li>
    </ul>
    Ports to other architectures and operating systems are welcome.
  </p>
  
  <p>A full OS and archiecture compatibility matrix is in 
    <a href="README.txt">README.txt</a>
  </p>


  <!--=====================================================================-->
  <h2 id="dir-structure">Status</h2>
  <!--=====================================================================-->

   <p>The runtime can be built with gcc, icc or clang. However, note
   that a runtime built with clang cannot be guaranteed to work with
   OpenMP code compiled by the other compilers, since clang does not support
   a 128-bit float type, and cannot therefore generate the code used
   for reductions of that type (which may occur in user code compiled
   by the other compilers).
   </p>
 
   <p>The University of Houston has kindly contributed their test
   suite (in the "testsuite" directory). Integration and use of this
   for automatic testing is in progress.
   </p>

  <!--=====================================================================-->
  <h2>Get it and get involved!</h2>
  <!--=====================================================================-->

  <p>First please review our
     <a href="http://llvm.org/docs/DeveloperPolicy.html">Developer's Policy</a>.

  <p>To check out the code, use:</p>

  <ul>
  <li><code>svn co http://llvm.org/svn/llvm-project/openmp/trunk openmp</code></li>
  </ul>

  <p>
     Next:
  </p>
  
  <ul>
    <li><code>cd openmp/runtime</code></li>
    <li><code>make compiler=gcc</code></li>
  </ul>
  
  <p>Full details of how to build are in the
    <a href="README.txt">README.txt</a>
    which also describes a CMake based build system which may be more
    convenient on some platforms and for porting to new platforms than
    the make and Perl based system.
  </p>

  <!--=====================================================================-->
  <h3>Notes</h3>
  <!--=====================================================================-->

<p>

</p>

  <p>Send discussions to the
  (<a href="http://lists.cs.uiuc.edu/mailman/listinfo/openmp-dev">OpenMP mailing list</a>).</p>


  <!--=====================================================================-->
  <h2>Design Documents</h2>
  <!--=====================================================================-->

<ul>
<li><a href="Reference.pdf">Runtime design (PDF)</a></li>
</ul>

  <!--=====================================================================-->
  <h2>Copyright notices</h2>
  <!--=====================================================================-->
<ul>
<li>
  The OpenMP name and the OpenMP logo are registered trademarks of the
  OpenMP Architecture Review Board.
</li>
<li>
  Intel is a trademark of Intel Corporation in the U.S. and/or other
  countries.
</li>
<li>
  PowerPC is a trademark of IBM Corporation in the U.S. and/or other
  countries.
</li>
<li>
  ARM is a trademark of ARM Corporation in the U.S. and/or
  other countries.
</li>
</ul>
</div>
</body>
</html>
