From 54367bfa98fadd3bc3db9b0cb8095e3fc8d061e7 Mon Sep 17 00:00:00 2001 From: Michael Krasnyk Date: Thu, 29 Jun 2017 16:31:39 +0200 Subject: [PATCH] Reduce memory consumption during partition --- src/partition/partitioner.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/partition/partitioner.cpp b/src/partition/partitioner.cpp index db6c19fa5..ea0ccfb2a 100644 --- a/src/partition/partitioner.cpp +++ b/src/partition/partitioner.cpp @@ -95,7 +95,7 @@ void LogGeojson(const std::string &filename, const std::vector &b } } -int Partitioner::Run(const PartitionConfig &config) +auto getGraphBisection(const PartitionConfig &config) { auto compressed_node_based_graph = LoadCompressedNodeBasedGraph(config.compressed_node_based_graph_path.string()); @@ -122,6 +122,14 @@ int Partitioner::Run(const PartitionConfig &config) config.num_optimizing_cuts, config.small_component_size); + // Return bisection ids, keyed by node based graph nodes + return recursive_bisection.BisectionIDs(); +} + +int Partitioner::Run(const PartitionConfig &config) +{ + const std::vector &node_based_partition_ids = getGraphBisection(config); + // Up until now we worked on the compressed node based graph. // But what we actually need is a partition for the edge based graph to work on. // The following loads a mapping from node based graph to edge based graph. @@ -137,11 +145,6 @@ int Partitioner::Run(const PartitionConfig &config) << edge_based_graph.GetNumberOfEdges() << " edges, " << edge_based_graph.GetNumberOfNodes() << " nodes"; - // TODO: node based graph to edge based graph partition id mapping should be done split off. - - // Partition ids, keyed by node based graph nodes - const auto &node_based_partition_ids = recursive_bisection.BisectionIDs(); - // Partition ids, keyed by edge based graph nodes std::vector edge_based_partition_ids(edge_based_graph.GetNumberOfNodes(), SPECIAL_NODEID);