-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
281 lines (198 loc) · 12 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Begin Jekyll SEO tag v2.6.1 -->
<title>BOLT | OpenMP over Lightweight Threads</title>
<meta name="generator" content="Jekyll v4.0.0" />
<meta property="og:title" content="BOLT" />
<meta name="author" content="Argonne National Laboratory" />
<meta property="og:locale" content="en_US" />
<meta name="description" content="BOLT: A Lightning-Fast OpenMP Runtime" />
<meta property="og:description" content="BOLT: A Lightning-Fast OpenMP Runtime" />
<link rel="canonical" href="https://bolt-omp.org/" />
<meta property="og:url" content="https://bolt-omp.org/" />
<meta property="og:site_name" content="BOLT" />
<script type="application/ld+json">
{"description":"BOLT: A Lightning-Fast OpenMP Runtime","url":"https://bolt-omp.org/","@type":"WebSite","headline":"BOLT","sameAs":["https://github.com/pmodels/bolt"],"author":{"@type":"Person","name":"Argonne National Laboratory"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://bolt-omp.org/siteicon.png"},"name":"Argonne National Laboratory"},"name":"BOLT","@context":"https://schema.org"}</script>
<!-- End Jekyll SEO tag -->
<link type="application/atom+xml" rel="alternate" href="https://bolt-omp.org/feed.xml" title="BOLT" />
<link rel="stylesheet" href="/css/screen.css">
<link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png">
<link rel="icon" type="image/png" sizes="192x192" href="/android-icon-192x192.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/manifest.json">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="/ms-icon-144x144.png">
<meta name="theme-color" content="#ffffff">
<script>
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
ga('create', '', 'auto');
ga('send', 'pageview');
</script>
<script async src='https://www.google-analytics.com/analytics.js'></script>
</head>
<body>
<header>
<div class="container">
<div class="company-name" style="max-width:20%;"><a href="/"><img src="/images/logo.svg" alt="BOLT Logo" width="95" height="33" style="max-width:100%;"/></a></div>
<nav>
<a class="nav-toggle" id="open-nav" href="#">☰</a>
<a href="/
" class=" active" style="white-space: nowrap;">Home</a>
<a href="/learn/
" class="" style="white-space: nowrap;">Learn</a>
<a href="/downloads/
" class="" style="white-space: nowrap;">Downloads</a>
<a href="/support/
" class="" style="white-space: nowrap;">Support</a>
<a href="/publications/
" class="" style="white-space: nowrap;">Publications</a>
<a href="/developers/
" class="" style="white-space: nowrap;">Developers Docs</a>
<a href="/team/
" class="" style="white-space: nowrap;">Team</a>
</nav>
</div>
</header>
<section class="hero">
<div class="text-container">
<h1>BOLT: A Lightning-Fast OpenMP Runtime</h1>
<div class="container flex" style="margin-left:10%;margin-right:10%;">
<div class="cta button alt"><a href="/downloads/">
<svg role="img" viewBox="1 0 19 18" width="1rem" xmlns="http://www.w3.org/2000/svg">
<path d="M 7.9999995,1.9999999 V 10.571428 H 3.9999996 l 5.9999999,3.428571 5.9999995,-3.428571 h -4 V 1.9999999 Z" /> <path d="m 2.0418208,14.972742 v 2.150219 H 17.958178 v -2.150219 z" /></svg>
Download</a></div>
<div class="cta button alt"><a href="https://github.com/pmodels/bolt">
<svg role="img" viewBox="0 0 24 24" width="1rem" xmlns="http://www.w3.org/2000/svg"><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg>
GitHub</a></div>
</div>
</div>
</section>
<div class="content">
<section class="page">
<div class="container">
<div class="text">
<h2>BOLT: <u>B</u>OLT is <u>O</u>penMP over <u>L</u>ightweight <u>T</u>hreads</h2>
<p>
OpenMP is a directive-based parallel programming model for shared memory computers. Thanks to its simple incremental parallelization method, OpenMP has been widely used in many applications. While current OpenMP implementations based on OS-level threads (e.g., pthreads) perform well on computation-bound codes that can be evenly divided among threads, they are encountering some challenges observed in recent HPC trends. OpenMP applications are demanded to express more parallelism to fully utilize increasing CPU cores. Irregular or non-traditional applications use OpenMP task constructs to express fine-grained parallelism rather than traditional work sharing constructs.
</p>
<p>
BOLT targets a high-performing OpenMP implementation, especially specialized for fine-grain parallelism. Unlike other OpenMP implementations, BOLT utilizes a lightweight threading model for its underlying threading mechanism. It adopts <a href="https://www.argobots.org/">Argobots</a>, a new holistic, low-level threading and tasking runtime, in order to overcome shortcomings of conventional OS-level threads. The BOLT implementation is based on the LLVM OpenMP runtime, and thus it can be used with GNU C/C++ Compilers, Clang/LLVM, and Intel C/C++ Compilers.
</p>
</div>
<div class="container-border">
<div class="container flex_twol">
<div class="text">
<h3>Best Paper Award at PACT ’19!</h3>
<p>
Our paper on the BOLT runtime system, titled “BOLT: Optimizing OpenMP Parallel Regions with User-Level Threads,” won a Best Paper Award at the 28th international conference on Parallel Architectures and Compilation Techniques (PACT ’19), held in Seattle, Washington, in September 2019!
</p>
</div>
<div class="image">
<img src="/images/best_paper_pic.jpg"/>
</div>
</div>
</div>
</div>
</section>
<section>
<div class="container">
<div class="container">
<div class="text">
<h3>Efficient Nested Parallelism</h3>
</div>
<div class="wideimage">
<img src="/images/bolt_design.svg"/>
</div>
<div class="text">
<p>
The growing hardware parallelism in HPC compute nodes is pushing applications to chunk work more fine-grained to expose parallelism opportunities. This is often achieved through nested parallelism either in the form of parallel regions or explicit tasks. BOLT spawns OpenMP threads and tasks as Argobots work units and manages them through its efficient work-stealing scheduler. Thanks to lightweight Argobots threads, BOLT can minimize threading and tasking overheads and offer a significantly better trade-off between high concurrency and thread management overheads.
</p>
</div>
</div>
</div>
</section>
<section>
<div class="container flex_twor">
<div class="text">
<h3>High ABI Compatibility</h3>
<p>
BOLT was derived from LLVM OpenMP~7.0 to inherit its optimized and modern OpenMP support as well as its application binary interface (ABI) compatibility with other widely used OpenMP runtimes. This ABI compatibility with GCC, LLVM and Intel OpenMP enables BOLT to run OpenMP-parallelized applications compiled with the GNU, Intel, and Clang C/C++/Fortran compilers without modification and recompilation of user programs. BOLT can be used even with commercial and closed source OpenMP-parallelized codes.
</p>
</div>
<div class="image">
<img src="/images/compat.svg"/>
</div>
</div>
</section>
<section>
<div class="container flex_twol">
<div class="text">
<h3>MPI + BOLT</h3>
<p>
Hybrid programming mixing OpenMP and MPI requires better interoperability between two programming models, which is usually connected through the common threading model. These challenges might be difficult or inefficient to be handled in the current OpenMP implementation due to their underlying heavyweight threading model. BOLT interoperates with several MPI libraries including MPICH and Open MPI through the Argobots threading layer rather than OS-level threads.
</p>
</div>
<div class="image">
<img src="/images/mpibolt.svg"/>
</div>
</div>
</section>
</div>
<footer>
<div class="container">
<div class="footer-columns">
<ul class="footer-links">
<li><a href="/learn/
" >
Learn</a></li>
<li><a href="/publications/
" >
Publications</a></li>
</ul>
<ul class="footer-links">
<li><a href="/downloads/
" >
Downloads</a></li>
<li><a href="/developers/
" >
Developers Docs</a></li>
</ul>
<ul class="footer-links">
<li><a href="/support/
" >
Support</a></li>
<li><a href="/team/
" >
Team</a></li>
</ul>
<ul class="footer-links">
<li><a target="_blank" href="https://github.com/pmodels/bolt
" class="GitHub-icon">
<svg role="img" viewBox="0 0 24 24" width="1rem" xmlns="http://www.w3.org/2000/svg"><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg>
GitHub</a></li>
</ul>
</div>
<p class="copyright">© 2021 The BOLT Project • <a href="https://cloudcannon.com/">Template by CloudCannon</a> (<a href="/LICENSE">license</a>) </p>
</div>
</footer>
<script>
document.getElementById("open-nav").onclick = function () {
document.body.classList.toggle("nav-open");
return false;
};
</script>
</body>
</html>