<div dir="ltr"><div dir="ltr"><div dir="ltr">Hi Mohammad,</div><div dir="ltr"><br></div><div dir="ltr">We tried the same thing for our finite element heat transfer code, and experimented with both MUMPS and MKL's Cluster PARDISO for about a year, and were very disappointed with how they scaled.</div><div dir="ltr"><br></div><div dir="ltr">Give the full PETSc PCG solver with the ILU(0) preconditioner a try (pure MPI, no hybrid MPI-OpenMP).  We found that it scales very well over two or more nodes, and even though it is slower than MKL PARDISO on a single node, its speedup is so much better over multiple MPI ranks that it quickly overtakes the speed of the direct solvers.</div><div dir="ltr"><br></div><div dir="ltr"><div dir="ltr"><span style="white-space:pre">           </span>ierr = KSPSetType(ksp, KSPCG);                       // And stick with the default ILU preconditioner</div></div><div dir="ltr"><br></div><div>The interconnect we've been using is 25 Gbps Ethernet, which is standard on the AWS EC2 cloud.</div><div dir="ltr"><br clear="all"><div><div dir="ltr" class="gmail_signature"><div dir="ltr"><div dir="ltr"><div dir="ltr"><span style="font-size:12.8px">Matt Overholt</span><br></div><div dir="ltr"><br></div></div></div></div></div></div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Jan 25, 2019 at 10:44 AM Mohammad Gohardoust via petsc-users <<a href="mailto:petsc-users@mcs.anl.gov">petsc-users@mcs.anl.gov</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div style="color:rgb(103,78,167)"></div><div style="color:rgb(103,78,167)">Hi,</div><div style="color:rgb(103,78,167)"><br></div><div style="color:rgb(103,78,167)">I am trying to modify a "pure MPI" code for solving water movement equation in soils which employs KSP iterative solvers. This code gets really slow in the hpc I am testing it as I increase the number of calculating nodes (each node has 28 cores) even from 1 to 2. I went for implementing "MPI-OpenMP" solutions like MUMPS. I did this inside the petsc by:</div><div style="color:rgb(103,78,167)"><br></div><div style="color:rgb(103,78,167);margin-left:40px">KSPSetType(ksp, KSPPREONLY);</div><div style="color:rgb(103,78,167);margin-left:40px">PCSetType(pc, PCLU);</div><div style="color:rgb(103,78,167);margin-left:40px">PCFactorSetMatSolverType(pc, MATSOLVERMUMPS);</div><div style="color:rgb(103,78,167);margin-left:40px">KSPSolve(ksp, ... <br></div><div style="color:rgb(103,78,167);margin-left:40px"><br></div><div style="color:rgb(103,78,167)">and I run it through:</div><div style="color:rgb(103,78,167)"><br></div><div style="color:rgb(103,78,167);margin-left:40px">export OMP_NUM_THREADS=16 && mpirun -n 2 ~/Programs/my_programs<br><br></div><div style="color:rgb(103,78,167)"></div><div style="color:rgb(103,78,167)">The code is working (in my own PC) but it is too slow (maybe about 50 times slower). Since I am not an expert, I like to know is this what I should expect from MUMPS!?</div><div style="color:rgb(103,78,167)"><br></div><div style="color:rgb(103,78,167)">Thanks,</div><div style="color:rgb(103,78,167)">Mohammad<br></div><div style="color:rgb(103,78,167)"></div><div style="color:rgb(103,78,167)"></div><br></div></div>
</blockquote></div></div></div>