Skip to content

Commit ec9a876

Browse files
committed
temporal change with many lines of code commented to test edge-cut values
1 parent 0277bf7 commit ec9a876

3 files changed

Lines changed: 27 additions & 24 deletions

File tree

algorithms/partitioner/main.cpp

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ tuple<unique_ptr<SBG::LIB::WeightedSBGraph>, PartitionMap, double, double> parti
201201
best_initial_partition(sb_graph, *params.number_of_partitions, params.initial_partition_strategy, params.enable_multithreading);
202202
cout << "chosen partition " << partitions << endl;
203203

204-
kl_sbg_imbalance_partitioner(sb_graph, partitions, params.epsilon, params.enable_multithreading);
204+
// kl_sbg_imbalance_partitioner(sb_graph, partitions, params.epsilon, params.enable_multithreading);
205205
auto end_partitionate = chrono::high_resolution_clock::now();
206206
auto time_to_partitionate = chrono::duration<double, std::milli>(end_partitionate - start_partitionate).count();
207207

@@ -436,36 +436,42 @@ int main(int argc, char** argv)
436436
if (params.compute_metrics) {
437437
map<string, metrics::communication_metrics> metrics;
438438

439-
int edge_cut = metrics::edge_cut(partitions, *sb_graph);
439+
// int edge_cut = metrics::edge_cut(partitions, *sb_graph);
440440

441-
auto [comm_volume, max_comm_volume] = metrics::communication_volume(partitions, *sb_graph);
441+
// auto [comm_volume, max_comm_volume] = metrics::communication_volume(partitions, *sb_graph);
442442

443-
auto max_imb = metrics::maximum_imbalance(partitions, *sb_graph);
443+
// auto max_imb = metrics::maximum_imbalance(partitions, *sb_graph);
444444

445-
metrics::communication_metrics comm_metrics = metrics::communication_metrics{edge_cut, comm_volume, max_comm_volume, max_imb};
446-
metrics["sbg-partitioner"] = comm_metrics;
447-
448-
for (const auto& [f, m] : metrics) {
449-
cout << f << ": " << m << endl;
450-
}
445+
// metrics::communication_metrics comm_metrics = metrics::communication_metrics{edge_cut, comm_volume, max_comm_volume, max_imb};
446+
// metrics["sbg-partitioner"] = comm_metrics;
451447

452448
if (params.compute_metrics and params.directory) {
453449
std::vector<std::string> dir_files;
454450
read_directory(*params.directory, dir_files);
455451

456452
for (const auto& f : dir_files) {
457-
auto partition_from_file = metrics::read_partition_from_file(f, *sb_graph);
453+
if(f.substr(f.find_last_of(".") + 1) == "csv") {
454+
cout << "Ignoring " << f << endl;
455+
continue;
456+
}
457+
cout << f << endl;
458+
459+
auto partition_from_file = metrics::read_partition_from_file(f, *sb_graph, *params.number_of_partitions);
458460

459461
int edge_cut = metrics::edge_cut(partition_from_file, *sb_graph);
460462

461-
auto [comm_volume, max_comm_volume] = metrics::communication_volume(partition_from_file, *sb_graph);
463+
// auto [comm_volume, max_comm_volume] = metrics::communication_volume(partition_from_file, *sb_graph);
462464

463-
auto max_imb = metrics::maximum_imbalance(partition_from_file, *sb_graph);
465+
// auto max_imb = metrics::maximum_imbalance(partition_from_file, *sb_graph);
464466

465-
metrics::communication_metrics comm_metrics = metrics::communication_metrics{edge_cut, comm_volume, max_comm_volume, max_imb};
467+
metrics::communication_metrics comm_metrics = metrics::communication_metrics{edge_cut, 0, 0, 0};
466468
metrics[std::filesystem::path(f).filename().string()] = comm_metrics;
467469
}
468470
}
471+
472+
for (const auto& [f, m] : metrics) {
473+
cout << f << ": " << m << endl;
474+
}
469475
}
470476

471477
// print profiler results if they are enabled

algorithms/partitioner/partition_metrics_api.cpp

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -128,16 +128,19 @@ void write_node_by_partition(const PartitionMap& partitions, const WeightedSBGra
128128

129129
int edge_cut(const PartitionMap& partitions, const WeightedSBGraph& sb_graph)
130130
{
131+
cout << "computing edge cut " << endl;
131132
Set ec = SET_FACT.createSet();
132133
const auto& maps_1 = sb_graph.map1();
133134
const auto& maps_2 = sb_graph.map2();
134135
for (size_t i = 0; i < partitions.size(); i++) {
136+
cout << "partition " << i << endl;
135137
Set partition = from_vector(partitions.at(i));
136138
ec = ec.cup(get_edge_cut(partition, maps_1, maps_2));
137139
ec = ec.cup(get_edge_cut(partition, maps_2, maps_1));
138140
}
139141

140142
int weight = get_edge_set_cost(ec, sb_graph.get_edge_costs());
143+
cout << "ec is " << weight << endl;
141144

142145
return weight;
143146
}
@@ -181,28 +184,22 @@ float maximum_imbalance(const PartitionMap& partitions, const WeightedSBGraph& s
181184
}
182185

183186

184-
PartitionMap read_partition_from_file(const string& name, const WeightedSBGraph& sb_graph)
187+
PartitionMap read_partition_from_file(const string& name, const WeightedSBGraph& sb_graph, int number_of_partitions)
185188
{
186189

187190
ifstream file(name);
188191
string line; // String to store each line of the file.
189192

190-
PartitionMap partitions;
193+
PartitionMap partitions(number_of_partitions, Partition());
191194
if (file.is_open()) {
192195
// Read each line from the file and store it in the
193196
// 'line' variable.
194197
int node_counter = 0;
195198
while (getline(file, line)) {
196-
partitions.push_back({Interval(node_counter, 1, node_counter)});
199+
partitions[stoi(line)].push_back({Interval(node_counter, 1, node_counter)});
197200
node_counter++;
198201
}
199202

200-
for (auto& s: partitions) {
201-
auto s_set = from_vector(s);
202-
flatten_set(s_set, sb_graph);
203-
s = to_vector(s_set);
204-
}
205-
206203
// Close the file stream once all lines have been
207204
// read.
208205
file.close();

algorithms/partitioner/partition_metrics_api.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ std::pair<int, int> communication_volume(
4141

4242
float maximum_imbalance(const PartitionMap& partitions, const SBG::LIB::WeightedSBGraph& sb_graph);
4343

44-
PartitionMap read_partition_from_file(const std::string& name, const SBG::LIB::WeightedSBGraph& sb_graph);
44+
PartitionMap read_partition_from_file(const std::string& name, const SBG::LIB::WeightedSBGraph& sb_graph, int number_of_partitions);
4545

4646
std::ostream& operator<<(std::ostream& os, const communication_metrics& comm_metrics);
4747
}

0 commit comments

Comments
 (0)