<div dir="ltr">Thanks Jonathan, using -fopenmp=libomp I was able to link against libomp. However, for some benchmarks I get syntax error:<div><br></div><div><div>src/sparselu-task-dep.c:35:89: error: expected ']'</div><div>                        #pragma omp task firstprivate(kk) shared(BENCH) depend(inout: BENCH[kk*matrix_size+kk:submatrix_size*submatrix_size])</div></div><div><div>                                                                                                                                                                           ^</div></div><div><br></div><div>the same benchmark compile with the [older] Github version of Clang, with clang-3.8 -fopenmp and also with GCC.</div><div><br></div><div>Doesn't Clang support specifying memory ranges for the dependencies or does it just uses another syntax?</div><div><br></div><div><br></div><div><br></div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature"><br><br>César.</div></div>
<br><div class="gmail_quote">On Wed, Aug 19, 2015 at 1:37 PM, Peyton, Jonathan L <span dir="ltr"><<a href="mailto:jonathan.l.peyton@intel.com" target="_blank">jonathan.l.peyton@intel.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div lang="EN-US" link="blue" vlink="purple">
<div>
<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<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">-- Johnny<u></u><u></u></span></p>
<p class="MsoNormal"><a name="14f46d30b9324386__MailEndCompose"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></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:<a href="mailto:openmp-dev-bounces@lists.llvm.org" target="_blank">openmp-dev-bounces@lists.llvm.org</a>]
<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<span class=""><br>
<b>Cc:</b> <a href="mailto:openmp-dev@lists.llvm.org" target="_blank">openmp-dev@lists.llvm.org</a><br>
<b>Subject:</b> Re: [Openmp-dev] Performance slowdown<u></u><u></u></span></span></p>
<p class="MsoNormal"><u></u> <u></u></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:<u></u><u></u></p><div><div class="h5">
<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.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">I will update clang-omp.github home page to avoid further confusion.<u></u><u></u></p>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Yes, that was exactly what happend! Thanks Alexey/Andrey. <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></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?<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></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,<u></u><u></u></p>
<div>
<p class="MsoNormal">Andrey<u></u><u></u></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>> написал(а):<u></u><u></u></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>
<u></u><u></u></p>
<pre>Best regards,<u></u><u></u></pre>
<pre>Alexey Bataev<u></u><u></u></pre>
<pre>=============<u></u><u></u></pre>
<pre>Software Engineer<u></u><u></u></pre>
<pre>Intel Compiler Team<u></u><u></u></pre>
<div>
<p class="MsoNormal">19.08.2015 1:25, César via Openmp-dev пишет:<u></u><u></u></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal">Hi Andrey, <u></u><u></u></p>
<div>
<p class="MsoNormal"><u></u> <u></u></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.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">$ clang -O3 -g -fopenmp toy13.cpp -o toy13 -lm<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<div>
<p class="MsoNormal">$ nm toy13 | grep kmpc<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">U __kmpc_cancel_barrier@@VERSION<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">U __kmpc_end_single@@VERSION<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">U __kmpc_fork_call@@VERSION<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">U __kmpc_omp_task_alloc@@VERSION<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">U __kmpc_omp_task_with_deps@@VERSION<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">U __kmpc_single@@VERSION<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">$ ldd toy13 <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">linux-vdso.so.1 =>  (0x00007fff9805d000)<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fc00e3cc000)<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">libiomp5.so => /usr/lib/libiomp5.so (0x00007fc00e121000)<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fc00df03000)<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc00db3e000)<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fc00d939000)<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">/lib64/ld-linux-x86-64.so.2 (0x00007fc00e6fc000)<u></u><u></u></p>
</div>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><br clear="all">
<u></u><u></u></p>
<div>
<div>
<p class="MsoNormal"><br>
<br>
César.<u></u><u></u></p>
</div>
</div>
<p class="MsoNormal"><u></u> <u></u></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:<u></u><u></u></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,<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></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><u></u><u></u></p>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<p class="MsoNormal">Clang 3.5 doesn't support OpenMP -- it simply ignores the pragmas.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Please use version from trunk or from 3_7 release branch. Also, please supply -fopenmp= libomp option.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Yours,<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Andrey Bokhanko<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">=============<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Software Engineer<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Intel Compiler Team<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Intel<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><br>
Отправлено с iPad<u></u><u></u></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>> написал(а):<u></u><u></u></p>
</div>
<div>
<div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal">Hello, <u></u><u></u></p>
<div>
<p class="MsoNormal"><u></u> <u></u></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..<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></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). <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></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">
<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></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:<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></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><u></u><u></u></p>
</div>
<div>
<div>
<div>
<p class="MsoNormal">- I am using Ubuntu 14.10.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">- I have tested on more than one machine, the results above are from a Intel i7-3770<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">- The runtime itself is compiled using: make compiler=gcc os_omp=linux arch=32e<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">- The version of GCC that I am using is: 4.9.1<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">- The version of Clang that I am using to compile the benchmarks: 3.5.0<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><br>
<br>
César.<u></u><u></u></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><u></u><u></u></p>
</div>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal"><pic2.png><u></u><u></u></p>
</div>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal"><pic3.png><u></u><u></u></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><u></u><u></u></p>
</div>
</blockquote>
</div>
</blockquote>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><u></u> <u></u></p>
<pre>_______________________________________________<u></u><u></u></pre>
<pre>Openmp-dev mailing list<u></u><u></u></pre>
<pre><a href="mailto:Openmp-dev@lists.llvm.org" target="_blank">Openmp-dev@lists.llvm.org</a><u></u><u></u></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><u></u><u></u></pre>
</blockquote>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div></div></div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div>
</div>
</div>

</blockquote></div><br></div>