[petsc-users] MatMult inside a for loop
    Ronal Celaya 
    ronalcelayavzla at gmail.com
       
    Mon Feb  9 03:21:43 CST 2015
    
    
  
On Sun, Feb 8, 2015 at 9:09 PM, Jed Brown <jed at jedbrown.org> wrote:
> Matthew Knepley <knepley at gmail.com> writes:
>
> > On Sun, Feb 8, 2015 at 7:20 PM, Ronal Celaya <ronalcelayavzla at gmail.com>
> > wrote:
> >
> >> I know that. I want to have all the vector x replicated in all processes
> >> and update it in each iteration, so I don't need to communicate the
> vector
> >> x each time MatMult() is called.
> >> I'm not sure I'm making myself clear, sorry
> >>
> >
> > 1) This is not a scalable strategy.
>
> Also note that you have to communicate many layers of overlap of A to
> run CG without neighbor communication.  The overhead is especially large
> if you have small subdomains (the case where communication latency is
> more important than bandwidth).
>
 I need to explain this to my partners. Thank you
>
> > 2) If you know A and all the updates to x locally, why don't you just
> > compute y directly?
>
  This is exactly what I'm doing in C implementation
Many thanks for your replies. They are very useful.
I am doing some tests with CG, comparing C and PETSc implementations and I
need to explain the communication used in MatMult().
Once again, thanks for your help.
Best regards,
-- 
Ronal Celaya
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20150209/41b2cf3a/attachment.html>
    
    
More information about the petsc-users
mailing list