Commit 165e83fc authored by Peter W. Draper's avatar Peter W. Draper
Browse files

Rename the various repartition options, more obvious and less techie

parent 788f13a2
......@@ -139,28 +139,24 @@ Restarts:
# Parameters governing domain decomposition
DomainDecomposition:
initial_type: memory # (Optional) The initial decomposition strategy: "grid",
# "region", "memory", or "vectorized".
initial_grid: [10,10,10] # (Optional) Grid sizes if the "grid" strategy is chosen.
initial_type: memory # (Optional) The initial decomposition strategy: "grid",
# "region", "memory", or "vectorized".
initial_grid: [10,10,10] # (Optional) Grid sizes if the "grid" strategy is chosen.
repartition_type: costs/costs # (Optional) The re-decomposition strategy, one of:
# "none/none", "costs/costs", "none/costs", "memory" or "costs/time".
# These are vertex/edge weights with "costs" as task timing
# and "time" as the expected time of the next
# updates, "memory" uses the particle memory use
# as vertex weights.
trigger: 0.05 # (Optional) Fractional (<1) CPU time difference between MPI ranks required to trigger a
# new decomposition, or number of steps (>1) between decompositions
minfrac: 0.9 # (Optional) Fractional of all particles that should be updated in previous step when
# using CPU time trigger
usemetis: 0 # Use serial METIS when ParMETIS is also available.
adaptive: 1 # Use adaptive repartition when ParMETIS is available, otherwise simple refinement.
itr: 100 # When adaptive defines the ratio of inter node communication time to data redistribution time, in the range 0.00001 to 10000000.0.
# Lower values give less data movement during redistributions, at the cost of global balance which may require more communication.
use_fixed_costs: 1 # If 1 then use any compiled in fixed costs for
# task weights in first repartition, if 0 only use task timings, if > 1 only use
# fixed costs, unless none are available.
repartition_type: fullcosts # (Optional) The re-decomposition strategy, one of:
# "none", "fullcosts", "edgecosts", "memory" or
# "timecosts".
trigger: 0.05 # (Optional) Fractional (<1) CPU time difference between MPI ranks required to trigger a
# new decomposition, or number of steps (>1) between decompositions
minfrac: 0.9 # (Optional) Fractional of all particles that should be updated in previous step when
# using CPU time trigger
usemetis: 0 # Use serial METIS when ParMETIS is also available.
adaptive: 1 # Use adaptive repartition when ParMETIS is available, otherwise simple refinement.
itr: 100 # When adaptive defines the ratio of inter node communication time to data redistribution time, in the range 0.00001 to 10000000.0.
# Lower values give less data movement during redistributions, at the cost of global balance which may require more communication.
use_fixed_costs: 1 # If 1 then use any compiled in fixed costs for
# task weights in first repartition, if 0 only use task timings, if > 1 only use
# fixed costs, unless none are available.
# Parameters related to the equation of state ------------------------------------------
......
......@@ -1840,10 +1840,10 @@ void partition_init(struct partition *partition,
/* Defaults make use of METIS if available */
#if defined(HAVE_METIS) || defined(HAVE_PARMETIS)
const char *default_repart = "costs/costs";
const char *default_repart = "fullcosts";
const char *default_part = "memory";
#else
const char *default_repart = "none/none";
const char *default_repart = "none";
const char *default_part = "grid";
#endif
......@@ -1896,32 +1896,32 @@ void partition_init(struct partition *partition,
parser_get_opt_param_string(params, "DomainDecomposition:repartition_type",
part_type, default_repart);
if (strcmp("none/none", part_type) == 0) {
if (strcmp("none", part_type) == 0) {
repartition->type = REPART_NONE;
#if defined(HAVE_METIS) || defined(HAVE_PARMETIS)
} else if (strcmp("costs/costs", part_type) == 0) {
} else if (strcmp("fullcosts", part_type) == 0) {
repartition->type = REPART_METIS_VERTEX_EDGE_COSTS;
} else if (strcmp("none/costs", part_type) == 0) {
} else if (strcmp("edgecosts", part_type) == 0) {
repartition->type = REPART_METIS_EDGE_COSTS;
} else if (strcmp("memory", part_type) == 0) {
repartition->type = REPART_METIS_VERTEX_COUNTS;
} else if (strcmp("costs/time", part_type) == 0) {
} else if (strcmp("timecosts", part_type) == 0) {
repartition->type = REPART_METIS_VERTEX_COSTS_TIMEBINS;
} else {
message("Invalid choice of re-partition type '%s'.", part_type);
error(
"Permitted values are: 'none/none', 'costs/costs', 'none/costs' "
"'costs/none' or 'costs/time'");
"Permitted values are: 'none', 'fullcosts', 'edgecosts' "
"'memory' or 'timecosts'");
#else
} else {
message("Invalid choice of re-partition type '%s'.", part_type);
error(
"Permitted values are: 'none/none' when compiled without "
"Permitted values are: 'none' when compiled without "
"METIS or ParMETIS.");
#endif
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment