[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