blob: e34670267369bca97919cb8206d63cc10a48979b [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>We are, however, still missing test code. Any contributions in
65 that area would be greatly appreciated!
66 </p>
67
68 <p>All of the code here is <a
69 href="http://llvm.org/docs/DeveloperPolicy.html#license">dual licensed</a>
70 under the MIT license and the UIUC License (a BSD-like license).
71 The LICENSE.txt file at the top of the OpenMP project contains
72 the license text and associated patent grants.
73 </p>
74
75 <!--=====================================================================-->
76 <h2 id="goals">Features and Goals</h2>
77 <!--=====================================================================-->
78
79 <ul>
80 <li>Correctness as defined by the
81 <a href="http://www.openmp.org/mp-documents/OpenMP3.1.pdf">OpenMP
Jim Cownie885d7fa2013-10-03 11:55:28 +000082 3.1 standard (PDF)</a> now, and <a href="http://www.openmp.org/mp-documents/OpenMP4.0.0.pdf">OpenMP
83 4.0 standard (PDF)</a> in the future.</li>
Jim Cownie5e8470a2013-09-27 10:38:44 +000084 <li>High performance.</li>
Jim Cownie885d7fa2013-10-03 11:55:28 +000085 <li>ABI compatibility with <a href="http://gcc.gnu.org">Gcc</a> and
86 <a href="http://software.intel.com/en-us/intel-compilers">Intel's
87 existing OpenMP compilers.</a>
88 </li>
Jim Cownie5e8470a2013-09-27 10:38:44 +000089 </ul>
90
91 <!--=====================================================================-->
92 <h2 id="why">Why have the runtime code here?</h2>
93 <!--=====================================================================-->
94
95 <p>It makes sense to have the runtime sources in the same place
96 (and with the same license) as the compiler.
97 </p>
98
99 <!--=====================================================================-->
100 <h2 id="requirements">Platform Support</h2>
101 <!--=====================================================================-->
102
103 <p>The OpenMP runtime is known to work on 32 and 64 bit X86
104 processors when compiled with either the Intel compiler or gcc, and also the Intel&reg;&nbsp;Xeon Phi&trade; product family, when compiled with
105 the Intel compiler.
106 </p>
107
Jim Cownie885d7fa2013-10-03 11:55:28 +0000108 <p>A full OS compatibility matrix is in
109 <a href="README.txt">README.txt</a>
Jim Cownie5e8470a2013-09-27 10:38:44 +0000110 </p>
111
112
113 <!--=====================================================================-->
Jim Cownie885d7fa2013-10-03 11:55:28 +0000114 <h2 id="dir-structure">Status</h2>
Jim Cownie5e8470a2013-09-27 10:38:44 +0000115 <!--=====================================================================-->
116
117 <p>Currently the runtime is built with either gcc or icc. Obviously
Jim Cownie885d7fa2013-10-03 11:55:28 +0000118 it would also be good to build with Clang.
Jim Cownie5e8470a2013-09-27 10:38:44 +0000119 </p>
120
121
122 <!--=====================================================================-->
123 <h2>Get it and get involved!</h2>
124 <!--=====================================================================-->
125
126 <p>First please review our
127 <a href="http://llvm.org/docs/DeveloperPolicy.html">Developer's Policy</a>.
128
129 <p>To check out the code, use:</p>
130
131 <ul>
132 <li><code>svn co http://llvm.org/svn/llvm-project/openmp/trunk openmp</code></li>
133 </ul>
134
135 <p>
136 Next:
137 </p>
138
139 <ul>
140 <li><code>cd openmp/runtime</code></li>
141 <li><code>make compiler=gcc</code></li>
142 </ul>
143
144 <p>Full details of how to build are in the
Jim Cownie885d7fa2013-10-03 11:55:28 +0000145 <a href="README.txt">README.txt</a>
Jim Cownie5e8470a2013-09-27 10:38:44 +0000146 </p>
147
148 <!--=====================================================================-->
149 <h3>Notes</h3>
150 <!--=====================================================================-->
151
152<p>
153
154</p>
155
156 <p>Send discussions to the
157 (<a href="http://lists.cs.uiuc.edu/mailman/listinfo/openmp-dev">OpenMP mailing list</a>).</p>
158
159
160 <!--=====================================================================-->
161 <h2>Design Documents</h2>
162 <!--=====================================================================-->
163
164<ul>
Jim Cownie885d7fa2013-10-03 11:55:28 +0000165<li><a href="Reference.pdf">Runtime design (PDF)</a></li>
Jim Cownie5e8470a2013-09-27 10:38:44 +0000166</ul>
167
Jim Cownie885d7fa2013-10-03 11:55:28 +0000168 <!--=====================================================================-->
169 <h2>Copyright notices</h2>
170 <!--=====================================================================-->
171<ul>
172<li>
173 The OpenMP name and the OpenMP logo are registered trademarks of the
174 OpenMP Architecture Review Board.
175</li>
176<li>
177 Intel is a trademark of Intel Corporation in the U.S. and/or other
178 countries.
179</li>
180</ul>
Jim Cownie5e8470a2013-09-27 10:38:44 +0000181</div>
182</body>
183</html>