On Tue, Sep 10, 2013 at 8:55 PM, Jed Brown <[email protected]> wrote:

> Matthew Knepley <[email protected]> writes:
> >> PetscSF cannot currently scatter individual bytes (4 bytes minimum), and
> >> even if it could, it's a horribly inefficient representation (4 or 8
> >> bytes of metadata for each byte of payload).  The quick fix at that
> >> moment was to send in units of size PetscInt (the struct was always
> >> going to be divisible by that size).
> >>
> >
> > The way I understand it, he never had a single MPI_BYTE, but always a
> bunch.
> > Shouldn't that packing handle that case?
>
> In DMPlexDistributeData, your fieldSF is blown up so that every unit has
> its own metadata (rank, offset).  That's a terrible mechanism for moving
> structs with hundreds of bytes.
>

Hmm, okay we can probably handle some of the packing there. I will think
about
it.

   Matt


> I would rather not make PetscSF deal with fully-heterogeneous data
> (where each node can have a different size) because it makes indexing a
> nightmare (you need a PetscSection or similar just to get in the door; I
> don't want PetscSF to depend on PetscSection).
>



-- 
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which their
experiments lead.
-- Norbert Wiener

Reply via email to