Skip to content

Partitioning

Cameron Smith edited this page Jul 26, 2016 · 11 revisions

ptnParma

The ptnParma tool from SCOREC/core provides a command line tool to partition and load balance a mesh using Zoltan and ParMA.

Running the ptnParma without arguments will output the following usage statement:

Usage: ptnParma <model> <mesh> <outMesh> <factor> <method> <approach> <0:global|1:local>

The factor argument is defined as the finalPartCount/initialPartCount. So, for example, to partition a serial (one part) mesh to eight parts set factor to eight. To partition the eight part mesh to 32 parts set factor to four.

The method argument sets Zoltan's partitioning algorithm. The following options are available:

  • rib for recursive inertial bisection
  • rcb for recursive coordinate bisection
  • hg for hyper-graph
  • pmetis for ParMETIS (see below for options)

The approach argument controls the application of the selected partitioning algorithm. The following options are available (see the Zoltan Manual):

  • ptn partition without consideration of the initial distribution
  • reptn limit the migration costs to build the new partition
  • refine reduces the cut weight
  • kway (pmetis only) multilevel Kernighan-Lin partitioning
  • geomkway (pmetis only) hybrid method based on PartKway and space filling curves"
  • refkway (pmetis only) refine the current partition (balance)

Setting the last argument, <0:global|1:local>, to 0 runs one instance of the selected partitioner that can use information about the entire partition to make 'global' decisions. Setting the argument to 1 runs one instance per-process ('local') that can only use the on-process partition information to make decisions.

When creating a partition with less than 16Ki parts, the recommended settings are pmetis for method and reptn for approach and 1 for <0:global|1:local>. Assuming the input partition is fairly well balanced, then pmetis, reptn, and 0 should be used local ParMETIS graph-based.

After partitioning ParMA Vertex>Element balancing runs to reduce the vertex and element imbalances.

Clone this wiki locally