MCPcopy Create free account
hub / github.com/ERGO-Code/HiGHS / reportFactorTimer

Method reportFactorTimer

highs/simplex/HighsSimplexAnalysis.cpp:1172–1205  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1170}
1171
1172void HighsSimplexAnalysis::reportFactorTimer() {
1173 assert(analyse_factor_time);
1174 FactorTimer factor_timer;
1175 HighsInt max_threads = highs::parallel::num_threads();
1176 for (HighsInt i = 0; i < max_threads; i++) {
1177 // for (HighsTimerClock clock : thread_factor_clocks) {
1178 printf("reportFactorTimer: HFactor clocks for thread %" HIGHSINT_FORMAT
1179 " / %" HIGHSINT_FORMAT "\n",
1180 i, max_threads - 1);
1181 factor_timer.reportFactorClock(thread_factor_clocks[i]);
1182 }
1183 if (max_threads > 1) {
1184 HighsTimer* timer_pointer = thread_factor_clocks[0].timer_pointer_;
1185 HighsTimerClock all_factor_clocks;
1186 all_factor_clocks.timer_pointer_ = timer_pointer;
1187 vector<HighsInt>& clock = all_factor_clocks.clock_;
1188 factor_timer.initialiseFactorClocks(all_factor_clocks);
1189 for (HighsInt i = 0; i < max_threads; i++) {
1190 vector<HighsInt>& thread_clock = thread_factor_clocks[i].clock_;
1191 for (HighsInt clock_id = 0; clock_id < FactorNumClock; clock_id++) {
1192 HighsInt all_factor_iClock = clock[clock_id];
1193 HighsInt thread_factor_iClock = thread_clock[clock_id];
1194 timer_pointer->clock_num_call[all_factor_iClock] +=
1195 timer_pointer->clock_num_call[thread_factor_iClock];
1196 timer_pointer->clock_time[all_factor_iClock] +=
1197 timer_pointer->clock_time[thread_factor_iClock];
1198 }
1199 }
1200 printf("reportFactorTimer: HFactor clocks for all %" HIGHSINT_FORMAT
1201 " threads\n",
1202 max_threads);
1203 factor_timer.reportFactorClock(all_factor_clocks);
1204 }
1205}
1206
1207void HighsSimplexAnalysis::updateInvertFormData(const HFactor& factor) {
1208 assert(analyse_factor_data);

Callers 1

solveMethod · 0.80

Calls 3

num_threadsFunction · 0.85
reportFactorClockMethod · 0.80

Tested by

no test coverage detected