blob: bf0f4a9c1877ba1326d67e2c964ced0065a01ba5 [file] [log] [blame]
Jim Cownie5e8470a2013-09-27 10:38:44 +00001<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
2 "http://www.w3.org/TR/html4/strict.dtd">
3<!-- Material used from: HTML 4.01 specs: http://www.w3.org/TR/html401/ -->
4<html>
5<head>
6 <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
7 <title>OpenMP* : Support for the OpenMP language</title>
8 <link type="text/css" rel="stylesheet" href="menu.css">
9 <link type="text/css" rel="stylesheet" href="content.css">
10</head>
11
12<body>
13<div id="menu">
14 <div>
15 <a href="http://llvm.org/">LLVM Home</a>
16 </div>
17
18 <div class="submenu">
19 <label>OpenMP Info</label>
20 <a href="/index.html">About</a>
21 </div>
22
23 <div class="submenu">
24 <label>Quick Links</label>
25 <a href="http://lists.cs.uiuc.edu/mailman/listinfo/openmp-dev">openmp-dev</a>
Andrey Churbanovcfda4512013-10-03 07:27:25 +000026 <a href="http://lists.cs.uiuc.edu/mailman/listinfo/openmp-commits">openmp-commits</a>
Jim Cownie5e8470a2013-09-27 10:38:44 +000027 <a href="http://llvm.org/bugs/">Bug Reports</a>
28 <a href="http://llvm.org/svn/llvm-project/openmp/trunk/">Browse SVN</a>
29 <a href="http://llvm.org/viewvc/llvm-project/openmp/trunk/">Browse ViewVC</a>
30 </div>
31</div>
32
33<div id="content">
34 <!--*********************************************************************-->
Jim Cownie885d7fa2013-10-03 11:55:28 +000035 <h1>"OpenMP&reg;" Support for the OpenMP language</h1>
Jim Cownie5e8470a2013-09-27 10:38:44 +000036 <!--*********************************************************************-->
37
38 <p>The OpenMP subproject of LLVM is intended to contain all of the
39 components required to build an executing OpenMP program that are
40 outside the compiler itself. Support for OpenMP 3.1 in Clang is in the
41 process of being promoted into the Clang mainline, and can be
Jim Cownie885d7fa2013-10-03 11:55:28 +000042 found at <a href="http://clang-omp.github.io/">OpenMP/Clang</a>.
Jim Cownie5e8470a2013-09-27 10:38:44 +000043 </p>
44
45 <p>Here you can find the code for the runtime library against which
46 code compiled by the OpenMP/Clang compiler must be linked before it
Jim Cownie885d7fa2013-10-03 11:55:28 +000047 can run. This code is also available
48 at <a href="http://openmprtl.org/">openmprtl.org</a>; we intend to
49 keep the different sites in sync.
Jim Cownie5e8470a2013-09-27 10:38:44 +000050 </p>
51
Jim Cownie33f7b242014-04-09 15:40:23 +000052 <p>Support for the parts of the OpenMP 4.0 language that are not
53 associated with the "target" constructs are contained in the
54 "runtime" directory. Support for offloading computation via the
55 "target" directive is in the separate "offload" directory. That
56 builds a library that provides the interfaces for transferring code
57 and data to an attached computational device. Initial support here
58 is for the Intel&reg Xeon Phi&#0153 coprocessor, but work is
59 beginning to support other attached computing devices, and the
60 design is intended to be general. The README.txt in the "offload"
61 directory describes how to build the offload library.
62 </p>
63
Jim Cownie5e8470a2013-09-27 10:38:44 +000064 <p>All of the code here is <a
65 href="http://llvm.org/docs/DeveloperPolicy.html#license">dual licensed</a>
66 under the MIT license and the UIUC License (a BSD-like license).
67 The LICENSE.txt file at the top of the OpenMP project contains
68 the license text and associated patent grants.
69 </p>
70
71 <!--=====================================================================-->
72 <h2 id="goals">Features and Goals</h2>
73 <!--=====================================================================-->
74
75 <ul>
76 <li>Correctness as defined by the
77 <a href="http://www.openmp.org/mp-documents/OpenMP3.1.pdf">OpenMP
Jim Cownie885d7fa2013-10-03 11:55:28 +000078 3.1 standard (PDF)</a> now, and <a href="http://www.openmp.org/mp-documents/OpenMP4.0.0.pdf">OpenMP
79 4.0 standard (PDF)</a> in the future.</li>
Jim Cownie5e8470a2013-09-27 10:38:44 +000080 <li>High performance.</li>
Jim Cownie885d7fa2013-10-03 11:55:28 +000081 <li>ABI compatibility with <a href="http://gcc.gnu.org">Gcc</a> and
82 <a href="http://software.intel.com/en-us/intel-compilers">Intel's
Jim Cownie18d84732014-05-10 17:02:09 +000083 existing OpenMP compilers.</a>
84 However, we are not currently (May 2014) compatible with gcc 4.9, since
85 it has introduced new entrypoints with which we have not yet
86 caught up...
Jim Cownie885d7fa2013-10-03 11:55:28 +000087 </li>
Jim Cownie5e8470a2013-09-27 10:38:44 +000088 </ul>
89
90 <!--=====================================================================-->
91 <h2 id="why">Why have the runtime code here?</h2>
92 <!--=====================================================================-->
93
94 <p>It makes sense to have the runtime sources in the same place
95 (and with the same license) as the compiler.
96 </p>
97
98 <!--=====================================================================-->
99 <h2 id="requirements">Platform Support</h2>
100 <!--=====================================================================-->
101
102 <p>The OpenMP runtime is known to work on 32 and 64 bit X86
103 processors when compiled with either the Intel compiler or gcc, and also the Intel&reg;&nbsp;Xeon Phi&trade; product family, when compiled with
104 the Intel compiler.
105 </p>
106
Jim Cownie885d7fa2013-10-03 11:55:28 +0000107 <p>A full OS compatibility matrix is in
108 <a href="README.txt">README.txt</a>
Jim Cownie5e8470a2013-09-27 10:38:44 +0000109 </p>
110
111
112 <!--=====================================================================-->
Jim Cownie885d7fa2013-10-03 11:55:28 +0000113 <h2 id="dir-structure">Status</h2>
Jim Cownie5e8470a2013-09-27 10:38:44 +0000114 <!--=====================================================================-->
115
Jim Cownie18d84732014-05-10 17:02:09 +0000116 <p>The runtime can be built with gcc, icc or clang. However, note
117 that a runtime built with clang cannot be guaranteed to work with
118 OpenMP code compiled by the other compilers, since clang does not support
119 a 128-bit float type, and cannot therefore generate the code used
120 for reductions of that type (which may occur in user code compiled
121 by the other compilers).
Jim Cownie5e8470a2013-09-27 10:38:44 +0000122 </p>
123
Jim Cownie18d84732014-05-10 17:02:09 +0000124 <p>The University of Houston has kindly contributed their test
125 suite (in the "testsuite" directory). Integration and use of this
126 for automatic testing remain to be done, but now the code is here
127 work can begin.
128 </p>
Jim Cownie5e8470a2013-09-27 10:38:44 +0000129
130 <!--=====================================================================-->
131 <h2>Get it and get involved!</h2>
132 <!--=====================================================================-->
133
134 <p>First please review our
135 <a href="http://llvm.org/docs/DeveloperPolicy.html">Developer's Policy</a>.
136
137 <p>To check out the code, use:</p>
138
139 <ul>
140 <li><code>svn co http://llvm.org/svn/llvm-project/openmp/trunk openmp</code></li>
141 </ul>
142
143 <p>
144 Next:
145 </p>
146
147 <ul>
148 <li><code>cd openmp/runtime</code></li>
149 <li><code>make compiler=gcc</code></li>
150 </ul>
151
152 <p>Full details of how to build are in the
Jim Cownie885d7fa2013-10-03 11:55:28 +0000153 <a href="README.txt">README.txt</a>
Jim Cownie5e8470a2013-09-27 10:38:44 +0000154 </p>
155
156 <!--=====================================================================-->
157 <h3>Notes</h3>
158 <!--=====================================================================-->
159
160<p>
161
162</p>
163
164 <p>Send discussions to the
165 (<a href="http://lists.cs.uiuc.edu/mailman/listinfo/openmp-dev">OpenMP mailing list</a>).</p>
166
167
168 <!--=====================================================================-->
169 <h2>Design Documents</h2>
170 <!--=====================================================================-->
171
172<ul>
Jim Cownie885d7fa2013-10-03 11:55:28 +0000173<li><a href="Reference.pdf">Runtime design (PDF)</a></li>
Jim Cownie5e8470a2013-09-27 10:38:44 +0000174</ul>
175
Jim Cownie885d7fa2013-10-03 11:55:28 +0000176 <!--=====================================================================-->
177 <h2>Copyright notices</h2>
178 <!--=====================================================================-->
179<ul>
180<li>
181 The OpenMP name and the OpenMP logo are registered trademarks of the
182 OpenMP Architecture Review Board.
183</li>
184<li>
185 Intel is a trademark of Intel Corporation in the U.S. and/or other
186 countries.
187</li>
188</ul>
Jim Cownie5e8470a2013-09-27 10:38:44 +0000189</div>
190</body>
191</html>