<div dir="ltr"><div>Sorry for causing the confusion, I should have clarify the term "triangular solver".</div><div><br></div>What I mean is that I do not need a factorization from a general matrix to LU form. <div><br></div><div> I already have the matrix in lower/upper triangular form. So the solver is really just backward/forward substitution. </div><div><br></div><div>See here, I got the terminology from <a href="http://www.mcs.anl.gov/papers/P1658.pdf">http://www.mcs.anl.gov/papers/P1658.pdf</a></div><div><br></div><div>The algorithm "sparse triangular solve", unless I misunderstood the paper. The paper specifically mentioned PETSC so that's where I'm starting from.</div><div><br></div><div>I hope that makes thing clearer,</div><div><br></div><div>Cheers,</div><div>Vu</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Mar 8, 2015 at 9:28 PM, Hong <span dir="ltr"><<a href="mailto:hzhang@mcs.anl.gov" target="_blank">hzhang@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"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">Hoang-Vu :<span class=""><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></span><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><span class="HOEnZb"><font color="#888888"><div><br></div><div>Hong</div></font></span><span class=""><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><div>
<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></span></div><br></div></div>
</blockquote></div><br></div>