<p dir="ltr">Thank you for the prompt reply. That is very helpful. </p>
<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>
<p dir="ltr">Vu</p>
<div class="gmail_quote">On Mar 8, 2015 6:26 PM, "Barry Smith" <<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc 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">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>