Пример #1
0
uint64_t testloop3(int stride)
{
    int i, j, warmup = niters;
    uint64_t start, end, result = 0;


    for(i = 0; i < niters + warmup; i++) {
        if(want_cache_flush) {
            flush_cache();
        }
        start = rdtsc();
        /* First access first half of arrays */
        for(j=0; j < stride; j++){
            runloop(0, narrays / 2, j, nitems, stride);
        }
        /* Now second half of arrays */
        for(j=0; j < stride; j++){
            runloop(narrays / 2, narrays, j, nitems, stride);
        }
        end = rdtsc();
        if( i >= warmup ) {
            result += end - start;
        }
    }
    return result;
}
int main(int argc, char *argv[]) { 

  double start1,start2,end1,end2;
  int r;

  init1(); 

  start1 = omp_get_wtime(); 

  for (r=0; r<reps; r++){ 
    runloop(1);
  } 

  end1  = omp_get_wtime();  

  valid1(); 

  printf("Total time for %d reps of loop 1 = %f\n",reps, (float)(end1-start1)); 


  init2(); 

  start2 = omp_get_wtime(); 

  for (r=0; r<reps; r++){ 
    runloop(2);
  } 

  end2  = omp_get_wtime(); 

  valid2(); 

  printf("Total time for %d reps of loop 2 = %f\n",reps, (float)(end2-start2)); 

} 
int main(int argc, char *argv[]) { 

	loop_time = malloc(omp_get_max_threads()*sizeof(int));
	waiting_time = malloc(omp_get_max_threads()*sizeof(int));
	int i;
	for(i=0; i<omp_get_max_threads(); i++)
	{
		loop_time[i] = 0;
		waiting_time[i] = 0;
	}
  double start1,start2,end1,end2;
  int r;

  init1(); 

  start1 = omp_get_wtime(); 

  for (r=0; r<reps; r++){ 
    runloop(1);
  } 

  end1  = omp_get_wtime();  

  valid1(); 

  printf("Total time for %d reps of loop 1 = %f\n",reps, (float)(end1-start1)); 
	printf("#thread\ttime thread spent working\n");
	for(i=0;i<omp_get_max_threads(); i++)
	{
		printf("\t%d\t%d\t%d\n", i, loop_time[i], waiting_time[i]);
		loop_time[i] = 0;
		waiting_time[i] = 0;
	}

  init2(); 

  start2 = omp_get_wtime(); 

  for (r=0; r<reps; r++){ 
    runloop(2);
  } 

  end2  = omp_get_wtime(); 

  valid2(); 

  printf("Total time for %d reps of loop 2 = %f\n",reps, (float)(end2-start2)); 

	printf("#thread\ttime thread spent working\n");
	for(i=0;i<omp_get_max_threads(); i++)
	{
		printf("\t%d\t%d\t%d\n", i, loop_time[i], waiting_time[i]);
	}
} 
Пример #4
0
static
void
run(void)
{
	struct timeval starttime, endtime;
	u_int64_t totcycles;
	double time;

	gettimeofday(&starttime, NULL);

	runloop();

	gettimeofday(&endtime, NULL);

	endtime.tv_sec -= starttime.tv_sec;
	if (endtime.tv_usec < starttime.tv_usec) {
		endtime.tv_sec--;
		endtime.tv_usec += 1000000;
	}
	endtime.tv_usec -= starttime.tv_usec;

	time = endtime.tv_sec + endtime.tv_usec/1000000.0;

	totcycles = showstats();

	msg("Elapsed real time: %llu.%06lu seconds (%g mhz)",
	    (unsigned long long) endtime.tv_sec,
	    (unsigned long) endtime.tv_usec,
	    totcycles/(time*1000000.0));
}
Пример #5
0
int main() {
        init_child_list();
        // Trap SIGINT. This is a shell, so kill children, not current process.
        signal(SIGINT, trap_interrupt);
        signal(SIGCHLD, child_ended);
        runloop();
        return 0;
}
Пример #6
0
int main(int argc, char *argv[]) { 

  double start1,start2,end1,end2;
  int r;
  int i;
  
  /* Init locks */
  for(i=0;i<MAX_PROCS;i++) omp_init_lock(&(remaining_iters_lock[i]));

  init1(); 

  start1 = omp_get_wtime(); 

  for (r=0; r<reps; r++){ 
    runloop(1);
  } 

  end1  = omp_get_wtime();  

  valid1(); 

  printf("Total time for %d reps of loop 1 = %f\n",reps, (float)(end1-start1)); 


  init2(); 

  start2 = omp_get_wtime(); 

  for (r=0; r<reps; r++){ 
    runloop(2);
  } 

  end2  = omp_get_wtime(); 

  valid2(); 

  printf("Total time for %d reps of loop 2 = %f\n",reps, (float)(end2-start2)); 

  for(i=0;i<MAX_PROCS;i++) omp_destroy_lock(&(remaining_iters_lock[i]));

} 
Пример #7
0
uint64_t testloop2()
{
    int i, warmup = niters;
    uint64_t start, end, result = 0;


    for(i = 0; i < niters + warmup; i++) {
        if(want_cache_flush) {
            flush_cache();
        }
        start = rdtsc();
        /* Perform access multiple times */
        runloop(0, narrays / 2, 0, nitems, 1);
        runloop(narrays / 2, narrays, 0, nitems, 1);
        end = rdtsc();
        if( i >= warmup ) {
            result += end - start;
        }
    }
    return result;
}
Пример #8
0
int main(int argc, char *argv[]){

    if (!init(argc, argv)) {
        std::cerr << "Error occured!" << std::endl;
        shutdown();
        exit( EXIT_FAILURE );
    }

    runloop();

    shutdown();
    exit( EXIT_SUCCESS );
}
Пример #9
0
int main(int argc, char** argv) {
	server_t* server;
	uint16_t desiredPort;
	
	if (argc == 1)
		desiredPort = 0;
	else if (argc == 2) {
		int port = atoi(argv[1]);
		
		if (port < 0 || port > UINT16_MAX) {
			printf("Port is invalid.\n");
			return EXIT_FAILURE;
		}
		
		desiredPort = port;
	}
	else {
		printf("%s [port]\n", argv[0]);
		return EXIT_FAILURE;
	}
		
	printf("Opening server socket...\n");
	server = openAndBindServerSocket(desiredPort);
	
	if (!server) {
		perror("Could not open server socket");
		return EXIT_FAILURE;
	}
	
	printf("Listing on %d for connections...\n", server->port);
	
	server->running = true;
	while(server->running)
		runloop(server);
		
	return EXIT_SUCCESS;
}