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.

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).

Attachment: pgpL51gx3UzRw.pgp
Description: PGP signature

Reply via email to