1. petsc
  2. PETSc
  3. petsc

Branches

mlange/plex-distributed-overlap

View source
mlange/plex-distributed-overlap
Author Commit Message Date Builds
250+ commits behind master.
Michael Lange
DMPlex: Clean up the overlap partitioning routine Use a DMLabel and the new utility routines to derive the ranks for shared-root connections and build the overlap partition.
Michael Lange
DMPlex: Add utility routine to build a partition from a DMLabel Given a label that maps points to process IDs, this routine builds a partition (section/IS pair).
Michael Lange
PetscSF: Add utility routine that creates a root->leaf-ranks mapping PetscSF is an inherently non-symmetric mapping from receiving leaves to remote roots. Certain partitioning operations require two-sided information though, so we create a Section/IS pair that maps each local root to the sets of all receiving ranks via PetscSFComputeDegree and a multi-root PetscSFGather operation.
Michael Lange
Plex: Add performance and debug logging
Michael Lange
Plex: Remap pointSF after building distributed overlap This establishes the full migration pattenm for DMPlexDistribute().
Michael Lange
Plex: Include remote connections when generating the distributed overlap A process might contribute to the overlap of a non-attached partition. This connection can only be made on a remote rank, so we need to communicate all locally made connections involving non-owned points to their remote owner.
Michael Lange
Plex: Fixes for corner cases in overlap partitioning Consider cell connections through vertices for FEM adjacency and via shared points that neither of the two partitions owns.
Michael Lange
DMLabel: Switch to using SF for distributing labels Label distribution is now performed by creating a point-wise array of stratum depths, migrating it over the given SF and re-constructing the label points on the receiver.
Michael Lange
Plex: Create partition overlap from distributed non-overlapping DM This commit adds DMPlexDistributeOverlap, which computes the partition overlap from an already distributed non-overlapping DM and builds the correct parallel DM and it's pointSF. This is significantly faster when FEM adjacency is used with overlap=1.
Michael Lange
Plex: Add routine to generate the migration SF from overlap SF The migration SF re-maps local points and adds remote overlap points from the overlap partition generated by DMPlexCreatePartitionOverlap and DMPlexCreatePartitionSF.
Michael Lange
Plex: Add cell closure to partition overlap and remove remote duplicates Points already covered in the pointSF of the non-overlapping distribution should not be part of the new overlap partition, so we add cell closures in DMPlexCreatePartitionOverlap and remove these points from the partition.
Michael Lange
Plex: Add DMPlexCreatePartitionSF This utility function transforms distributed partitions (section/IS) into an SF describing the according data migration.
Michael Lange
Plex: Add routine to compute distributed partition overlap DMPlexCreatePartitionOverlap computes local points in the remote overlap of neighbouring processes and returns them as a partition (section/IS).
Michael Lange
PetscSF: Fix ComputeDegree and GetMultiSF for sparse SFs
Michael Lange
Plex: Move hybrid setup into its own subroutine
Michael Lange
Plex: Move label and coordinate migration into their own subroutines
Michael Lange
Plex: Move pointSF generation into its own subroutine
Michael Lange
Plex: Move cone migration into its own subroutine