parameterize cell size

This commit is contained in:
Patrick Niklaus 2017-03-05 21:30:54 +00:00 committed by Patrick Niklaus
parent 8f9e980945
commit 8ad9a0aa9a
3 changed files with 12 additions and 8 deletions

View File

@ -49,7 +49,7 @@ struct PartitionConfig
unsigned requested_num_threads;
std::size_t maximum_cell_size;
std::size_t minimum_cell_size;
double balance;
double boundary_factor;
std::size_t num_optimizing_cuts;

View File

@ -106,12 +106,12 @@ int Partitioner::Run(const PartitionConfig &config)
makeBisectionGraph(compressed_node_based_graph.coordinates,
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.small_component_size
<< " # max_cell_size balance boundary cuts small_component_size";
RecursiveBisection recursive_bisection(graph,
config.maximum_cell_size,
config.minimum_cell_size,
config.balance,
config.boundary_factor,
config.num_optimizing_cuts,
@ -162,8 +162,12 @@ int Partitioner::Run(const PartitionConfig &config)
std::vector<Partition> partitions;
std::vector<std::uint32_t> level_to_num_cells;
std::tie(partitions, level_to_num_cells) = bisectionToPartition(edge_based_partition_ids,
{128, 128 * 32, 128 * 32 * 16, 128 * 32 * 16 * 32});
std::tie(partitions, level_to_num_cells) =
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);
MultiLevelPartition mlp{partitions, level_to_num_cells};

View File

@ -38,9 +38,9 @@ return_code parseArguments(int argc, char *argv[], partition::PartitionConfig &p
->default_value(tbb::task_scheduler_init::default_num_threads()),
"Number of threads to use")
//
("max-cell-size",
boost::program_options::value<std::size_t>(&partition_config.maximum_cell_size)
->default_value(4096),
("min-cell-size",
boost::program_options::value<std::size_t>(&partition_config.minimum_cell_size)
->default_value(128),
"Bisection termination citerion based on cell size")
//
("balance",