<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Currently to use libomp, the flag is: -fopenmp=libomp<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">-- Johnny<o:p></o:p></span></p>
<p class="MsoNormal"><a name="_MailEndCompose"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></a></p>
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Openmp-dev [mailto:openmp-dev-bounces@lists.llvm.org]
<b>On Behalf Of </b>César via Openmp-dev<br>
<b>Sent:</b> Wednesday, August 19, 2015 11:30 AM<br>
<b>To:</b> andreybokhanko<br>
<b>Cc:</b> openmp-dev@lists.llvm.org<br>
<b>Subject:</b> Re: [Openmp-dev] Performance slowdown<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<div>
<p class="MsoNormal">On Wed, Aug 19, 2015 at 12:59 PM, andreybokhanko <<a href="mailto:andreybokhanko@gmail.com" target="_blank">andreybokhanko@gmail.com</a>> wrote:<o:p></o:p></p>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<p class="MsoNormal">Indeed, I meant official released 3.5. Did you get your compiler from clang-omp.github? It's probably outdated and can't be used for reliable performance measurements.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">I will update clang-omp.github home page to avoid further confusion.<o:p></o:p></p>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Yes, that was exactly what happend! Thanks Alexey/Andrey. <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">I have just downloaded clang-3.8 (trunk) and started some experiments, however I see that clang is trying to link with "lib gomp" (GNU) and not "libomp" (Intel). Is this really the intended default behavior? How can I tell clang to use
 the Intel OMP?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<p class="MsoNormal">Yours,<o:p></o:p></p>
<div>
<p class="MsoNormal">Andrey<o:p></o:p></p>
</div>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
19 авг. 2015 г., в 8:17, Bataev, Alexey <<a href="mailto:a.bataev@hotmail.com" target="_blank">a.bataev@hotmail.com</a>> написал(а):<o:p></o:p></p>
</div>
<div>
<div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal">If you're using 3.5, then this is unofficial version with OpenMP. Use 3.7 instead just like Andrey said<br>
<br>
<o:p></o:p></p>
<pre>Best regards,<o:p></o:p></pre>
<pre>Alexey Bataev<o:p></o:p></pre>
<pre>=============<o:p></o:p></pre>
<pre>Software Engineer<o:p></o:p></pre>
<pre>Intel Compiler Team<o:p></o:p></pre>
<div>
<p class="MsoNormal">19.08.2015 1:25, César via Openmp-dev пишет:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal">Hi Andrey, <o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">this is strange because when I compile with "clang-3.5 -fopenmp" the executable that is produced is parallel. I am sure of this because I'm able to see the threads and also because I can see the symbols used by the IOMP runtime in the binary.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">$ clang -O3 -g -fopenmp toy13.cpp -o toy13 -lm<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<div>
<p class="MsoNormal">$ nm toy13 | grep kmpc<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">U __kmpc_cancel_barrier@@VERSION<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">U __kmpc_end_single@@VERSION<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">U __kmpc_fork_call@@VERSION<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">U __kmpc_omp_task_alloc@@VERSION<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">U __kmpc_omp_task_with_deps@@VERSION<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">U __kmpc_single@@VERSION<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">$ ldd toy13 <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">linux-vdso.so.1 =>  (0x00007fff9805d000)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fc00e3cc000)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">libiomp5.so => /usr/lib/libiomp5.so (0x00007fc00e121000)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fc00df03000)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc00db3e000)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fc00d939000)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">/lib64/ld-linux-x86-64.so.2 (0x00007fc00e6fc000)<o:p></o:p></p>
</div>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><br clear="all">
<o:p></o:p></p>
<div>
<div>
<p class="MsoNormal"><br>
<br>
César.<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">On Tue, Aug 18, 2015 at 6:15 PM, <<a href="mailto:andreybokhanko@gmail.com" target="_blank">andreybokhanko@gmail.com</a>> wrote:<o:p></o:p></p>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<p class="MsoNormal">César,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal"><span style="color:black">- The version of Clang that I am using to compile the benchmarks: 3.5.0</span><o:p></o:p></p>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal">Clang 3.5 doesn't support OpenMP -- it simply ignores the pragmas.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Please use version from trunk or from 3_7 release branch. Also, please supply -fopenmp= libomp option.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Yours,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Andrey Bokhanko<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">=============<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Software Engineer<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Intel Compiler Team<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Intel<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><br>
Отправлено с iPad<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
18 авг. 2015 г., в 21:14, César via Openmp-dev <<a href="mailto:openmp-dev@lists.llvm.org" target="_blank">openmp-dev@lists.llvm.org</a>> написал(а):<o:p></o:p></p>
</div>
<div>
<div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal">Hello, <o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">I don't know if this is the correct list to talk about this - I did not find a better place..<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">I am doing performance experiments with a few OpenMP implementations (IOMP, GOMP and our private impl.) and I am seeing a severe slowdown when I use IOMP (GOMP and others are performing well). <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">The benchmarks I am using are these ones: <a href="http://kastors.gforge.inria.fr/#%21index.md" target="_blank">http://kastors.gforge.inria.fr/#!index.md</a><br clear="all">
<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Really, the slowdown is huge. For one of the programs (plasma/dpotrf_taskdep -n 8192 -b 64 -i 1 -c) the serial version executes in ~28s and the parallel one executes in ~110s. I did some profiling and found that most of the time is being
 spent on synchronization barriers and dependence tracking (see attached image). Before digging deeper I would like to hear back from you if I am doing something wrong here:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">- I tested with the last version of the repository:  <a href="http://llvm.org/svn/llvm-project/openmp/trunk" target="_blank">http://llvm.org/svn/llvm-project/openmp/trunk</a><o:p></o:p></p>
</div>
<div>
<div>
<div>
<p class="MsoNormal">- I am using Ubuntu 14.10.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- I have tested on more than one machine, the results above are from a Intel i7-3770<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- The runtime itself is compiled using: make compiler=gcc os_omp=linux arch=32e<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- The version of GCC that I am using is: 4.9.1<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- The version of Clang that I am using to compile the benchmarks: 3.5.0<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><br>
<br>
César.<o:p></o:p></p>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal"><pic1.png><o:p></o:p></p>
</div>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal"><pic2.png><o:p></o:p></p>
</div>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal"><pic3.png><o:p></o:p></p>
</div>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal">_______________________________________________<br>
Openmp-dev mailing list<br>
<a href="mailto:Openmp-dev@lists.llvm.org" target="_blank">Openmp-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-dev" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-dev</a><o:p></o:p></p>
</div>
</blockquote>
</div>
</blockquote>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><o:p> </o:p></p>
<pre>_______________________________________________<o:p></o:p></pre>
<pre>Openmp-dev mailing list<o:p></o:p></pre>
<pre><a href="mailto:Openmp-dev@lists.llvm.org" target="_blank">Openmp-dev@lists.llvm.org</a><o:p></o:p></pre>
<pre><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-dev" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-dev</a><o:p></o:p></pre>
</blockquote>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</div>
</body>
</html>