Loading src/core/module/ModuleManager.cpp +8 −7 Original line number Diff line number Diff line Loading @@ -343,7 +343,7 @@ std::pair<ModuleIdentifier, Module*> ModuleManager::create_unique_modules(void* set_module_after(old_settings); // Update execution time auto end = std::chrono::steady_clock::now(); module_execution_time_[module] += std::chrono::duration_cast<std::chrono::microseconds>(end - start); module_execution_time_[module] += std::chrono::duration_cast<std::chrono::microseconds>(end - start).count(); // Set the module directory afterwards to catch invalid access in constructor module->get_configuration().set<std::string>("_output_dir", output_dir); Loading Loading @@ -456,7 +456,7 @@ std::vector<std::pair<ModuleIdentifier, Module*>> ModuleManager::create_detector set_module_after(old_settings); // Update execution time auto end = std::chrono::steady_clock::now(); module_execution_time_[module] += std::chrono::duration_cast<std::chrono::microseconds>(end - start); module_execution_time_[module] += std::chrono::duration_cast<std::chrono::microseconds>(end - start).count(); // Set the module directory afterwards to catch invalid access in constructor module->get_configuration().set<std::string>("_output_dir", output_dir); Loading Loading @@ -624,7 +624,7 @@ void ModuleManager::initialize() { set_module_after(old_settings); // Update execution time auto end = std::chrono::steady_clock::now(); module_execution_time_[module.get()] += std::chrono::duration_cast<std::chrono::microseconds>(end - start); module_execution_time_[module.get()] += std::chrono::duration_cast<std::chrono::microseconds>(end - start).count(); } LOG_PROGRESS(STATUS, "INIT_LOOP") << "Initialized " << modules_.size() << " module instantiations"; auto end_time = std::chrono::steady_clock::now(); Loading Loading @@ -818,7 +818,7 @@ void ModuleManager::run(RandomNumberGenerator& seeder) { auto end = std::chrono::steady_clock::now(); auto duration = std::chrono::duration_cast<std::chrono::microseconds>(end - start); // Note: we do not need to lock a mutex because the std::map is not altered and its values are atomic. this->module_execution_time_[module.get()] += duration; this->module_execution_time_[module.get()] += duration.count(); if(plot) { std::lock_guard<std::mutex> stat_lock{event->stats_mutex_}; Loading Loading @@ -934,7 +934,7 @@ void ModuleManager::finalize() { set_module_after(old_settings); // Update execution time auto end = std::chrono::steady_clock::now(); module_execution_time_[module.get()] += std::chrono::duration_cast<std::chrono::microseconds>(end - start); module_execution_time_[module.get()] += std::chrono::duration_cast<std::chrono::microseconds>(end - start).count(); } // Store performance plots Loading Loading @@ -1006,7 +1006,7 @@ void ModuleManager::finalize() { long double slowest_time = 0, total_module_time = 0; std::string slowest_module; for(auto& module_exec_time : module_execution_time_) { auto module_time = std::chrono::duration<double>(module_exec_time.second).count(); auto module_time = std::chrono::duration<double>(std::chrono::microseconds(module_exec_time.second)).count(); total_module_time += module_time; if(module_time > slowest_time) { slowest_time = module_time; Loading @@ -1018,7 +1018,8 @@ void ModuleManager::finalize() { << "% of time in slowest instantiation " << slowest_module; for(auto& module : modules_) { LOG(INFO) << " Module " << module->getUniqueName() << " took " << std::chrono::duration<double>(module_execution_time_[module.get()]).count() << " seconds"; << std::chrono::duration<double>(std::chrono::microseconds(module_execution_time_[module.get()])).count() << " seconds"; } long double processing_time = 0; Loading src/core/module/ModuleManager.hpp +1 −1 Original line number Diff line number Diff line Loading @@ -156,7 +156,7 @@ namespace allpix { std::unique_ptr<TFile> modules_file_; std::map<Module*, std::chrono::microseconds> module_execution_time_; std::map<Module*, std::atomic_int64_t> module_execution_time_; std::map<Module*, Histogram<TH1D>> module_event_time_; Histogram<TH1D> event_time_; Histogram<TH1D> buffer_fill_level_; Loading Loading
src/core/module/ModuleManager.cpp +8 −7 Original line number Diff line number Diff line Loading @@ -343,7 +343,7 @@ std::pair<ModuleIdentifier, Module*> ModuleManager::create_unique_modules(void* set_module_after(old_settings); // Update execution time auto end = std::chrono::steady_clock::now(); module_execution_time_[module] += std::chrono::duration_cast<std::chrono::microseconds>(end - start); module_execution_time_[module] += std::chrono::duration_cast<std::chrono::microseconds>(end - start).count(); // Set the module directory afterwards to catch invalid access in constructor module->get_configuration().set<std::string>("_output_dir", output_dir); Loading Loading @@ -456,7 +456,7 @@ std::vector<std::pair<ModuleIdentifier, Module*>> ModuleManager::create_detector set_module_after(old_settings); // Update execution time auto end = std::chrono::steady_clock::now(); module_execution_time_[module] += std::chrono::duration_cast<std::chrono::microseconds>(end - start); module_execution_time_[module] += std::chrono::duration_cast<std::chrono::microseconds>(end - start).count(); // Set the module directory afterwards to catch invalid access in constructor module->get_configuration().set<std::string>("_output_dir", output_dir); Loading Loading @@ -624,7 +624,7 @@ void ModuleManager::initialize() { set_module_after(old_settings); // Update execution time auto end = std::chrono::steady_clock::now(); module_execution_time_[module.get()] += std::chrono::duration_cast<std::chrono::microseconds>(end - start); module_execution_time_[module.get()] += std::chrono::duration_cast<std::chrono::microseconds>(end - start).count(); } LOG_PROGRESS(STATUS, "INIT_LOOP") << "Initialized " << modules_.size() << " module instantiations"; auto end_time = std::chrono::steady_clock::now(); Loading Loading @@ -818,7 +818,7 @@ void ModuleManager::run(RandomNumberGenerator& seeder) { auto end = std::chrono::steady_clock::now(); auto duration = std::chrono::duration_cast<std::chrono::microseconds>(end - start); // Note: we do not need to lock a mutex because the std::map is not altered and its values are atomic. this->module_execution_time_[module.get()] += duration; this->module_execution_time_[module.get()] += duration.count(); if(plot) { std::lock_guard<std::mutex> stat_lock{event->stats_mutex_}; Loading Loading @@ -934,7 +934,7 @@ void ModuleManager::finalize() { set_module_after(old_settings); // Update execution time auto end = std::chrono::steady_clock::now(); module_execution_time_[module.get()] += std::chrono::duration_cast<std::chrono::microseconds>(end - start); module_execution_time_[module.get()] += std::chrono::duration_cast<std::chrono::microseconds>(end - start).count(); } // Store performance plots Loading Loading @@ -1006,7 +1006,7 @@ void ModuleManager::finalize() { long double slowest_time = 0, total_module_time = 0; std::string slowest_module; for(auto& module_exec_time : module_execution_time_) { auto module_time = std::chrono::duration<double>(module_exec_time.second).count(); auto module_time = std::chrono::duration<double>(std::chrono::microseconds(module_exec_time.second)).count(); total_module_time += module_time; if(module_time > slowest_time) { slowest_time = module_time; Loading @@ -1018,7 +1018,8 @@ void ModuleManager::finalize() { << "% of time in slowest instantiation " << slowest_module; for(auto& module : modules_) { LOG(INFO) << " Module " << module->getUniqueName() << " took " << std::chrono::duration<double>(module_execution_time_[module.get()]).count() << " seconds"; << std::chrono::duration<double>(std::chrono::microseconds(module_execution_time_[module.get()])).count() << " seconds"; } long double processing_time = 0; Loading
src/core/module/ModuleManager.hpp +1 −1 Original line number Diff line number Diff line Loading @@ -156,7 +156,7 @@ namespace allpix { std::unique_ptr<TFile> modules_file_; std::map<Module*, std::chrono::microseconds> module_execution_time_; std::map<Module*, std::atomic_int64_t> module_execution_time_; std::map<Module*, Histogram<TH1D>> module_event_time_; Histogram<TH1D> event_time_; Histogram<TH1D> buffer_fill_level_; Loading