<div dir="ltr">Thank you very much! I have another question. If I need all the eigenvalues of the sparse matrix, which solver should I use? Thanks!</div><div class="gmail_extra"><br><div class="gmail_quote">2015-08-09 1:52 GMT+08:00 Barry Smith <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
> On Aug 8, 2015, at 7:52 AM, sheng liu <<a href="mailto:ustc.liu@gmail.com">ustc.liu@gmail.com</a>> wrote:<br>
><br>
> Hello:<br>
>     I have a large sparse symmetric matrix ( about 1000000x1000000), and I need about 10 eigenvalues near 0. The problem is: I need to run the same program about 1000 times, each time I need to change the diagonal matrix elements ( and they are generated randomly). Is there a fast way to implement this problem? Thank you!<br>
<br>
</span>  Does each run depend on the previous one or are they all independent?<br>
<br>
  If they are independent I would introduce two levels of parallelism: On the outer level have different MPI communicators compute different random diagonal perturbations and on the inner level use a small amount of parallelism for each eigenvalue solve. The outer level of parallelism is embarrassingly parallel.<br>
<br>
  Of course, for runs of the eigensolve use -log_summary to make sure it is running efficiently and tune the amount of parallelism in the eigensolve for best performance.<br>
<span class="HOEnZb"><font color="#888888"><br>
   Barry<br>
<br>
<br>
</font></span></blockquote></div><br></div>