[petsc-users] Possibilities to run further computations based on intermediate results of VecScatter

Hannes Phil Niklas Brandt s6hsbran at uni-bonn.de
Tue Oct 26 07:41:41 CDT 2021


Hello,

I
am interested in the non-blocking, collective communication of
Petsc-Vecs.
Right
now I am using VecScatterBegin and
VecScatterEnd to scatter different entries of a parallel distributed
MPI-Vec to local sequential vectors on each process.
After the call to VecScatterEnd I perform
separate
computations on each block of the
sequential Vec
corresponding to a process.
However,
I would prefer to use each block of the local sequential Vec for
those further
computations as soon as I receive it from the
corresponding process (so I do not want to
wait for the whole scattering
to finish). Are there functionalities in Petsc capable
of this?

I
am trying to compute the matrix-vector-product for a parallel
distributed MPI-Vec and a parallel distributed sparse matrix format I
implemented myself. Each process needs entries from the whole MPI-Vec
for the product, but does not have enough storage capacities to store
those entries all at once, not even in a sparse format. Therefore, I need to
process the entries in small blocks and add the results onto a local
result vector.

Best
Regards
Hannes
p { margin-bottom: 0.25cm; line-height: 115%; background: transparent }


More information about the petsc-users mailing list