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