diff --git a/build/includes/job_actor/node_actor.hpp b/build/includes/job_actor/node_actor.hpp index 7481827787c64d05f4b28bfc83fbacf872115aa3..6bfa7f7f9c4e16993c5464cb96826d9aaeb7a311 100644 --- a/build/includes/job_actor/node_actor.hpp +++ b/build/includes/job_actor/node_actor.hpp @@ -7,12 +7,15 @@ #include "hru_batch_actor.hpp" #include "file_access_actor.hpp" #include "job_actor.hpp" +#include "timing_info.hpp" namespace caf { struct node_state { actor current_server; std::string hostname; + + TimingInfo node_timing; int start_gru; int num_gru; diff --git a/build/source/job_actor/distributed_job_actor.cpp b/build/source/job_actor/distributed_job_actor.cpp index c27b5eea3f078333773cfee8df6c7cb407c4475d..c62cddf58788a4bafe0594085fbbb1003f271454 100644 --- a/build/source/job_actor/distributed_job_actor.cpp +++ b/build/source/job_actor/distributed_job_actor.cpp @@ -182,8 +182,6 @@ behavior distributed_job_actor(stateful_actor<distributed_job_state>* self, << "Total Duration = " << total_dur_min << " Minutes\n" << "Total Duration = " << total_dur_hr << " Hours\n" << "___________________Program Finished__________________\n"; - - std::exit(0); } diff --git a/build/source/job_actor/node_actor.cpp b/build/source/job_actor/node_actor.cpp index de9d466711444e47c26baa454d55f0df1b6c3b4c..cc85e67f8d34c7f393ce51411d9762438e4def99 100644 --- a/build/source/job_actor/node_actor.cpp +++ b/build/source/job_actor/node_actor.cpp @@ -9,7 +9,12 @@ behavior node_actor(stateful_actor<node_state>* self, File_Access_Actor_Settings file_access_actor_settings, Job_Actor_Settings job_actor_settings, HRU_Actor_Settings hru_actor_settings) { + aout(self) << "Starting Node Actor\n"; + self->state.node_timing = TimingInfo(); + self->state.node_timing.addTimePoint("total_duration"); + self->state.node_timing.updateStartPoint("total_duration"); + self->set_down_handler([=](const down_msg& dm){ aout(self) << "Received Down Message\n"; }); @@ -154,6 +159,16 @@ behavior node_actor(stateful_actor<node_state>* self, [=](finalize) { aout(self) << "Done Simulation\n"; + self->state.node_timing.updateEndPoint("total_duration"); + double total_duration = self->state.node_timing.getDuration( + "total_duration").value_or(-1.0); + double total_dur_min = total_duration / 60; + double total_dur_hr = total_dur_min / 60; + aout(self) << "Total Duration: " << total_duration << " seconds\n" + << "Total Duration: " << total_dur_min << " minutes\n" + << "Total Duration: " << total_dur_hr << " hours\n" + << "___________________Node Finished__________________\n"; + std::exit(0); } };