On May 24, 2012, at 4:10 PM, Barry Smith wrote:

> 
> On May 24, 2012, at 2:37 PM, Mark F. Adams wrote:
> 
>> 
>> On May 24, 2012, at 3:30 PM, Jed Brown wrote:
>> 
>>> On Thu, May 24, 2012 at 2:16 PM, Mark F. Adams <mark.adams at columbia.edu> 
>>> wrote:
>>> Is Eisenstat really worth it?
>>> 
>>> 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.
>>> 
>>> Maybe Eisenstat should split the matrix storage similar to the 
>>> factorization kernels?
> 
>   Absolutely.
>> 
>> Is it worth adding and maintaining a new kernel for Eisenstat ...
> 
>   Absolutely. And if it turns out to be too much of a pain to write and 
> maintain such a kernel there is something wrong with our programming model 
> and code development system. The right system should make all the complexity 
> fall away; when the complexity becomes too much of a bear you know you have 
> the wrong system.

OK, in that case then I really have to add my parallel Gauss-Siedel to PETSc.  
You write the kernels (not hard, just take an IS of rows to process and a flag 
to process them in reverse order or not) for AIJ and the BAIJs and I'll convert 
my code to C.

Mark 

> 
>   Barry
> 
>> 
>>> 
>>> 
>>> Mark
>>> 
>>> On May 24, 2012, at 2:48 PM, Barry Smith wrote:
>>> 
>>>> 
>>>> On May 24, 2012, at 1:20 PM, Jed Brown wrote:
>>>> 
>>>>> On Wed, May 23, 2012 at 2:52 PM, Jed Brown <jedbrown at mcs.anl.gov> 
>>>>> wrote:
>>>>> On Wed, May 23, 2012 at 2:26 PM, Barry Smith <bsmith at mcs.anl.gov> 
>>>>> wrote:
>>>>> 
>>>>> 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.
>>>>> 
>>>>> [0]PETSC ERROR: --------------------- Error Message 
>>>>> ------------------------------------
>>>>> [0]PETSC ERROR: No support for this operation for this object type!
>>>>> [0]PETSC ERROR: Cannot have different mat and pmat!
>>>>> 
>>>>> Also, I'm having trouble getting Eisenstat to be more than very 
>>>>> marginally faster than SOR.
>>>> 
>>>>   There is still a bug related to Eisenstat. If you are trying to use it 
>>>> with kspest you are likely hitting the bug.
>>>> 
>>>>   I will fix the bug when I have time.
>>>> 
>>>>  Barry
>>>> 
>>>>> 
>>>>> 
>>>>> 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
>>>>> 
>>>>> Y = (P^{-1} A)^q X
>>>>> 
>>>>> where q is 1 or 2 or 3, then compute
>>>>> 
>>>>> Q R = Y
>>>>> 
>>>>> 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.
>>>>> 
>>>>> 
>>>>> 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.
>>>> 
>>>> 
>>> 
>>> 
>> 
> 
> 


Reply via email to