On Sun, Sep 6, 2009 at 8:39 PM, xiaoyin ji <span dir="ltr">&lt;<a href="mailto:sapphire.jxy@gmail.com">sapphire.jxy@gmail.com</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi,<br>
<br>
I cannot include running options like -ksp_monitor in my program as<br>
it&#39;s not a simple petsc code. However, after testing the ksp examples<br>
I&#39;ve found similar problem.<br>
<br>
Here is the code I&#39;m testing src/ksp/ksp/examples/tutorials/ex2.c<br>
<br>
What I&#39;ve done is add a loop of 10000 steps between MatCreate and<br>
MatDestory (right before PetscFinalize), and print the time for each<br>
loop. The time will increase exponentially just like my program.<br>
Moreover, if I narrow the loop so that only ksp create and destory are<br>
included, solving time does not change. -ksp_monitor option shows that<br>
ksp loop is running fine, however I cannot use this option with the<br>
time test as print out will change the loop time significantly.<br>
<br>
It seems to me that either MatDestory or VecDestory does not clear<br>
everything well in C++ codes( in Fortran codes they work well).<br>
Besides, instead of directly call petsc functions, I&#39;ve also created a<br>
class which contains petsc mat and ksp utilities, and create/destroy<br>
the object of this class for each loop. However problem still exists.<br></blockquote><div><br>1) I cannot reproduce this bug. However, the description is not that clear.<br><br>2) The Fortran and C++ interfaces are just wrappers. They do not handle<br>
     memory allocation or calculation.<br><br>3) This must be something specific to your computer.<br><br>  Matt<br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

Best,<br>
Xiaoyin Ji<br>
<br>
On Thu, Sep 3, 2009 at 8:34 AM, xiaoyin ji&lt;<a href="mailto:sapphire.jxy@gmail.com">sapphire.jxy@gmail.com</a>&gt; wrote:<br>
&gt; Hi,<br>
&gt;<br>
&gt; Here are the print outs<br>
&gt;<br>
&gt; for the very beginning, average time is about 0.8sec for the ksp solver<br>
&gt; KSP Object:<br>
&gt;  type: bicg<br>
&gt;  maximum iterations=10000, initial guess is zero<br>
&gt;  tolerances:  relative=1e-07, absolute=1e-50, divergence=10000<br>
&gt;  left preconditioning<br>
&gt; PC Object:<br>
&gt;  type: bjacobi<br>
&gt;    block Jacobi: number of blocks = 16<br>
&gt;    Local solve is same for all blocks, in the following KSP and PC objects:<br>
&gt;  KSP Object:(sub_)<br>
&gt;    type: preonly<br>
&gt;    maximum iterations=10000, initial guess is zero<br>
&gt;    tolerances:  relative=1e-05, absolute=1e-50, divergence=10000<br>
&gt;    left preconditioning<br>
&gt;  PC Object:(sub_)<br>
&gt;    type: ilu<br>
&gt;      ILU: 0 levels of fill<br>
&gt;      ILU: factor fill ratio allocated 1<br>
&gt;      ILU: tolerance for zero pivot 1e-12<br>
&gt;      ILU: using diagonal shift to prevent zero pivot<br>
&gt;      ILU: using diagonal shift on blocks to prevent zero pivot<br>
&gt;           out-of-place factorization<br>
&gt;           matrix ordering: natural<br>
&gt;      ILU: factor fill ratio needed 1<br>
&gt;           Factored matrix follows<br>
&gt;          Matrix Object:<br>
&gt;            type=seqaij, rows=5672, cols=5672<br>
&gt;            package used to perform factorization: petsc<br>
&gt;            total: nonzeros=39090, allocated nonzeros=39704<br>
&gt;              not using I-node routines<br>
&gt;    linear system matrix = precond matrix:<br>
&gt;    Matrix Object:<br>
&gt;      type=seqaij, rows=5672, cols=5672<br>
&gt;      total: nonzeros=39090, allocated nonzeros=39704<br>
&gt;        not using I-node routines<br>
&gt;  linear system matrix = precond matrix:<br>
&gt;  Matrix Object:<br>
&gt;    type=mpiaij, rows=90746, cols=90746<br>
&gt;    total: nonzeros=636378, allocated nonzeros=1279114<br>
&gt;      not using I-node (on process 0) routines<br>
&gt; Norm of error 48.144, Iterations 137<br>
&gt;<br>
&gt; After 4000 steps, solver takes 7.5sec<br>
&gt;<br>
&gt; KSP Object:<br>
&gt;  type: bicg<br>
&gt;  maximum iterations=10000, initial guess is zero<br>
&gt;  tolerances:  relative=1e-07, absolute=1e-50, divergence=10000<br>
&gt;  left preconditioning<br>
&gt; PC Object:<br>
&gt;  type: bjacobi<br>
&gt;    block Jacobi: number of blocks = 16<br>
&gt;    Local solve is same for all blocks, in the following KSP and PC objects:<br>
&gt;  KSP Object:(sub_)<br>
&gt;    type: preonly<br>
&gt;    maximum iterations=10000, initial guess is zero<br>
&gt;    tolerances:  relative=1e-05, absolute=1e-50, divergence=10000<br>
&gt;    left preconditioning<br>
&gt;  PC Object:(sub_)<br>
&gt;    type: ilu<br>
&gt;      ILU: 0 levels of fill<br>
&gt;      ILU: factor fill ratio allocated 1<br>
&gt;      ILU: tolerance for zero pivot 1e-12<br>
&gt;      ILU: using diagonal shift to prevent zero pivot<br>
&gt;      ILU: using diagonal shift on blocks to prevent zero pivot<br>
&gt;           out-of-place factorization<br>
&gt;           matrix ordering: natural<br>
&gt;      ILU: factor fill ratio needed 1<br>
&gt;           Factored matrix follows<br>
&gt;          Matrix Object:<br>
&gt;            type=seqaij, rows=5672, cols=5672<br>
&gt;            package used to perform factorization: petsc<br>
&gt;            total: nonzeros=39090, allocated nonzeros=39704<br>
&gt;              not using I-node routines<br>
&gt;    linear system matrix = precond matrix:<br>
&gt;    Matrix Object:<br>
&gt;      type=seqaij, rows=5672, cols=5672<br>
&gt;      total: nonzeros=39090, allocated nonzeros=39704<br>
&gt;        not using I-node routines<br>
&gt;  linear system matrix = precond matrix:<br>
&gt;  Matrix Object:<br>
&gt;    type=mpiaij, rows=90746, cols=90746<br>
&gt;    total: nonzeros=636378, allocated nonzeros=1279114<br>
&gt;      not using I-node (on process 0) routines<br>
&gt; Norm of error 48.7467, Iterations 132<br>
&gt;<br>
&gt;<br>
&gt; The iterations are similar, solving time is actually increasing<br>
&gt; exponentially, and the matrix should not be too complicated here as<br>
&gt; the PETSc in Fortran solved this in 1sec.<br>
&gt;<br>
&gt; By the way, will there be a way to set a PETSc vector directly into a<br>
&gt; preconditioner for the ksp solver?<br>
&gt;<br>
&gt; Thanks!<br>
&gt;<br>
&gt; Best,<br>
&gt; Xiaoyin Ji<br>
&gt;<br>
&gt; Department of Materials Science and Engineering<br>
&gt; North Carolina State University<br>
&gt;<br>
</blockquote></div><br><br clear="all"><br>-- <br>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener<br>