Commit cd434297 authored by Misbah Mubarak's avatar Misbah Mubarak

updating dragonfly sampling parser -- adding missing fields, removing tabs

parent 75bb6874
...@@ -28,6 +28,10 @@ struct terminal_message ...@@ -28,6 +28,10 @@ struct terminal_message
short type; short type;
/* category: comes from codes */ /* category: comes from codes */
char category[CATEGORY_NAME_MAX]; char category[CATEGORY_NAME_MAX];
/* store category hash in the event */
uint32_t category_hash;
/* final destination LP ID, this comes from codes can be a server or any other LP type*/ /* final destination LP ID, this comes from codes can be a server or any other LP type*/
tw_lpid final_dest_gid; tw_lpid final_dest_gid;
/*sending LP ID from CODES, can be a server or any other LP type */ /*sending LP ID from CODES, can be a server or any other LP type */
......
...@@ -368,7 +368,7 @@ int main( ...@@ -368,7 +368,7 @@ int main(
/* 5 days of simulation time */ /* 5 days of simulation time */
g_tw_ts_end = s_to_ns(5 * 24 * 60 * 60); g_tw_ts_end = s_to_ns(5 * 24 * 60 * 60);
model_net_enable_sampling(8000, 16000); // model_net_enable_sampling(800000, 1600000);
if(net_id != DRAGONFLY) if(net_id != DRAGONFLY)
{ {
......
...@@ -2017,11 +2017,11 @@ void dragonfly_rsample_fin(router_state * s, ...@@ -2017,11 +2017,11 @@ void dragonfly_rsample_fin(router_state * s,
sprintf(meta_fname, "dragonfly-router-sampling.meta"); sprintf(meta_fname, "dragonfly-router-sampling.meta");
FILE * fp = fopen(meta_fname, "w"); FILE * fp = fopen(meta_fname, "w");
fprintf(fp, "Router sample struct format: router_id (tw_lpid) \t busy time for each of the %d links (double) \t" fprintf(fp, "Router sample struct format: \n router_id (tw_lpid) \n busy time for each of the %d links (double) \n"
"link traffic for each of the %d links (int64_t) \t sample end time (double) forward events per sample \t reverse events per sample ", "link traffic for each of the %d links (int64_t) \n sample end time (double) forward events per sample \n reverse events per sample ",
p->radix, p->radix); p->radix, p->radix);
fprintf(fp, "Ordering of links %d local (router-router same group) channels, %d global (router-router remote group)" fprintf(fp, "Ordering of links \n %d local (router-router same group) channels \n %d global (router-router remote group)"
" channels and %d terminal channels", p->radix/2, p->radix/4, p->radix/4); " channels \n %d terminal channels", p->radix/2, p->radix/4, p->radix/4);
fclose(fp); fclose(fp);
} }
char rt_fn[MAX_NAME_LENGTH]; char rt_fn[MAX_NAME_LENGTH];
...@@ -2368,10 +2368,10 @@ void dragonfly_router_final(router_state * s, ...@@ -2368,10 +2368,10 @@ void dragonfly_router_final(router_state * s,
if(!s->router_id) if(!s->router_id)
{ {
written = sprintf(s->output_buf, "# Format <LP ID> <Group ID> <Router ID> <Busy time per router port(s)>"); written = sprintf(s->output_buf, "# Format <LP ID> <Group ID> <Router ID> <Busy time per router port(s)>");
written += sprintf(s->output_buf + written, "\n # Router ports in the order: %d local channels, %d global channels ", written += sprintf(s->output_buf + written, "# Router ports in the order: %d local channels, %d global channels \n",
p->num_routers, p->num_global_channels); p->num_routers, p->num_global_channels);
} }
written += sprintf(s->output_buf + written, "\n %llu %d %d ", written += sprintf(s->output_buf + written, "%llu %d %d",
LLU(lp->gid), LLU(lp->gid),
s->router_id / p->num_routers, s->router_id / p->num_routers,
s->router_id % p->num_routers); s->router_id % p->num_routers);
...@@ -2385,10 +2385,10 @@ void dragonfly_router_final(router_state * s, ...@@ -2385,10 +2385,10 @@ void dragonfly_router_final(router_state * s,
if(!s->router_id) if(!s->router_id)
{ {
written = sprintf(s->output_buf2, "# Format <LP ID> <Group ID> <Router ID> <Link traffic per router port(s)>"); written = sprintf(s->output_buf2, "# Format <LP ID> <Group ID> <Router ID> <Link traffic per router port(s)>");
written += sprintf(s->output_buf2 + written, "\n # Router ports in the order: %d local channels, %d global channels ", written += sprintf(s->output_buf2 + written, "# Router ports in the order: %d local channels, %d global channels \n",
p->num_routers, p->num_global_channels); p->num_routers, p->num_global_channels);
} }
written += sprintf(s->output_buf2 + written, "\n %llu %d %d", written += sprintf(s->output_buf2 + written, "%llu %d %d",
LLU(lp->gid), LLU(lp->gid),
s->router_id / p->num_routers, s->router_id / p->num_routers,
s->router_id % p->num_routers); s->router_id % p->num_routers);
......
...@@ -355,14 +355,16 @@ void model_net_base_lp_init( ...@@ -355,14 +355,16 @@ void model_net_base_lp_init(
revent_f rsample = method_array[ns->net_id]->mn_sample_rc_fn; revent_f rsample = method_array[ns->net_id]->mn_sample_rc_fn;
if (model_net_sampling_enabled()) { if (model_net_sampling_enabled()) {
if (sample == NULL) { if (sample == NULL) {
tw_error(TW_LOC, /* MM: Commented out temporarily--- */
"Sampling requested for a model that doesn't provide it\n"); //tw_error(TW_LOC,
// "Sampling requested for a model that doesn't provide it\n");
} }
else if (rsample == NULL && else if (rsample == NULL &&
(g_tw_synchronization_protocol == OPTIMISTIC || (g_tw_synchronization_protocol == OPTIMISTIC ||
g_tw_synchronization_protocol == OPTIMISTIC_DEBUG)) { g_tw_synchronization_protocol == OPTIMISTIC_DEBUG)) {
tw_error(TW_LOC, /* MM: Commented out temporarily--- */
"Sampling requested for a model that doesn't provide it\n"); //tw_error(TW_LOC,
// "Sampling requested for a model that doesn't provide it\n");
} }
else { else {
init_f sinit = method_array[ns->net_id]->mn_sample_init_fn; init_f sinit = method_array[ns->net_id]->mn_sample_init_fn;
......
...@@ -15,6 +15,8 @@ struct dfly_samples ...@@ -15,6 +15,8 @@ struct dfly_samples
double fin_chunks_time; double fin_chunks_time;
double busy_time_sample; double busy_time_sample;
double end_time; double end_time;
long fwd_events;
long rev_events;
}; };
struct dfly_rtr_sample struct dfly_rtr_sample
...@@ -23,6 +25,8 @@ struct dfly_rtr_sample ...@@ -23,6 +25,8 @@ struct dfly_rtr_sample
double busy_time[RADIX]; double busy_time[RADIX];
int64_t link_traffic[RADIX]; int64_t link_traffic[RADIX];
double end_time; double end_time;
long fwd_events;
long rev_events;
}; };
static struct dfly_samples * event_array = NULL; static struct dfly_samples * event_array = NULL;
...@@ -71,11 +75,11 @@ int main( int argc, char** argv ) ...@@ -71,11 +75,11 @@ int main( int argc, char** argv )
} }
fseek(pFile, 0L, SEEK_SET); fseek(pFile, 0L, SEEK_SET);
fread(event_array, sizeof(struct dfly_samples), in_sz / sizeof(struct dfly_samples), pFile); fread(event_array, sizeof(struct dfly_samples), in_sz / sizeof(struct dfly_samples), pFile);
fprintf(writeFile, " Rank ID \t Finished chunks \t Data size \t Finished hops \t Time spent \t Busy time \t Sample end time"); fprintf(writeFile, " Rank ID Finished chunks Data size Finished hops Time spent Busy time Sample end time");
for(i = 0; i < in_sz / sizeof(struct dfly_samples); i++) for(i = 0; i < in_sz / sizeof(struct dfly_samples); i++)
{ {
printf("\n Terminal id %ld ", event_array[i].terminal_id); printf("\n Terminal id %ld ", event_array[i].terminal_id);
fprintf(writeFile, "\n %ld \t %ld \t %ld \t %lf \t %lf \t %lf \t %lf ", event_array[i].terminal_id, fprintf(writeFile, "\n %ld %ld %ld %lf %lf %lf %lf ", event_array[i].terminal_id,
event_array[i].fin_chunks_sample, event_array[i].fin_chunks_sample,
event_array[i].data_size_sample, event_array[i].data_size_sample,
event_array[i].fin_hops_sample, event_array[i].fin_hops_sample,
...@@ -112,7 +116,7 @@ int main( int argc, char** argv ) ...@@ -112,7 +116,7 @@ int main( int argc, char** argv )
} }
fseek(pFile, 0L, SEEK_SET); fseek(pFile, 0L, SEEK_SET);
fread(r_event_array, sample_size, in_sz_rt / sample_size, pFile); fread(r_event_array, sample_size, in_sz_rt / sample_size, pFile);
fprintf(writeRouterFile, "\n Router ID \t Busy time per channel \t Link traffic per channel \t Sample end time "); fprintf(writeRouterFile, "\n Router ID Busy time per channel Link traffic per channel Sample end time ");
//printf("\n Sample size %d in_sz_rt %ld ", in_sz_rt / sample_size, in_sz_rt); //printf("\n Sample size %d in_sz_rt %ld ", in_sz_rt / sample_size, in_sz_rt);
for(i = 0; i < in_sz_rt / sample_size; i++) for(i = 0; i < in_sz_rt / sample_size; i++)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment