parameterize cell size
This commit is contained in:
parent
8f9e980945
commit
8ad9a0aa9a
@ -49,7 +49,7 @@ struct PartitionConfig
|
|||||||
|
|
||||||
unsigned requested_num_threads;
|
unsigned requested_num_threads;
|
||||||
|
|
||||||
std::size_t maximum_cell_size;
|
std::size_t minimum_cell_size;
|
||||||
double balance;
|
double balance;
|
||||||
double boundary_factor;
|
double boundary_factor;
|
||||||
std::size_t num_optimizing_cuts;
|
std::size_t num_optimizing_cuts;
|
||||||
|
@ -106,12 +106,12 @@ int Partitioner::Run(const PartitionConfig &config)
|
|||||||
makeBisectionGraph(compressed_node_based_graph.coordinates,
|
makeBisectionGraph(compressed_node_based_graph.coordinates,
|
||||||
adaptToBisectionEdge(std::move(compressed_node_based_graph.edges)));
|
adaptToBisectionEdge(std::move(compressed_node_based_graph.edges)));
|
||||||
|
|
||||||
util::Log() << " running partition: " << config.maximum_cell_size << " " << config.balance
|
util::Log() << " running partition: " << config.minimum_cell_size << " " << config.balance
|
||||||
<< " " << config.boundary_factor << " " << config.num_optimizing_cuts << " "
|
<< " " << config.boundary_factor << " " << config.num_optimizing_cuts << " "
|
||||||
<< config.small_component_size
|
<< config.small_component_size
|
||||||
<< " # max_cell_size balance boundary cuts small_component_size";
|
<< " # max_cell_size balance boundary cuts small_component_size";
|
||||||
RecursiveBisection recursive_bisection(graph,
|
RecursiveBisection recursive_bisection(graph,
|
||||||
config.maximum_cell_size,
|
config.minimum_cell_size,
|
||||||
config.balance,
|
config.balance,
|
||||||
config.boundary_factor,
|
config.boundary_factor,
|
||||||
config.num_optimizing_cuts,
|
config.num_optimizing_cuts,
|
||||||
@ -162,8 +162,12 @@ int Partitioner::Run(const PartitionConfig &config)
|
|||||||
|
|
||||||
std::vector<Partition> partitions;
|
std::vector<Partition> partitions;
|
||||||
std::vector<std::uint32_t> level_to_num_cells;
|
std::vector<std::uint32_t> level_to_num_cells;
|
||||||
std::tie(partitions, level_to_num_cells) = bisectionToPartition(edge_based_partition_ids,
|
std::tie(partitions, level_to_num_cells) =
|
||||||
{128, 128 * 32, 128 * 32 * 16, 128 * 32 * 16 * 32});
|
bisectionToPartition(edge_based_partition_ids,
|
||||||
|
{config.minimum_cell_size,
|
||||||
|
config.minimum_cell_size * 32,
|
||||||
|
config.minimum_cell_size * 32 * 16,
|
||||||
|
config.minimum_cell_size * 32 * 16 * 32});
|
||||||
|
|
||||||
TIMER_START(packed_mlp);
|
TIMER_START(packed_mlp);
|
||||||
MultiLevelPartition mlp{partitions, level_to_num_cells};
|
MultiLevelPartition mlp{partitions, level_to_num_cells};
|
||||||
|
@ -38,9 +38,9 @@ return_code parseArguments(int argc, char *argv[], partition::PartitionConfig &p
|
|||||||
->default_value(tbb::task_scheduler_init::default_num_threads()),
|
->default_value(tbb::task_scheduler_init::default_num_threads()),
|
||||||
"Number of threads to use")
|
"Number of threads to use")
|
||||||
//
|
//
|
||||||
("max-cell-size",
|
("min-cell-size",
|
||||||
boost::program_options::value<std::size_t>(&partition_config.maximum_cell_size)
|
boost::program_options::value<std::size_t>(&partition_config.minimum_cell_size)
|
||||||
->default_value(4096),
|
->default_value(128),
|
||||||
"Bisection termination citerion based on cell size")
|
"Bisection termination citerion based on cell size")
|
||||||
//
|
//
|
||||||
("balance",
|
("balance",
|
||||||
|
Loading…
Reference in New Issue
Block a user