<div>What do you mean about 3)? I am considering to use MatSolve_MPIAIJSpooles with setting b </div>
<div>to</div>
<div>1&nbsp; 0 0&nbsp;. . .0 &nbsp;</div>
<div>0&nbsp; 1 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0</div>
<div>0&nbsp; 0 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0</div>
<div>.&nbsp;&nbsp;&nbsp;.&nbsp; .</div>
<div>.&nbsp;&nbsp; .&nbsp; .</div>
<div>.&nbsp;&nbsp; .&nbsp; .&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1</div>
<div>for solving Ax=b. After finishing all, I will rearrange X=[x1,x2,x3,x4], which is the inversion of A. whether is it similar with 1) you mentioned?</div>
<div>Practically, If I use such method, I may use some iterative methods to solve it, not direct inversion method. What is the time difference or time complexity&nbsp;regarding using spooles (direct inversion method)&nbsp;or other iterative methods?<br>
</div>
<div>thanks a lot.</div>
<div>&nbsp;</div>
<div>Regards,</div>
<div>Yujie<br></div>
<div class="gmail_quote">On Wed, Feb 27, 2008 at 2:33 PM, Matthew Knepley &lt;<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>&gt; wrote:<br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">This seems like it would involve significant programming time. Therefore,<br>I suggest<br><br>&nbsp;1) Solving each vector in a loop<br>
<br>&nbsp;2) Taking a look at MatMatSolve_SeqAIJ() and<br>MatSolve_MPIAIJSpooles() and trying to implement it yourself for<br>Spooles<br><br>&nbsp;3) Reformulating your problem so as not use an inverse, but rather just solves<br><br>
&nbsp;Thanks,<br><br>&nbsp; &nbsp; Matt<br>
<div>
<div></div>
<div class="Wj3C7c"><br>On Wed, Feb 27, 2008 at 3:44 PM, Yujie &lt;<a href="mailto:recrusader@gmail.com">recrusader@gmail.com</a>&gt; wrote:<br>&gt;<br>&gt;<br>&gt;<br>&gt; ---------- Forwarded message ----------<br>&gt; From: Yujie &lt;<a href="mailto:recrusader@gmail.com">recrusader@gmail.com</a>&gt;<br>
&gt; Date: Wed, Feb 27, 2008 at 11:40 AM<br>&gt; &nbsp;Subject: Re: any examples to demonstrate how to Spooles package?<br>&gt; To: <a href="mailto:petsc-users@mcs.anl.gov">petsc-users@mcs.anl.gov</a><br>&gt;<br>&gt;<br>&gt;<br>
&gt; This is why I have recompiled PETSc with spooles. spooles can deal with<br>&gt; AX=Y(Y is a matrix). However, PETSc only provide the following:<br>&gt;<br>&gt; 51: PetscErrorCode MatSolve_MPISpooles(Mat A,Vec b,Vec x)<br>
&gt; I don&#39;t set b to a matrix even if I use<br>&gt; 178: PetscErrorCode MatFactorNumeric_MPISpooles(Mat A,MatFactorInfo<br>&gt; *info,Mat *F) for LU factorization<br>&gt;<br>&gt; Could you give me some advice or examples? thanks a lot.<br>
&gt;<br>&gt; Regards,<br>&gt; Yujie<br>&gt;<br>&gt;<br>&gt;<br>&gt;<br>&gt;<br>&gt; On Wed, Feb 27, 2008 at 11:32 AM, Matthew Knepley &lt;<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>&gt; wrote:<br>&gt;<br>&gt; &gt;<br>
&gt; &gt; On Wed, Feb 27, 2008 at 1:21 PM, Yujie &lt;<a href="mailto:recrusader@gmail.com">recrusader@gmail.com</a>&gt; wrote:<br>&gt; &gt; &gt; Dear Matt:<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; I checked the codes about MatMatSolve(). However, currently, PETSc<br>
&gt; didn&#39;t<br>&gt; &gt; &gt; realize its parallel version. Is it right? I want to inverse the matrix<br>&gt; &gt; &gt; parallelly. could you give me some examples about it? thanks a lot.<br>&gt; &gt;<br>&gt; &gt; Thats right. The parallel version is not implemented. It looks like this<br>
&gt; would<br>&gt; &gt; take significant work.<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt; &nbsp;Matt<br>&gt; &gt;<br>&gt; &gt; &gt; Regards,<br>&gt; &gt; &gt; Yujie<br>&gt; &gt; &gt;<br>&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>&gt; &gt; &gt; On 2/27/08, Matthew Knepley &lt;<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>&gt; wrote:<br>&gt; &gt; &gt; &gt; On Wed, Feb 27, 2008 at 11:05 AM, Yujie &lt;<a href="mailto:recrusader@gmail.com">recrusader@gmail.com</a>&gt; wrote:<br>
&gt; &gt; &gt; &gt; &gt; Dear Sanjay:<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; Thank you for your reply. I don&#39;t understand what you said. Now, I<br>&gt; want<br>&gt; &gt; &gt; to<br>&gt; &gt; &gt; &gt; &gt; use spooles package to inverse a sparse SPD matrix. I have further<br>
&gt; &gt; &gt; checked<br>&gt; &gt; &gt; &gt; &gt; the inferface about spooles in PETSc. I find although spooles can<br>&gt; deal<br>&gt; &gt; &gt; with<br>&gt; &gt; &gt; &gt; &gt; AX=B (B may be a dense matrix) with parallel LU factorization.<br>
&gt; &gt; &gt; &gt; &gt; &nbsp;However, PETSc only provide the following:<br>&gt; &gt; &gt; &gt; &gt; 51: PetscErrorCode MatSolve_MPISpooles(Mat A,Vec b,Vec x)<br>&gt; &gt; &gt; &gt; &gt; &nbsp;I don&#39;t set b to a matrix even if I use<br>
&gt; &gt; &gt; &gt; &gt; &nbsp;178: PetscErrorCode MatFactorNumeric_MPISpooles(Mat A,MatFactorInfo<br>&gt; &gt; &gt; &gt; &gt; *info,Mat *F) for LU factorization.<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; Could you have any suggestions about this? thanks a lot.<br>
&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; MatMatSolve()<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt;<br>&gt; <a href="http://www-unix.mcs.anl.gov/petsc/petsc-as/snapshots/petsc-current/docs/manualpages/Mat/MatMatSolve.html" target="_blank">http://www-unix.mcs.anl.gov/petsc/petsc-as/snapshots/petsc-current/docs/manualpages/Mat/MatMatSolve.html</a><br>
&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &nbsp; &nbsp;Matt<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; Regards,<br>&gt; &gt; &gt; &gt; &gt; Yujie<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; On 2/26/08, Sanjay Govindjee &lt;<a href="mailto:sanjay@ce.berkeley.edu">sanjay@ce.berkeley.edu</a>&gt; wrote:<br>
&gt; &gt; &gt; &gt; &gt; &gt; from my make file<br>&gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; -@${MPIRUN} -s all -np $(NPROC) $(PROGNAME) -ksp_type preonly<br>&gt; &gt; &gt; &gt; &gt; &gt; -ksp_monitor -pc_type cholesky -mat_type mpisbaijspooles<br>
&gt; -log_summary<br>&gt; &gt; &gt; &gt; &gt; &gt; -on_error_attach_debugger -mat_spooles_symmetryflag 0<br>&gt; -options_left<br>&gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; -sg<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; Yujie wrote:<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; Hi, everyone<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; I have compiled PETSc with spooles. However, I try to find how<br>
&gt; to<br>&gt; &gt; &gt; use<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; this package in PETSc directory. I can&#39;t find any examples for<br>&gt; it.<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; Could you give me some advice? I want to use spooles to inverse<br>
&gt; a<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; sparse matrix. thanks a lot.<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; Regards,<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; Yujie<br>&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; --<br>&gt; &gt; &gt; &gt; What most experimenters take for granted before they begin their<br>
&gt; &gt; &gt; &gt; experiments is infinitely more interesting than any results to which<br>&gt; &gt; &gt; &gt; their experiments lead.<br>&gt; &gt; &gt; &gt; -- Norbert Wiener<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>&gt; &gt; &gt;<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt; --<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt; What most experimenters take for granted before they begin their<br>&gt; &gt; experiments is infinitely more interesting than any results to which<br>
&gt; &gt; their experiments lead.<br>&gt; &gt; -- Norbert Wiener<br>&gt; &gt;<br>&gt; &gt;<br>&gt;<br>&gt;<br>&gt;<br><br><br><br></div></div>--<br>
<div>
<div></div>
<div class="Wj3C7c">What most experimenters take for granted before they begin their<br>experiments is infinitely more interesting than any results to which<br>their experiments lead.<br>-- Norbert Wiener<br></div></div>
</blockquote></div><br>