<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Exchange Server">
<!-- converted from rtf -->
<style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 2px solid; } --></style>
</head>
<body>
<font face="Times New Roman" size="3"><span style="font-size:12pt;"><a name="_MailEndCompose"></a>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">Hi Jonas, </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">How do you intend to support OMPT on Windows? </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">The code currently committed to the project can be compiled only on unix-like systems due to the attribute ‘weak’ specified for the initialization function (in ompt-general.c):</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Courier New" size="2"><span style="font-size:11pt;">_OMP_EXTERN <font color="red"><b>__attribute__ (( weak ))</b></font></span></font></div>
<div><font face="Courier New" size="2"><span style="font-size:11pt;">int ompt_initialize(ompt_function_lookup_t ompt_fn_lookup, const char *version,</span></font></div>
<div><font face="Courier New" size="2"><span style="font-size:11pt;">                    unsigned int ompt_version)</span></font></div>
<div><font face="Courier New" size="2"><span style="font-size:11pt;">{</span></font></div>
<div><font face="Courier New" size="2"><span style="font-size:11pt;">    return no_tool_present;</span></font></div>
<div><font face="Courier New" size="2"><span style="font-size:11pt;">}</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">Thank you.</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">Regards,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">Olga</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">-----Original Message-----<br>

From: openmp-dev-bounces@cs.uiuc.edu [<a href="mailto:openmp-dev-bounces@cs.uiuc.edu">mailto:openmp-dev-bounces@cs.uiuc.edu</a>] On Behalf Of Hahnfeld, Jonas<br>

Sent: Thursday, April 9, 2015 4:25 PM<br>

To: 'openmp-dev@dcs-maillist2.engr.illinois.edu'<br>

Cc: John Mellor-Crummey (johnmc@rice.edu); Cramer, Tim<br>

Subject: [Openmp-dev] Patches to support OMPT</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">Hi all!</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">After some months of work, we would like to share our patches to add support for OMPT[1] to this version of the Intel runtime.</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">Implementation was mainly done by John Mellor-Crummey from Rice University in a repository at Google Code[2].</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">Support for OMPT is disabled by default and therefore has to be enabled</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">explicitly:</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">With CMake, define "ompt-support": $ cmake -Dompt-support=true ..</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">build.pl works nearly the same: $ make build_args="--ompt-support=on"</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">With this switch, ompt-blame and ompt-trace will be enabled as well which can be disabled separately.</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">We've uploaded the patches to LLVM's Phabricator. Some short explanation:</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">0001-kmp_lock-Change-return-type-of-release-functions-fro.patch[3]</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">This is a preparation patch to get information about the actual release status from nested locks.</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">0002-Add-new-files-for-OMPT.patch[4]</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">This patch contains the new files for OMPT and the needed changes to the build infrastructure.</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">0003-Modify-runtime-to-call-correct-functions-for-OMPT.patch[5]</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">These are the actual changes in the runtime to issue OMPT-related functions.</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">All of them are surrounded by #if OMPT_SUPPORT and can be disabled (which is the default).</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">The implementation is tested with the OMPT-TestSuite[6] and conforms with the OpenMP's 2nd Technical Report[1].</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">Additionally we ran the OpenMP Validation Suite contained in this repository to make sure that nothing broke.</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">Please review and commit if found suitable.</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">We know that these are rather big patches (for a big feature), but we couldn't come up with a better splitting.</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">From Aachen,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">Tim Cramer and Jonas Hahnfeld</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">[1]: <a href="http://openmp.org/mp-documents/ompt-tr2.pdf">http://openmp.org/mp-documents/ompt-tr2.pdf</a></span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">[2]: <a href="https://code.google.com/p/ompt-intel-openmp/">https://code.google.com/p/ompt-intel-openmp/</a></span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">[3]: <a href="http://reviews.llvm.org/D8916">http://reviews.llvm.org/D8916</a></span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">[4]: <a href="http://reviews.llvm.org/D8917">http://reviews.llvm.org/D8917</a></span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">[5]: <a href="http://reviews.llvm.org/D8918">http://reviews.llvm.org/D8918</a></span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">[6]: <a href="https://code.google.com/p/ompt-test-suite/">https://code.google.com/p/ompt-test-suite/</a></span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">--</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">Jonas Hahnfeld, MATSE-Auszubildender</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">IT Center</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">Group: High Performance Computing</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">Division: Computational Science and Engineering RWTH Aachen University Seffenter Weg 23 D 52074  Aachen (Germany) <a href="mailto:Hahnfeld@itc.rwth-aachen.de">Hahnfeld@itc.rwth-aachen.de</a> <a href="http://www.itc.rwth-aachen.de">www.itc.rwth-aachen.de</a></span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
</span></font>
<p><br>
--------------------------------------------------------------------<br>
Closed Joint Stock Company Intel A/O<br>
Registered legal address: Krylatsky Hills Business Park, <br>
17 Krylatskaya Str., Bldg 4, Moscow 121614, <br>
Russian Federation</p>

<p>This e-mail and any attachments may contain confidential material for<br>
the sole use of the intended recipient(s). Any review or distribution<br>
by others is strictly prohibited. If you are not the intended<br>
recipient, please contact the sender and delete all copies.</p></body>
</html>