mesh-part(1) | General Commands Manual | mesh-part(1) |
mesh-part - Partition a mesh
part-bench - Benchmark an algorithm
mesh-part [options...] [output.part]
part-bench [options...]
mesh-part applies partitioning algorithms onto a given mesh in order, and outputs the resulting partition.
If output.part is omitted or is -, it is written to standard output.
part-bench benchmarks the speed of the given algorithms and prints the results.
Only some specific mesh formats are supported. See apply-part(1)'s INPUT FORMAT for details.
See ALGORITHMS for a list of supported algorithms.
See PARTITION FILE for a description of the output format of mesh-part.
-h, --help
--version
-a, --algorithm <spec>
-E, --edge-weights <variant>
-m, --mesh <path>
-w, --weights <path>
Options specific to mesh-part:
-t, --trace <path>
Options specific to part-bench:
-e, --efficiency [threads]
By default, part-bench starts at 1 thread, then doubles the thread count until it exceeds the number of available hardware threads.
You can specify arbitrary thread counts in the following manner:
threads = range *( , range ) range = VALUE / ( FROM : TO ) / ( FROM : TO : STEP )
For example, the following invocation will run the algorithms for 1 thread, then 2, 6, 10, ... to 64, then 72, 80, 88, ... to 256.
Ranges are exclusive.
-b, --baseline <name>
-s, --save-baseline <name>
Users can use environment variables to alter the execution of these programs:
The option -a, --algorithm defines an algorithm used to partition the input mesh. It can be specified multiple times to chain algorithms.
If a partition improving algorithm is in the begining of the chain, it will be fed a default partition where all weights are in the same part.
For example,
Miscellaneous partitioning algorithms:
Number partitioning algorithms:
These algorithms create partitions by only taking weights into account.
kk,PART_COUNT
ckk,TOLERANCE
Number partition improving algorithms:
These algorithms improve partitions by only taking weights into account.
vn-first
Geometric partitioning algorithms:
These algorithms create partitions using cell coordinates.
hilbert,PART_COUNT,[ORDER=12]
Geometric partition improving algorithms:
These algorithms improve partitions using cell coordinates.
Graph partition improving algorithms:
These algorithms improve partitions using the topology of the mesh.
arcswap,[MAX_IMBALANCE]
kl,[MAX_BAD_MOVES_IN_A_ROW=1]
METIS partitioning algorithms:
These algorithms require mesh-part to be built with METIS support.
metis:kway,PART_COUNT
SCOTCH partitioning algorithms:
These algorithms require mesh-part to be built with SCOTCH support.
A partition file is a binary file that consists of a header followed by a list of part IDs. Below is the ABNF representation of the file:
file = magic id-count ids magic = %x4d %x65 %x50 %x65 ; "MePe" id-count = U64 ; Number of weights ids = *U64 ; id-count weights
where U64 is a little-endian 8-byte unsigned integer.
This executable is part of coupe, which is maintained by Hubert Hirtz <hubert@hirtz.pm> under the direction of Franck Ledoux <franck.ledoux@cea.fr> and the supervision of Cédric Chevalier <cedric.chevalier@cea.fr> and Sébastien Morais <sebastien.morais@cea.fr>.
For more information on coupe development, see <https://github.com/LIHPC-Computational-Geometry/coupe>.
2024-02-06 |