[petsc-dev] Implementing longer pipelines with VecDotBegin and VecDotEnd

Smith, Barry F. bsmith at mcs.anl.gov
Thu Feb 15 10:48:46 CST 2018


  Wim,

 Both approaches are acceptable. For expediency making a pull request with the current code is probably best.

 How dramatic a change is needed in the structure of the VecDotBegin/End constructs? Enough that it is best to start with an entirely new design?

   Thanks

    Barry


> On Feb 15, 2018, at 10:30 AM, Wim Vanroose <wim at vanroo.se> wrote:
> 
> Dear All, 
> 
> We have a working prototype of pipe(l) CG in Petsc, where dot products are taking multiple iterations to complete.  Due to the limitations of VecDotBegin we had to used MPI_WAIT and MPI_Iallreduce. 
> A high level overview of the communication is given in the figure.   The preprint of the paper is https://arxiv.org/abs/1801.04728
> 
> How should we proceed?  Can we contribute this routine to KSP while it uses primitive MPI calls? 
> Or should we interact with petsc-dev to see if we can redesign  VecDotBegin and VecDotEnd 
> to be able to handle these cases? And then rewrite the prototype with these new calls?
> 
> Can we talk about this at SIAM PP18?
> 
> Wim Vanroose 
> 
> 
> 
> 
> 
> 



More information about the petsc-dev mailing list