You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Head node logging now reports number of events of each type encountered in the step
Periodic perf output now records accumulated number of events of each type, number of outliers detected and number of IO steps since last write
ZMQNet send/recv now throw errors if a zmq_error was detected, and the error message is reported
Perf filenames now include program index rather than just rank
PerfPeriodic now uses map rather than unordered_map so that output columns order doesn't change due to rehashing
Driver now returns exit code of 1 if an error was caught
ZMQNet uses the error functionality rather than just throw
Anomaly count written to perf output
<< " <Trace directory> : The directory in which the BPFile or SST file is located\n"
104
-
<< " <Trace file prefix> : The prefix of the file eg \"tau-metrics-[mybinary]\"\n"
104
+
<< " <Trace file prefix> : The prefix of the file (the trace file name without extension e.g. \"tau-metrics-mybinary\" for \"tau-metrics-mybinary.bp\")\n"
105
105
<< " <Options> : Optional arguments as described below.\n";
106
106
getOptionalArgsParser().help(std::cout);
107
107
}
@@ -201,6 +201,8 @@ int main(int argc, char ** argv){
@@ -458,10 +458,10 @@ void Chimbuko::run(unsigned long long& n_func_events,
458
458
int step = m_parser->getCurrentStep(); //gives -1 as initial value. step+1 is the expected value of step in parseInputStep and is used as a (non-fatal) check
459
459
unsignedlong first_event_ts, last_event_ts; //earliest and latest timestamps in io frame
@@ -471,13 +471,28 @@ void Chimbuko::run(unsigned long long& n_func_events,
471
471
#endif
472
472
473
473
PerfTimer step_timer, timer;
474
+
475
+
unsignedlonglong n_func_events_step, n_comm_events_step, n_counter_events_step; //event count in present step
476
+
unsignedlonglong n_func_events_accum_prd = 0, n_comm_events_accum_prd = 0, n_counter_events_accum_prd = 0; //accumulated event counts since last write of periodic data
477
+
unsignedlong n_outliers_accum_prd = 0; //accumulated outliers detected since last write of periodic data
478
+
int n_steps_accum_prd = 0; //number of steps since last write of periodic data
474
479
475
480
//Loop until we lose connection with the application
476
-
while ( parseInputStep(step, n_func_events, n_comm_events, n_counter_events) ) {
481
+
while ( parseInputStep(step, n_func_events_step, n_comm_events_step, n_counter_events_step) ) {
throwstd::runtime_error("ZMQNet::init couldn't set number of io threads to requested amount");
80
+
fatal_error("ZMQNet::init couldn't set number of io threads to requested amount");
81
81
82
82
//Check worker_idx = 0 for all payloads
83
83
for(autoconst &e : m_payloads)
84
-
if(e.first != 0) throwstd::runtime_error("ZMQNet all payloads must have worker_idx=0");
84
+
if(e.first != 0) fatal_error("ZMQNet all payloads must have worker_idx=0");
85
85
86
86
init_thread_pool(nt);
87
87
}
@@ -134,9 +134,9 @@ void doWork(void* context,
134
134
135
135
timer.start();
136
136
auto kit = payloads.find((MessageKind)msg.kind());
137
-
if(kit == payloads.end()) throwstd::runtime_error("ZMQNet::doWork : No payload associated with the message kind provided. Message: " + strmsg + " (did you add the payload to the server?)");
137
+
if(kit == payloads.end()) fatal_error("ZMQNet::doWork : No payload associated with the message kind provided. Message: " + strmsg + " (did you add the payload to the server?)");
138
138
auto pit = kit->second.find((MessageType)msg.type());
139
-
if(pit == kit->second.end()) throwstd::runtime_error("ZMQNet::doWork : No payload associated with the message type provided. Mesage: " + strmsg + " (did you add the payload to the server?)");
139
+
if(pit == kit->second.end()) fatal_error("ZMQNet::doWork : No payload associated with the message type provided. Mesage: " + strmsg + " (did you add the payload to the server?)");
0 commit comments