On Sun, Feb 8, 2015 at 9:09 PM, Jed Brown <[email protected]> wrote: > Matthew Knepley <[email protected]> writes: > > > On Sun, Feb 8, 2015 at 7:20 PM, Ronal Celaya <[email protected]> > > 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
