<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, May 29, 2018 at 4:05 AM, Najeeb Ahmad <span dir="ltr"><<a href="mailto:nahmad16@ku.edu.tr" target="_blank">nahmad16@ku.edu.tr</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, May 28, 2018 at 9:32 PM, Smith, Barry F. <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"><span><br>
<br>
> On May 28, 2018, at 10:32 AM, Najeeb Ahmad <<a href="mailto:nahmad16@ku.edu.tr" target="_blank">nahmad16@ku.edu.tr</a>> wrote:<br>
> <br>
> Thanks a lot Satish for your prompt reply.<br>
> <br>
> I just checked that SuperLU_dist package works only for matrices of type aij. and uses lu preconditioner. I am currently working with baij matrix. What is the best preconditioner choice for baij matrices on parallel machines?<br>
<br>
</span> The best preconditioner is always problem specific. Where does your problem come from? CFD? Structural mechanics? other apps?<br></blockquote><div> </div><div> <font color="#0000ff">I am interested in writing solver for reservoir simulation employing FVM and unstructured grids. My main objective is to study performance of the code with different data structures/data layouts and architecture specific optimizations, specifically targeting the multicore architectures like KNL for instance. Later the study may be extended to include GPUs. The options for switching between AIJ and BAIJ etc. are therefore very useful for my study. </font></div></div></div></div></blockquote><div><br></div><div>I would strongly encourage you to create a simple performance model first. It should demonstrate that the investigation can</div><div>produce a positive result. For example, performance for stencil codes like this is usually limited by memory bandwidth. The</div><div>bandwidth advantage would be at most 3x with KNL/GPU vs Skylake, and it would be nil if the Skylake were to get MCDRAM</div><div>as we all expect.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><font color="#0000ff"> The purpose why I wanted to change the preconditioner is that the default preconditioner is giving me different iterations count for different number of processesors. I would rather like a preconditioner that would give me same iteration count for any processor count so that I can better compare the performance results. </font></div><div><font color="#0000ff"><br></font></div><div><font color="#0000ff"> Your suggestions in this regard are highly appreciated, specifically with reference to the following points:</font></div><div><font color="#0000ff"> </font></div><div><font color="#0000ff"> - Is it possible to explicitly use high bandwidth memory in PETSc for selected object placement (e.g. using memkind library for instance)?</font></div></div></div></div></blockquote><div><br></div><div>I believe Richard has some extensions for this. Richard?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><font color="#0000ff"> - What would it take to take advantage of architecture specific compiler flags to achieve good performance on a given platform (e.g. -xMIC-AVX512 for AVX512 on KNL, #pragma SIMD etc.). </font></div></div></div></div></blockquote><div><br></div><div>Usually intrinsics. We already have this for MatMult() for some architectures.</div><div><br></div><div> Thanks,</div><div><br></div><div> Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><font color="#0000ff"><br></font></div><div><font color="#0000ff"> Sorry for some very basic questions as I am a novice PETSc user. </font></div><div><font color="#0000ff"><br></font></div><div><font color="#0000ff"> Thanks for your time :)</font></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Anyways you probably want to make your code be able to switch between AIJ and BAIJ at run time since the different formats support somewhat different solvers. If your code alls MatSetFromOptions then you can switch via the command line option -mat_type aij or baij <br>
<span class="m_1701484284570803259HOEnZb"><font color="#888888"><br>
Barry<br>
</font></span><div class="m_1701484284570803259HOEnZb"><div class="m_1701484284570803259h5"><br>
> <br>
> Thanks<br>
> <br>
> On Mon, May 28, 2018 at 8:23 PM, Satish Balay <<a href="mailto:balay@mcs.anl.gov" target="_blank">balay@mcs.anl.gov</a>> wrote:<br>
> On Mon, 28 May 2018, Najeeb Ahmad wrote:<br>
> <br>
> > Hi All,<br>
> > <br>
> > I have Petsc release version 3.9.2 configured with the following options:<br>
> > <br>
> > Configure options --with-cc=mpiicc --with-cxx=mpiicpc --with-fc=mpiifort<br>
> > --download-fblaslapack=1<br>
> > <br>
> > Now I want to use PCILU in my code and when I set the PC type to PCILU in<br>
> > the code, I get the following error:<br>
> > <br>
> > [0]PETSC ERROR: --------------------- Error Message<br>
> > ------------------------------<wbr>------------------------------<wbr>--<br>
> > [0]PETSC ERROR: See<br>
> > <a href="http://www.mcs.anl.gov/petsc/documentation/linearsolvertable.html" rel="noreferrer" target="_blank">http://www.mcs.anl.gov/petsc/d<wbr>ocumentation/linearsolvertable<wbr>.html</a> for<br>
> > possible LU and Cholesky solvers<br>
> > [0]PETSC ERROR: Could not locate a solver package. Perhaps you must<br>
> > ./configure with --download-<package><br>
> > [0]PETSC ERROR: See <a href="http://www.mcs.anl.gov/petsc/documentation/faq.html" rel="noreferrer" target="_blank">http://www.mcs.anl.gov/petsc/d<wbr>ocumentation/faq.html</a> for<br>
> > trouble shooting.<br>
> > [0]PETSC ERROR: Petsc Release Version 3.9.2, unknown<br>
> > [0]PETSC ERROR: ./main on a arch-linux2-c-debug named Karachi by nahmad Mon<br>
> > May 28 17:52:41 2018<br>
> > [0]PETSC ERROR: Configure options --with-cc=mpiicc --with-cxx=mpiicpc<br>
> > --with-fc=mpiifort --download-fblaslapack=1<br>
> > [0]PETSC ERROR: #1 MatGetFactor() line 4318 in<br>
> > /home/nahmad/PETSc/petsc/src/m<wbr>at/interface/matrix.c<br>
> > [0]PETSC ERROR: #2 PCSetUp_ILU() line 142 in<br>
> > /home/nahmad/PETSc/petsc/src/k<wbr>sp/pc/impls/factor/ilu/ilu.c<br>
> > [0]PETSC ERROR: #3 PCSetUp() line 923 in<br>
> > /home/nahmad/PETSc/petsc/src/k<wbr>sp/pc/interface/precon.c<br>
> > [0]PETSC ERROR: #4 KSPSetUp() line 381 in<br>
> > /home/nahmad/PETSc/petsc/src/k<wbr>sp/ksp/interface/itfunc.c<br>
> > [0]PETSC ERROR: #5 KSPSolve() line 612 in<br>
> > /home/nahmad/PETSc/petsc/src/k<wbr>sp/ksp/interface/itfunc.c<br>
> > [0]PETSC ERROR: #6 SolveSystem() line 60 in<br>
> > /home/nahmad/Aramco/petsc/pets<wbr>c/BlockSolveTest/src/main.c<br>
> > <br>
> > <br>
> > I assume that I am missing LU package like SuperLU_dist for instance and I<br>
> > need to download and configure it with Petsc.<br>
> <br>
> yes - petsc has sequential LU - but you need superlu_dist/mumps for parallel lu.<br>
> <br>
> > <br>
> > I am wondering what is the best way to reconfigure Petsc to download and<br>
> > use the appropriate package to support PCILU?<br>
> <br>
> Rerun configure with the additional option --download-superlu_dist=1.<br>
> <br>
> You can do this with current PETSC_ARCH you are using [i.e reinstall<br>
> over the current build] - or use a different PETSC_ARCH - so both<br>
> builds exist and useable.<br>
> <br>
> Satish<br>
> <br>
> > <br>
> > You advice is highly appreciated.<br>
> > <br>
> > <br>
> <br>
> <br>
> <br>
> <br>
> -- <br>
> Najeeb Ahmad<br>
> <br>
> Research and Teaching Assistant<br>
> PARallel and MultiCORE Computing Laboratory (ParCoreLab) <br>
> Computer Science and Engineering<br>
> Koç University, Istanbul, Turkey<br>
> <br>
<br><span class="HOEnZb"><font color="#888888">
</font></span></div></div></blockquote></div><span class="HOEnZb"><font color="#888888"><br><br clear="all"><div><br></div>-- <br><div class="m_1701484284570803259gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div><div></div><font size="2"><b><span style="color:rgb(7,55,99)"><i>Najeeb Ahmad</i></span></b></font></div><div><font size="2"><b><font color="#073763"><i><br></i></font></b></font><div dir="ltr" style="font-size:small"><div><font size="2"><b><span style="color:rgb(120,63,4)">Research and Teaching Assistant</span><br></b></font></div><div><font size="2"><b><font color="#000000">PARallel and MultiCORE Computing Laboratory (ParCoreLab)</font><span style="color:rgb(120,63,4)"> </span></b></font></div><font size="2"><b>Computer Science and Engineering<br></b></font></div><div style="font-size:small"><font size="2"><b>Koç University, Istanbul, Turkey</b></font></div></div></div></div><div><font size="2"><b><br></b></font></div></div></div></div></div></div></div></div>
</font></span></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div><div><br></div><div><a href="http://www.caam.rice.edu/~mk51/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div>
</div></div>