<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, May 16, 2017 at 12:50 AM, Hal Finkel via cfe-dev <span dir="ltr"><<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF">
<p>Hi, Erik,</p>
<p>That's great!<br>
</p>
<p>Gor, Marshall, and I discussed this after some past committee
meeting. We wanted to architect the implementation so that we
could provide different underlying concurrency mechanisms;
including:</p>
<p> a. A self-contained thread-pool-based implementation using a
work-stealing scheme.</p>
<p> b. An implementation that wraps Grand Central Dispatch (for
Mac and any other platforms providing libdispatch).</p>
<p> c. An implementation that uses OpenMP.</p>
<p>The OpenMP-based provider is essential for interoperability in
applications using OpenMP, GCD seemed most natural on Mac, and the
self-contained implementation is available for anyone else.
CUDA+UVM should be possible in the future as well. All of these
mechanisms can export an interface for scheduling tasks, and we
specifically discussed the interface having a "bulk enqueue"
capability. This is essential for efficiently mapping onto several
potential underlying technologies (e.g. OpenMP). You don't want to
generate individual tasks for each item, and for underlying
technologies that can do intelligent things, you want the
underlying technology to make the coarsening decisions.</p>
<p>par_unseq should map, via pragmas, either Clang-specific and/or
OpenMP, to enabling vectorizaton. As a longer-term exercise, we
might need additional compiler extensions to make this work well
for some algorithms (such as sorting), dealing with exceptions,
etc.</p>
<p> -Hal<br></p></div></blockquote><div><br></div><div>Don't forget about ConcRT on Windows. </div><div><br></div><div>- Michael Spencer<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div bgcolor="#FFFFFF"><p>
</p><div><div class="gmail-h5">
<div class="gmail-m_-4134144157231760536moz-cite-prefix">On 05/15/2017 11:54 AM, Erik Pilkington
wrote:<br>
</div>
<blockquote type="cite">
<div id="gmail-m_-4134144157231760536bloop_customfont" style="font-family:helvetica,arial;font-size:13px;color:rgb(0,0,0);margin:0px">Hello
all,</div>
<div class="gmail-m_-4134144157231760536bloop_sign" id="gmail-m_-4134144157231760536bloop_sign_1494866586037445120">
<div><br>
</div>
I’m an intern at Apple this summer, and my project is to work on
the C++17 parallel algorithms library. In a recent thread, Hal
mentioned [0] that he had spoken with Marshall about the design
of the library. I’m currently working on a prototype that is
pretty similar to what was committed into lib/Support in
r302748. I’m wondering what you folks talked about, and if any
consensus wrt to design has been reached. Even if not, I’d love
to hear about what thoughts were exchanged, or any reference
material that could bring me up to speed!
<div><br>
</div>
<div>It might also be worth having a conversation about how to
divide up the work to be done here. Were any of you intending
to start working on the library?<br>
<div><br>
<div>Thanks!</div>
<div>Erik</div>
<div><br>
</div>
<div><span>[0] </span><a href="http://lists.llvm.org/pipermail/llvm-dev/2017-May/112988.html" target="_blank">http://lists.llvm.org/<wbr>pipermail/llvm-dev/2017-May/<wbr>112988.html</a><br>
</div>
</div>
</div>
<div><br>
</div>
</div>
</blockquote>
<br>
</div></div><span class="gmail-HOEnZb"><font color="#888888"><pre class="gmail-m_-4134144157231760536moz-signature" cols="72">--
Hal Finkel
Lead, Compiler Technology and Programming Languages
Leadership Computing Facility
Argonne National Laboratory</pre>
</font></span></div>
<br>______________________________<wbr>_________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-dev</a><br>
<br></blockquote></div><br></div></div>