Which way to decompose domain/grid

Jed Brown jed at 59A2.org
Thu Dec 10 07:10:55 CST 2009


On Thu, 10 Dec 2009 12:55:13 +0100, Stephen Wornom <stephen.wornom at sophia.inria.fr> wrote:
> I wrote a Cartesian mesh partitioner that partitions in slices as it 
> involves the minimum communication time.

Many people have the perception that the goal of partitioning is to
minimize the number of neighbor processes.  This actually has little
impact on communication costs and is usually detrimental to solver
performance.  A partitioner should produce "equal-aspect" (after
suitable nondimensionalization) subdomains, which is similar to keeping
the number of ghost nodes low (actually what graph partitioners do).
Put a different way, define the distance between two subdomains A and B
as the minimum number of subdomains that have to be visited on a path
from A to B.  Then iteration count depends on the longest distance
between any two subdomains in your model.  Neither of these statements
are precise, but they should give a sense for why partitioning into thin
slices is probably not desirable.

> For general meshes I partition with METIS. Question: I would like to use 
> the PETSC partitioner if use one has the option to partition on in the 
> x-y coordinates. Is that possible?

I'm not sure exactly what you're looking for, PETSc partitioners use
topology and weights, I don't believe any of them currently use
coordinates.  But if you have a coordinate-aware partitioning algorithm,
you can register it and use it with -mat_partitioning_type
your_algorithm.  Additionally, e.g. the ParMETIS interface could be
extended to optionally use ParMETIS_V3_PartGeomKway when vertex
coordinates are available (it currently only uses ParMETIS_V3_PartKway).

Jed


More information about the petsc-users mailing list