leave my rows alone

Satish Balay balay at mcs.anl.gov
Wed Aug 16 11:41:28 CDT 2006


On Wed, 16 Aug 2006, Thomas Geenen wrote:

> On Wednesday 16 August 2006 18:21, Matthew Knepley wrote:
> > On 8/16/06, Thomas Geenen <geenen at gmail.com> wrote:
> > > dear petsc users,
> > >
> > > is there a way to prevent Petsc during the assembly phase from
> > > redistributing matrix rows over cpu's ?? i like the way the rows are
> > > assigned to the cpu's during the setvalues phase.
> >
> > Actually,  the layout of a matrix is fully determined after MatSetSizes(),
> > or equivalently MatCreate***(). We do not redistribute at assembly.
> >
> > setValues() will take values for any row, and send it to the correct-
> > process. The

> send it to the correct process sounds a lot like redistributing but
> that's probably a matter of semantics

No its not redistribution.  When you create the matrix - the ownership
of a given row is determined. [it doesn't change]

If row 10 belongs to proc 2 [determined with MatSetSizes()] , but you
invoke MatSetValues(row=10) on proc 5, clearly this value has to be
communicated to proc2. This happens in MatAssembly***().

Satish




More information about the petsc-users mailing list