3 #define TW_GVT_NORMAL 0
4 #define TW_GVT_COMPUTE 1
15 TWOPT_UINT(
"gvt-interval",
g_tw_gvt_interval,
"GVT Interval: Iterations through scheduling loop (synch=1,2,3,4), or ms between GVTs (synch=5)"),
55 fprintf(f,
"\nTW GVT Statistics: MPI AllReduce\n");
59 fprintf(f,
"\t%-50s %11d\n",
"Batch Size",
g_tw_mblock);
61 fprintf(f,
"\t%-50s %11d\n",
"Forced GVT",
gvt_force);
62 fprintf(f,
"\t%-50s %11d\n",
"Total GVT Computations",
g_tw_gvt_done);
63 fprintf(f,
"\t%-50s %11lld\n",
"Total All Reduce Calls",
all_reduce_cnt);
64 fprintf(f,
"\t%-50s %11.2lf\n",
"Average Reduction / GVT",
81 unsigned long long current_rt;
104 long long local_white = 0;
105 long long total_white = 0;
170 "GVT computed %d times in a row"
171 " without changing: GVT = %14.14lf, PREV %14.14lf"
172 " -- GLOBAL SYNCH -- out of memory!",
180 me->
id, me->
GVT, gvt);
214 if (g_st_damaris_enabled)
216 st_damaris_expose_data(me, gvt,
GVT_COL);
217 st_damaris_end_iteration();
230 st_damaris_end_iteration();
tw_synch g_tw_synchronization_protocol
unsigned int g_tw_gvt_done
unsigned long long g_tw_clock_rate
unsigned char gvt_status
Bits available for gvt computation.
tw_stime tw_pq_minimum(splay_tree *pq)
void tw_error(const char *file, int line, const char *fmt,...) NORETURN
const tw_optdef * tw_gvt_setup(void)
tw_statistics stats
per PE counters
#define TWOPT_DOUBLE(n, v, h)
void tw_net_read(tw_pe *me)
starts service_queues() to poll network
static tw_clock tw_clock_read(void)
static unsigned int g_tw_gvt_max_no_change
void tw_gvt_force_update_realtime(void)
void st_collect_model_data(tw_pe *pe, double current_rt, int stats_type)
tw_stime trans_msg_ts
Last transient messages' time stamp.
Holds the entire PE state.
static unsigned int gvt_cnt
tw_stime tw_net_minimum(void)
Obtain the lowest timestamp inside the network buffers.
void tw_gvt_step1(tw_pe *me)
unsigned long long g_tw_gvt_realtime_interval
static double gvt_print_interval
#define TW_STIME_CMP(x, y)
unsigned int g_tw_gvt_interval
void tw_gvt_force_update(void)
#define TWOPT_UINT(n, v, h)
tw_pq * pq
Priority queue used to sort events.
#define MPI_TYPE_TW_STIME
void st_collect_engine_data(tw_pe *me, int col_type)
void tw_pe_fossil_collect(void)
static tw_stat all_reduce_cnt
tw_clock s_fossil_collect
tw_stat st_get_allreduce_count()
tw_stime GVT
Global Virtual Time.
unsigned long long tw_stat
static double percent_complete
static void gvt_print(tw_stime gvt)
void tw_gvt_step1_realtime(tw_pe *me)
static unsigned int gvt_force
void tw_gvt_step2(tw_pe *me)
unsigned long long g_tw_max_opt_lookahead
static const tw_optdef gvt_opts[]
void tw_gvt_stats(FILE *f)
static unsigned int g_tw_gvt_no_change
unsigned long long g_tw_gvt_interval_start_cycles