void PrintStats(M3EcSystemShm * sys)
{
	int i,j;
	for(i=0;i<sys->slaves_responding;i++)
	{			
		if((sys->slave[i].active)&&(time_last[i]!=TIMESTAT_INIT))
		{
			printf("\n\nTIMESTATS for Slave %d\n", i);
			printf("Worst jitter between steps (ms) : %f\n",NS_TO_MS(time_to_step_worst[i]));
			printf("Best jitter between steps (ms) : %f\n",NS_TO_MS(time_to_step_best[i]));
			printf("Avg jitter mag between steps (ms) : %f\n",NS_TO_MS(time_to_step_sum[i]/cntr_sum[i]));
			printf("\nWorst delay between master (ms) : %f\n",NS_TO_MS(time_to_mstr_worst[i]));
			printf("Best delay between master (ms) : %f\n",NS_TO_MS(time_to_mstr_best[i]));
			printf("Avg delay between master (ms) : %f\n",NS_TO_MS(time_to_mstr_sum[i]/cntr_sum[i]));
			printf("Hickups (delay > %fms) : %d\n",NS_TO_MS(HICKUP_THRESHOLD),hickups[i]);
			for (j=0;j<sys->slaves_responding;j++)
			{
				if((sys->slave[j].active)&&(time_last[j]!=TIMESTAT_INIT)&&(i!=j))
				{					
					printf("\nJitter between slaves %d and %d\n",i,j);		
					printf("Worst jitter between slaves (ms) : %f\n",NS_TO_MS(time_slaves_worst[i][j]));
					printf("Best jitter between slaves (ms) : %f\n",NS_TO_MS(time_slaves_best[i][j]));
					printf("Avg jitter mag between slaves (ms) : %f\n",NS_TO_MS(time_slaves_sum[i][j]/cntr_slaves_sum[i][j]));
				}					
			}
		}
	}
	return;
}
示例#2
0
static void print_statistics(int force) {
  if (force || IS_MPI_MASTER()) {
    int i;

    pthread_mutex_lock(&stats_lock);
    
    for (i = 0; i < kernel_elt_count; i++) {
      struct ld_kernel_s *ldKernel = &kernel_map[i];

      if (ldKernel->exec_counter == 0) {
        continue;
      }
      
      info("Kernel %s:\n", ldKernel->name);
      info("\t- was executed %d times\n", ldKernel->exec_counter);
      
      unsigned long avg_ns = ldKernel->exec_span_ns / ldKernel->exec_counter;
      info("\t- it took %"PRId64"ms (%"PRId64"ns).\n", NS_TO_MS(ldKernel->exec_span_ns), ldKernel->exec_span_ns);
      info("\t- average time was %"PRId64"ms (%"PRId64"ns).\n", NS_TO_MS(avg_ns), avg_ns);
    }
    info("---------------\n");

    pthread_mutex_unlock(&stats_lock);
  }
}