<div dir="ltr">Hi Barry,<div><br></div><div>thanks for your note, I am aware of that too. Having only the MKL solver </div><div>being able to see the second level of parallelism is fine with me.</div><div><br></div><div>Thanks for the clarification too! As a sidenote, I set all environmental</div><div>variables correctly but Pardiso prints that is running on 1 OpenMP</div><div>thread only. I can see in the compile line (when I make) that ${CLINKER}</div><div>links with flags -lmkl_intel_lp64 -lmkl_core -lmkl_sequential -lpthread -lm. </div><div>Could the -lmkl_sequential flag be the reason that MKL sees only a </div><div>single thread?  Can I edit ${CLINKER} or somehow remove the sequential</div><div>flag?</div><div><br></div><div>Thanks again! </div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Mar 8, 2016 at 2:22 PM, Barry Smith <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5"><br>
> On Mar 8, 2016, at 2:07 PM, Vasileios Kalantzis <<a href="mailto:kalan019@umn.edu">kalan019@umn.edu</a>> wrote:<br>
><br>
> Hi everyone,<br>
><br>
> Assuming that I want to use MKL's Pardiso in the<br>
> context of PETSc (I need it as a local solver for<br>
> block Jacobi type preconditioning), how should I form<br>
> my ./configure so that I can take advantage of<br>
> multi-threading when calling MKL's Pardiso?<br>
><br>
> For example, do I simply have to configure with<br>
> --with-openmp=1 --with-pthread=1 and/or similar?<br>
> I have tried different combinations and thought<br>
> of asking,<br>
><br>
> Thank you!<br>
><br>
> ps. right now I use flat MPI and works fine, I want<br>
> to use threading to add a second level of parallelism,<br>
<br>
</div></div>  If you do this then the only part of the code that takes advantage of that "second level of parallelism" will be within the MKL solver. The rest of the code will not use those "extra" threads. You must make sure you run MPI on less cores so there are enough "free" cores to run the threads for the the MKL solver.<br>
<br>
  To utilize MKL's Pardiso you don't need to configure PETSc with any mention of openmp or pthreads you just need to set appropriate MKL environmental variables so that MKL's Pardiso will use multiple threads. Or you can use MatMkl_PardisoSetCntl() see the manual page for MATSOLVERMKL_PARDISO etc<br>
<br>
<br>
<br>
   Barry<br>
<br>
<br>
<br>
><br>
><br>
<br>
</blockquote></div><br></div>