<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">Hoang-Vu :<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<p dir="ltr">If I do not need the full solver/factorization but just the backward subs, do i need any special treatment ? Is there a way to hint the solver to apply only the last step to reduce overhead ?</p></blockquote><div>What do you mean " do not need the full solver/factorization"?</div><div>Do you need incomplete matrix factorization, e.g., ILU, instead of full factorization?</div><div>The backward subs are steps AFTER matrix factorization. </div><div><br></div><div>Hong</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class=""><div class="h5">
<div class="gmail_quote">On Mar 8, 2015 6:26 PM, "Barry Smith" <<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><br>
  PETSc provides sparse parallel LU (and Cholesky) factorizations and solves via the external packages SuperLU_Dist, MUMPS, and Pastix. You need to first configure PETSc to use one or more of those packages for example ./configure --download-superlu_dist --download-metis --download-parmetis.<br>
<br>
  It is generally best to use the linear solvers via the PETSc KSP interface (even for direct solvers such as LU). So you create a KSP object, provide the matrix object and call KSPSolve(). You can control the solver used via the options database; to use the installed SuperLU_Dist you would use -pc_type lu -pc_factor_mat_solver_package superlu_dist<br>
<br>
  The MatrixMarket format is no good for parallel computing so you must first convert the file from MatrixMarket format to the PETSc binary format (see <a href="http://www.mcs.anl.gov/petsc/documentation/faq.html#sparse-matrix-ascii-format" target="_blank">http://www.mcs.anl.gov/petsc/documentation/faq.html#sparse-matrix-ascii-format</a> ) and then  you can use MatLoad() to load the matrix in parallel and then pass it to the KSP solver. For example src/ksp/ksp/examples/tutorials/ex10.c does this.<br>
<br>
<br>
  Barry<br>
<br>
> On Mar 8, 2015, at 6:08 PM, Hoang-Vu Dang <<a href="mailto:dang.hvu@gmail.com" target="_blank">dang.hvu@gmail.com</a>> wrote:<br>
><br>
> Hi,<br>
><br>
> I would like to use petcs to perform parallel backward/forward substitution for sparse triangular matrices in a distributed memory cluster (with MPI).<br>
><br>
> Could someone provide me some pointers on how to do this or whether petsc is good for this task ?<br>
><br>
> I think there is MatSolve method, but unsure whether it supports good algorithm for sparse triangular matrices and how to provide an input in a MartrixMarket format / CSR format.<br>
><br>
> Thank you<br>
> Vu<br>
<br>
</blockquote></div>
</div></div></blockquote></div><br></div></div>