<div class="gmail_quote">On Thu, May 24, 2012 at 2:16 PM, Mark F. Adams <span dir="ltr"><<a href="mailto:mark.adams@columbia.edu" target="_blank">mark.adams@columbia.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Is Eisenstat really worth it?<br>
<br>
Given a memory centric future and that Jed, even now, is not seeing a win .. maybe with a regular grid and R/B ordering you can skip a whole pass through the data but for AIJ (I assume that is what ex5 uses) lexagraphic ordering is probably a better model and its does not look like a big win to me.<br>
</blockquote><div><br></div><div>Maybe Eisenstat should split the matrix storage similar to the factorization kernels?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<span class="HOEnZb"><font color="#888888"><br>
Mark<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
On May 24, 2012, at 2:48 PM, Barry Smith wrote:<br>
<br>
><br>
> On May 24, 2012, at 1:20 PM, Jed Brown wrote:<br>
><br>
>> On Wed, May 23, 2012 at 2:52 PM, Jed Brown <<a href="mailto:jedbrown@mcs.anl.gov">jedbrown@mcs.anl.gov</a>> wrote:<br>
>> On Wed, May 23, 2012 at 2:26 PM, Barry Smith <<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>> wrote:<br>
>><br>
>> Note that you could use -pc_type eisenstat perhaps in this case instead. Might save lots of flops?  I've often wondered about doing Mark's favorite chebyshev smoother with Eisenstat, seems like it should be a good match.<br>

>><br>
>> [0]PETSC ERROR: --------------------- Error Message ------------------------------------<br>
>> [0]PETSC ERROR: No support for this operation for this object type!<br>
>> [0]PETSC ERROR: Cannot have different mat and pmat!<br>
>><br>
>> Also, I'm having trouble getting Eisenstat to be more than very marginally faster than SOR.<br>
><br>
>    There is still a bug related to Eisenstat. If you are trying to use it with kspest you are likely hitting the bug.<br>
><br>
>    I will fix the bug when I have time.<br>
><br>
>   Barry<br>
><br>
>><br>
>><br>
>> I think we should later be getting the eigenvalue estimate by applying the preconditioned operator to a few random vectors, then orthogonalizing. The basic algorithm is to generate a random matrix X (say 5 or 10 columns), compute<br>

>><br>
>> Y = (P^{-1} A)^q X<br>
>><br>
>> where q is 1 or 2 or 3, then compute<br>
>><br>
>> Q R = Y<br>
>><br>
>> and compute the largest singular value of the small matrix R. The orthogonalization can be done in one reduction and all the MatMults can be done together. Whenever we manage to implement a MatMMult and PCMApply or whatever (names inspired by VecMDot), this will provide a very low communication way to get the eigenvalue estimates.<br>

>><br>
>><br>
>> I want to turn off norms in Chebyshev by default (they are very wasteful), but how should I make -mg_levels_ksp_monitor turn them back on? I'm already tired of typing -mg_levels_ksp_norm_type unpreconditioned.<br>

><br>
><br>
<br>
</div></div></blockquote></div><br>