<div dir="ltr">Satish  and Barry,<div><br></div><div>thank you very much for your help, problem solved when I edited</div><div><span style="font-size:12.8px">PETSC_ARCH/conf/</span><span style="font-size:12.8px">petscvariables and removed the -lmkl_sequential</span><br></div><div><span style="font-size:12.8px">flag from the linker,</span></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Mar 8, 2016 at 3:33 PM, Satish Balay <span dir="ltr"><<a href="mailto:balay@mcs.anl.gov" target="_blank">balay@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">Ideally petsc configure is smart and automatically determines the correct<br>
mkl library list. [but this is not easy - hence the existance of MKL advisor]<br>
<br>
You could use intel mkl advisor - and get the *desired* MKL libary<br>
list for your specific setup [compilers, mkl version, etc..] - and<br>
then specify this library list to PETSc configure using<br>
--with-blas-lapack-lib option.<br>
<br>
Alternatively you can edit PETSC_ARCH/lib/conf/petscvariables and change<br>
<br>
-lmkl_sequential to -lmkl_intel_thread  [or something suitable for your setup]<br>
<br>
and give it a try..<br>
<span class="HOEnZb"><font color="#888888"><br>
Satish<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
On Tue, 8 Mar 2016, Vasileios Kalantzis wrote:<br>
<br>
> Hi Barry,<br>
><br>
> thanks for your note, I am aware of that too. Having only the MKL solver<br>
> being able to see the second level of parallelism is fine with me.<br>
><br>
> Thanks for the clarification too! As a sidenote, I set all environmental<br>
> variables correctly but Pardiso prints that is running on 1 OpenMP<br>
> thread only. I can see in the compile line (when I make) that ${CLINKER}<br>
> links with flags -lmkl_intel_lp64 -lmkl_core -lmkl_sequential -lpthread<br>
> -lm.<br>
> Could the -lmkl_sequential flag be the reason that MKL sees only a<br>
> single thread?  Can I edit ${CLINKER} or somehow remove the sequential<br>
> flag?<br>
><br>
> Thanks again!<br>
><br>
> On Tue, Mar 8, 2016 at 2:22 PM, Barry Smith <<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>> wrote:<br>
><br>
> ><br>
> > > On Mar 8, 2016, at 2:07 PM, Vasileios Kalantzis <<a href="mailto:kalan019@umn.edu">kalan019@umn.edu</a>><br>
> > 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>
> >   If you do this then the only part of the code that takes advantage of<br>
> > that "second level of parallelism" will be within the MKL solver. The rest<br>
> > of the code will not use those "extra" threads. You must make sure you run<br>
> > MPI on less cores so there are enough "free" cores to run the threads for<br>
> > the the MKL solver.<br>
> ><br>
> >   To utilize MKL's Pardiso you don't need to configure PETSc with any<br>
> > mention of openmp or pthreads you just need to set appropriate MKL<br>
> > environmental variables so that MKL's Pardiso will use multiple threads. Or<br>
> > you can use MatMkl_PardisoSetCntl() see the manual page for<br>
> > MATSOLVERMKL_PARDISO etc<br>
> ><br>
> ><br>
> ><br>
> >    Barry<br>
> ><br>
> ><br>
> ><br>
> > ><br>
> > ><br>
> ><br>
> ><br>
><br>
<br>
</div></div></blockquote></div><br></div>