<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, May 4, 2013 at 9:54 AM, Jed Brown <span dir="ltr"><<a href="mailto:jedbrown@mcs.anl.gov" target="_blank">jedbrown@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 class="im">Dharmendar Reddy <<a href="mailto:dharmareddy84@gmail.com">dharmareddy84@gmail.com</a>> writes:<br>

<br>
>>    You are right, The time per solve increases in both case, see the<br>
> attached plot.<br>
><br>
>   I have attached the stage wise log_summary .<br>
<br>
</div>Thanks.<br>
<br>
      ##########################################################<br>
      #                                                        #<br>
      #                          WARNING!!!                    #<br>
      #                                                        #<br>
      #   This code was compiled with a debugging option,      #<br>
      #   To get timing results run ./configure                #<br>
      #   using --with-debugging=no, the performance will      #<br>
      #   be generally two or three times faster.              #<br>
      #                                                        #<br>
      ##########################################################<br>
<br>
<br>
Here are some relevant events:<br>
<br>
<br>
--- Event Stage 1: Solve Step : 1<br>
<br>
IPOrthogonalize       90 1.0 7.7698e-02 1.0 3.04e+06 1.0 0.0e+00 0.0e+00 5.4e+02  0  1  0  0  0  18 67  0  0 32    39<br>
IPInnerProduct       896 1.0 5.1215e-02 1.0 1.60e+06 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0  12 35  0  0  0    31<br>
VecMAXPBY            179 1.0 2.0418e-02 1.0 1.44e+06 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   5 32  0  0  0    71<br>
VecScale              89 1.0 9.6772e-03 1.0 7.92e+03 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   2  0  0  0  0     1<br>
VecReduceArith       448 1.0 3.6906e-02 1.0 1.48e+06 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   9 32  0  0  0    40<br>
<br>
<br>
--- Event Stage 111: Solve Step : 111<br>
<br>
IPOrthogonalize       90 1.0 1.5872e+01 1.0 3.04e+06 1.0 0.0e+00 0.0e+00 5.4e+02  1  1  0  0  0  83 67  0  0 32     0<br>
IPInnerProduct       896 1.0 9.5349e+00 1.0 1.60e+06 1.0 0.0e+00 0.0e+00 0.0e+00  1  0  0  0  0  50 35  0  0  0     0<br>
VecMAXPBY            179 1.0 6.3249e+00 1.0 1.44e+06 1.0 0.0e+00 0.0e+00 0.0e+00  1  0  0  0  0  33 32  0  0  0     0<br>
VecScale              89 1.0 3.1402e+00 1.0 7.92e+03 1.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0  16  0  0  0  0     0<br>
VecReduceArith       448 1.0 9.5169e+00 1.0 1.48e+06 1.0 0.0e+00 0.0e+00 0.0e+00  1  0  0  0  0  49 32  0  0  0     0<br>
<br>
<br>
VecScale is simple and does exactly the same amount of work in both<br>
cases, so I think the problem is in memory management.  It doesn't look<br>
like you are using enough memory to be swapping and I don't think there<br>
are any CHKMEMQ statements in here.  You could try running with '-malloc<br>
0', and/or in optimized mode.<br></blockquote><div> <br></div><div>There is no CHKMEMQ statements. I will try running the optimized modes. Aren't the different eps objects independent ? All the objects are created only once. Every time i call solve, all i do is EPSSetOperators and EPSSolve.  <br>
The code is designed to provide a eigensolver to the user, without worrying about the slepc and petsc objects inside, if i have to resue the eps objects for all solvers then i may have to share the eps between different instances of eigenSolver, i am not sure how easily i can do that. <br>
<br></div><div>I am running the code on dual 8-core Xeon X5 with 32 GB memory. I hardly use 1 to 2 % of memory. What do you mean by memory management problem ?<br></div><div>   <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

It looks like you create one EPS per loop iteration, but don't destroy<br>
any of them until the end.  If you don't need all the EPS at once, you<br>
should either reuse one throughout the loop or destroy the new one each<br>
step after using it.<br>
</blockquote></div><br></div><div class="gmail_extra">          I need to reuse the eps objects, There is an outer loop <br><br></div><div class="gmail_extra">   do jc=1,numSolve<br>     <br></div><div class="gmail_extra">
    computeOperators (A1,B1,A2,B2,A3,B3)<br>   <br></div><div class="gmail_extra">   do ic=1,111<br></div><div class="gmail_extra">     eigenSolver(ic)%solve<br></div><div class="gmail_extra">  end do<br>  <br></div><div class="gmail_extra">
  ComputeOtherQuantities based on eigenvectors<br></div><div class="gmail_extra">end do<br clear="all"></div><div class="gmail_extra"><br>-- <br>-----------------------------------------------------<br>Dharmendar Reddy Palle<br>
Graduate Student<br>Microelectronics Research center,<br>University of Texas at Austin,<br>10100 Burnet Road, Bldg. 160<br>MER 2.608F, TX 78758-4445<br>e-mail: <a href="mailto:dharmareddy84@gmail.com" target="_blank">dharmareddy84@gmail.com</a><br>
Phone: +1-512-350-9082<br>United States of America.<br>Homepage: <a href="https://webspace.utexas.edu/~dpr342" target="_blank">https://webspace.utexas.edu/~dpr342</a><br>
</div></div>