Skip to content

Commit 609836e

Browse files
committed
Add more timers
1 parent 481b2ce commit 609836e

3 files changed

Lines changed: 29 additions & 10 deletions

File tree

mt-kahypar/dynamic/dynamic_io.h

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -276,13 +276,16 @@ inline std::vector<HypernodeID> parseIDs(const std::string& line) {
276276
throw std::runtime_error("Could not open file: " + filename);
277277
}
278278
std::cout << "Saving other timings to file: " << filename << std::endl;
279-
file << "total_time, strategy_time, setup_time, initial_partitioning_time, io_time_change_parsing, io_time_graph_parsing" << std::endl;
279+
file << "total_time, io_time_graph_parsing, setup_time, initialization_time, initial_partitioning_time, io_time_change_parsing, strategy_time, logging_time, finalization_time" << std::endl;
280280
file << std::chrono::duration_cast<std::chrono::milliseconds>(context.dynamic.other_timings.total_time).count() << ", "
281-
<< std::chrono::duration_cast<std::chrono::milliseconds>(context.dynamic.other_timings.strategy_time).count() << ", "
282-
<< std::chrono::duration_cast<std::chrono::milliseconds>(context.dynamic.other_timings.setup_time).count() << ", "
283-
<< std::chrono::duration_cast<std::chrono::milliseconds>(context.dynamic.other_timings.initial_partitioning_time).count() << ", "
284-
<< std::chrono::duration_cast<std::chrono::milliseconds>(context.dynamic.other_timings.io_time_change_parsing).count() << ", "
285-
<< std::chrono::duration_cast<std::chrono::milliseconds>(context.dynamic.other_timings.io_time_graph_parsing).count()
281+
<< std::chrono::duration_cast<std::chrono::milliseconds>(context.dynamic.other_timings.io_time_graph_parsing).count() << ", "
282+
<< std::chrono::duration_cast<std::chrono::milliseconds>(context.dynamic.other_timings.setup_time).count() << ", "
283+
<< std::chrono::duration_cast<std::chrono::milliseconds>(context.dynamic.other_timings.initialization_time).count() << ", "
284+
<< std::chrono::duration_cast<std::chrono::milliseconds>(context.dynamic.other_timings.initial_partitioning_time).count() << ", "
285+
<< std::chrono::duration_cast<std::chrono::milliseconds>(context.dynamic.other_timings.io_time_change_parsing).count() << ", "
286+
<< std::chrono::duration_cast<std::chrono::milliseconds>(context.dynamic.other_timings.strategy_time).count() << ", "
287+
<< std::chrono::duration_cast<std::chrono::milliseconds>(context.dynamic.other_timings.logging_time).count() << ", "
288+
<< std::chrono::duration_cast<std::chrono::milliseconds>(context.dynamic.other_timings.finalization_time).count()
286289
<< std::endl;
287290
file.close();
288291

mt-kahypar/dynamic/dynamic_partitioner.h

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,12 @@ namespace mt_kahypar::dyn {
8484
context.dynamic.local_fm_round = &localFM_round;
8585

8686
context.dynamic.other_timings.setup_time = std::chrono::high_resolution_clock::now() - setup_time_start;
87+
auto finalization_time_start = std::chrono::high_resolution_clock::now();
8788

8889
try {
8990

91+
auto init_time_start = std::chrono::high_resolution_clock::now();
92+
9093
std::cout << "Processing " << num_changes << " changes" << std::endl;
9194

9295
auto& hypergraph_p = strategy->init();
@@ -97,6 +100,9 @@ namespace mt_kahypar::dyn {
97100

98101
auto duration_sum = std::chrono::high_resolution_clock::duration::zero();
99102
auto change_io_duration_sum = std::chrono::high_resolution_clock::duration::zero();
103+
auto log_duration_sum = std::chrono::high_resolution_clock::duration::zero();
104+
105+
context.dynamic.other_timings.initialization_time = std::chrono::high_resolution_clock::now() - init_time_start - context.dynamic.other_timings.initial_partitioning_time;
100106

101107
for (size_t i = 0; i < num_changes; ++i) {
102108
HighResClockTimepoint start_io = std::chrono::high_resolution_clock::now();
@@ -114,11 +120,16 @@ namespace mt_kahypar::dyn {
114120
if (log_step_size != 0 && i % log_step_size != 0 && i != num_changes - 1) {
115121
continue;
116122
}
123+
HighResClockTimepoint start_log = std::chrono::high_resolution_clock::now();
117124
log_km1_live(i+1, num_changes, context, DynamicStrategy::getPartitionedHypergraphCopy(*strategy), duration_sum);
125+
log_duration_sum += std::chrono::high_resolution_clock::now() - start_log;
118126
}
119127

120128
context.dynamic.other_timings.strategy_time = duration_sum;
121129
context.dynamic.other_timings.io_time_change_parsing = change_io_duration_sum;
130+
context.dynamic.other_timings.logging_time = log_duration_sum;
131+
132+
finalization_time_start = std::chrono::high_resolution_clock::now();
122133

123134
strategy->printAdditionalFinalStats();
124135

@@ -135,10 +146,12 @@ namespace mt_kahypar::dyn {
135146
exit(1);
136147
}
137148

138-
context.dynamic.other_timings.total_time = std::chrono::high_resolution_clock::now() - total_time_start;
139-
if (context.dynamic.save_other_timings) {
149+
context.dynamic.other_timings.finalization_time = std::chrono::high_resolution_clock::now() - finalization_time_start;
150+
context.dynamic.other_timings.total_time = std::chrono::high_resolution_clock::now() - total_time_start;
151+
if (context.dynamic.save_other_timings) {
140152
generateOtherTimingsFile(context);
141153
}
154+
142155
return 0;
143156
}
144157
}

mt-kahypar/partition/context.h

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -302,11 +302,14 @@ struct LocalFMRound {
302302
struct OtherTimings
303303
{
304304
std::chrono::high_resolution_clock::duration total_time;
305-
std::chrono::high_resolution_clock::duration strategy_time;
305+
std::chrono::high_resolution_clock::duration io_time_graph_parsing;
306306
std::chrono::high_resolution_clock::duration setup_time;
307+
std::chrono::high_resolution_clock::duration initialization_time;
307308
std::chrono::high_resolution_clock::duration initial_partitioning_time;
308309
std::chrono::high_resolution_clock::duration io_time_change_parsing;
309-
std::chrono::high_resolution_clock::duration io_time_graph_parsing;
310+
std::chrono::high_resolution_clock::duration strategy_time;
311+
std::chrono::high_resolution_clock::duration logging_time;
312+
std::chrono::high_resolution_clock::duration finalization_time;
310313
};
311314

312315
struct DynamicParameters {

0 commit comments

Comments
 (0)