<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p>Alexandre, <br>
</p>
<p>Thanks for your swift reply. Which LLVM files are you refering to
in particular? Ideally I would like to use something like clang -E
to see how the OpenMP pragmas are resolved to particular library
calls (unfortunately, pragmas are carried through this step). I am
not too familiar with the LLVM tool-suite so I am not sure about
any tools to dump intermediate presentations. <br>
</p>
<p>So far I have tried to use "clang -E" and "clang -ast-print" but
all of them still contain the pragmas. Do you have any suggestions
how to get a representation of the library calls that are
generated?<br>
</p>
<p>Joseph<br>
</p>
<br>
<div class="moz-cite-prefix">On 10/27/2016 09:44 PM, Alexandre
Eichenberger wrote:<br>
</div>
<blockquote
cite="mid:OFE150A02A.13BC4B8D-ON00258059.006C2E34-00258059.006C75EE@notes.na.collabserv.com"
type="cite">
<div class="socmaildefaultfont" dir="ltr"
style="font-family:"Helvetica Neue", Helvetica, Arial,
sans-serif;font-size:10.5pt">
<div dir="ltr">Joseph</div>
<div dir="ltr"> </div>
<div dir="ltr">Best is to create a few examples and look at the
llvm files being generated. The construct that generates the
fork call is #pragma omp parallel. Here is the template:</div>
<div dir="ltr"> </div>
<div dir="ltr">EXTERN void __kmpc_fork_call(klegacy_Indent *loc,
int32_t argc, klegacy_ParFctPtr microtask, ...);</div>
<div dir="ltr"> </div>
<div dir="ltr"> </div>
<div dir="ltr">where the first is unused, the second is the
number of parameters to the microtask, the function to be
called, and the params.</div>
<div dir="ltr"> </div>
<div dir="ltr">Parameters are typically used to pass references
and first private values. If you have no shared/private values
in your model, you can ignore them.</div>
<div dir="ltr">
<div class="socmaildefaultfont" dir="ltr"
style="font-family:Arial;font-size:10.5pt">
<div class="socmaildefaultfont" dir="ltr"
style="font-family:Arial;font-size:10.5pt">
<div class="socmaildefaultfont" dir="ltr"
style="font-family:Arial;font-size:10.5pt">
<div class="socmaildefaultfont" dir="ltr"
style="font-family:Arial;font-size:10.5pt">
<div dir="ltr"><br>
Alexandre<br>
<br>
-----------------------------------------------------------------------------------------------------<br>
<span style="color:#0000CD;">Alexandre Eichenberger,
Master Inventor, Advanced Compiler Technologies</span><br>
<span style="color:#0000CD;">- research</span>:
compiler optimization (OpenMP, multithreading, SIMD)<br>
<span style="color:#0000CD;">- info:</span> <a class="moz-txt-link-abbreviated" href="mailto:alexe@us.ibm.com">alexe@us.ibm.com</a> <a class="moz-txt-link-freetext" href="http://www.research.ibm.com/people/a/alexe">http://www.research.ibm.com/people/a/alexe</a><br>
<span style="color:#0000CD;">- phone</span>:
914-945-1812 (work) 914-312-3618 (cell)</div>
</div>
</div>
</div>
</div>
</div>
<div dir="ltr"> </div>
<div dir="ltr"> </div>
<blockquote data-history-content-modified="1" dir="ltr"
style="border-left:solid #aaaaaa 2px; margin-left:5px;
padding-left:5px; direction:ltr; margin-right:0px">-----
Original message -----<br>
From: Joseph Schuchart via Openmp-dev
<a class="moz-txt-link-rfc2396E" href="mailto:openmp-dev@lists.llvm.org"><openmp-dev@lists.llvm.org></a><br>
Sent by: "Openmp-dev"
<a class="moz-txt-link-rfc2396E" href="mailto:openmp-dev-bounces@lists.llvm.org"><openmp-dev-bounces@lists.llvm.org></a><br>
To: openmp-dev <a class="moz-txt-link-rfc2396E" href="mailto:openmp-dev@lists.llvm.org"><openmp-dev@lists.llvm.org></a><br>
Cc:<br>
Subject: [Openmp-dev] Using the runtime C interface<br>
Date: Wed, Oct 26, 2016 8:55 AM<br>
<div><font face="Default Monospace,Courier
New,Courier,monospace" size="2">All,<br>
<br>
I am currently working on a research project with the goal
to create a<br>
C++ abstraction for creating tasks similar to tasking in
OpenMP but with<br>
added functionality and only relying on standard C++
language features.<br>
In order to allow for an easy integration with existing
OpenMP<br>
applications, I would like to use an existing OpenMP
runtime as a basis<br>
so that users can only port parts of their application
while keeping<br>
most of the existing code. Eventually all created tasks
will be<br>
scheduled by the same runtime.<br>
<br>
The LLVM OpenMP runtime seems to be a good fit as it comes
with a<br>
documented API [1] and supports multiple compilers. Thanks
to the<br>
documentation and the library code, I think I have a good
understanding<br>
of how to create tasks with depdendencies using
__kmpc_omp_task_alloc()<br>
and __kmpc_omp_task_with_deps(). However, it is not clear
to me how<br>
threads can be spawned correctly. I assume that
__kmpc_fork_call() is<br>
the right place to look at but I fail to understand how a
microtask<br>
should exactly behave, e.g., which functions to call while
waiting for<br>
tasks to be created in another thread. Is there any
publicly available<br>
example on how to use the API correctly without any OpenMP
pragmas? Or<br>
is it possible to extract such an example from OpenMP code
using the<br>
LLVM compiler?<br>
<br>
Any pointers are much appreciated.<br>
<br>
Cheers<br>
Joseph<br>
<br>
[1] <a moz-do-not-send="true"
href="http://openmp.llvm.org/Reference.pdf"
target="_blank">http://openmp.llvm.org/Reference.pdf</a><br>
<br>
--<br>
Dipl.-Inf. Joseph Schuchart<br>
High Performance Computing Center Stuttgart (HLRS)<br>
Nobelstr. 19<br>
D-70569 Stuttgart<br>
<br>
Tel.: +49(0)711-68565890<br>
Fax: +49(0)711-6856832<br>
E-Mail: <a class="moz-txt-link-abbreviated" href="mailto:schuchart@hlrs.de">schuchart@hlrs.de</a><br>
<br>
_______________________________________________<br>
Openmp-dev mailing list<br>
<a class="moz-txt-link-abbreviated" href="mailto:Openmp-dev@lists.llvm.org">Openmp-dev@lists.llvm.org</a><br>
<a moz-do-not-send="true"
href="http://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-dev"
target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-dev</a></font></div>
</blockquote>
<div dir="ltr"> </div>
</div>
<br>
</blockquote>
<br>
<pre class="moz-signature" cols="72">--
Dipl.-Inf. Joseph Schuchart
High Performance Computing Center Stuttgart (HLRS)
Nobelstr. 19
D-70569 Stuttgart
Tel.: +49(0)711-68565890
Fax: +49(0)711-6856832
E-Mail: <a class="moz-txt-link-abbreviated" href="mailto:schuchart@hlrs.de">schuchart@hlrs.de</a>
</pre>
</body>
</html>