[petsc-users] Ghost point communication for Red-Black Gauss-Siedel

Jed Brown jedbrown at mcs.anl.gov
Wed Feb 15 17:32:04 CST 2012


On Wed, Feb 15, 2012 at 18:25, Sylvain Barbot <sylbar.vainbot at gmail.com>wrote:

> Hi All,
>
> I'm implementing an elasticity multi-grid solver with Petsc with
> matrix shells. I am using the Red-Black Gauss-Siedel smoother. In the
> middle of the Red-Black passes, I need to update the ghost points
> between processors. To do that effectively, I'd like to update only
> the ghost points between the different processors, instead of the
> whole array. The goal is to do the most possible operations in place
> in local array lx, and having to update global vector x only once. The
> working matrix multiply smoothing operation is shown below. I'm using
> Petsc 3.1. I read about
>
> http://www.mcs.anl.gov/petsc/petsc-3.1/docs/manualpages/Vec/VecGhostUpdateBegin.html
> ,
> but I'm not entirely clear whether this does what I want or not.
>

VecGhost does not work with a DA (pretty obvious since the structured grid
layout doesn't put those points near each other). Writing just the updated
points into the local array will cost as much as updating the whole thing,
so don't worry about it.

Your red-black Gauss-Seidel will have horrible cache performance anyway, so
no need to sweat about the part that isn't the bottleneck.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20120215/e8b7c195/attachment.htm>


More information about the petsc-users mailing list