void main(){

    float *x,*y, *temp_x, *temp_y, *alpha, *temp_alpha;
    // int size_x=50;
    // int size_y=10;

    int size_x=1600;
    int size_y=800;



    if( NULL == (x = memalign(16, sizeof(float)*size_x))){
        printf("\nfailed for x\n");
        exit(1);
    }
    if(NULL == ( y = memalign(16, sizeof(float)*size_y))){
        printf("\nfailed for y\n");
        free(x);
        exit(1);

    }
    if(NULL == (alpha = memalign(16, sizeof(float)*4))){
        printf("\nfailed for alpha\n");
        free(x);
        free(y);
        exit(1);
    }
    int i;

    //fill up arrays
    for(i=0; i < size_x; i++){
        x[i]= (float)(i*1000);
    }
    for(i=0; i < size_y; i++){
        y[i]= (float)(i*1000);
    }
    for(i=0; i <4; i++){
        alpha[i]=(float)1;
    }


    print_arrays(x, size_x, y, size_y, alpha,1);    

    //warmup_scalar(x, y, size_y, alpha);
    warmup_vector(x, y, size_y, alpha);

    print_arrays(x, size_x, y, size_y, alpha,1);

    free(x);
    free(y);
    free(alpha);

}
Beispiel #2
0
int main()
{
	float cel[N], far[N];
	init_array(cel, N);
	cel2far(cel, far, N);
	print_arrays(cel, far, N);

	system("pause");
	return 0;
}
Beispiel #3
0
void *pthreads_each(void *rank_ptr) {
  uint32_t rank;
#if !defined(DEBUG)
  uint32_t bytes_transferred;
#endif

#if defined(PAPI_ENABLED) && !defined(DEBUG)
  int num_sets;
  PAPI_event_set_wrapper_t* event_sets;

  papi_filter_events(desired_events, num_desired, &event_sets, &num_sets);
#endif

  rank = *((uint32_t *) rank_ptr);

#if defined(AFFINITY_ENABLED)
  Affinity_Bind_Thread(rank);
  Affinity_Bind_Memory(rank);
#endif

#if defined(DEBUG)
  init_arrays(rank);
  barrier_wait(&my_barrier, rank);
  stream_per_thread[read_arrays_case][write_arrays_case][write_type_case][load_type_case][loop_unroll_case][prefetch_distance_case](rank);
  barrier_wait(&my_barrier, rank);
  if (rank == 0) {
    print_arrays();
  }
#else
  TIMER_MAKE_MEASUREMENTS(stream_per_thread[read_arrays_case][write_arrays_case][write_type_case][load_type_case][loop_unroll_case][prefetch_distance_case](rank), results, rank, NUM_TRIALS);
  if (rank == 0) {
    printf("TIME (IN SECONDS)\n");
    print_max_timer_measurements(results, numThreads, NUM_TRIALS, median_counts_per_sec);
    printf("\nBANDWIDTH (IN GB/S, WHERE 1 GB/S = 10^9 B/S)\n");
    bytes_transferred = 0;
    if (write_type_case == 0) {
      bytes_transferred = (numReadArraysPerThread + 2*numWriteArraysPerThread) * (numThreads * threadArrayLength * NUM_BYTES_PER_DOUBLE);
    }
    else if (write_type_case == 1) {
      bytes_transferred = (numReadArraysPerThread + numWriteArraysPerThread) * (numThreads * threadArrayLength * NUM_BYTES_PER_DOUBLE);
    }
    print_bandwidth_measurements(results, bytes_transferred, numThreads, NUM_TRIALS, median_counts_per_sec);
    printf("\n\n");
  }
#endif
  pthread_exit((void*) 0);
}
Beispiel #4
0
int main() 
{
    int idx, bound, temp;
    bound = 16;

    populate_arrays();
    print_arrays();

    bound = 16;

    idx = 0;
    while (idx < bound - 1)
    {
	if (array_1[idx] > array_1[idx + 1])
	{
	    temp = array_1[idx];
	    array_1[idx] = array_1[idx + 1];
	    array_1[idx + 1] = temp;
	    idx = 0;
	    continue;
	}
	
	idx = idx + 1;
    }

    idx = 0;
    while (idx < bound - 1)
    {
	if (array_2[idx] > array_2[idx + 1])
	{
	    temp = array_2[idx];
	    array_2[idx] = array_2[idx + 1];
	    array_2[idx + 1] = temp;
	    idx = 0;
	    continue;
	}
	
	idx = idx + 1;
    }


    idx = 0;
    while (idx < bound - 1)
    {
	if (array_3[idx] > array_3[idx + 1])
	{
	    temp = array_1[idx];
	    array_3[idx] = array_3[idx + 1];
	    array_3[idx + 1] = temp;
	    idx = 0;
	    continue;
	}
	
	idx = idx + 1;
    }

    idx = 0;
    while (idx < bound - 1)
    {
	if (array_4[idx] > array_4[idx + 1])
	{
	    temp = array_4[idx];
	    array_4[idx] = array_4[idx + 1];
	    array_4[idx + 1] = temp;
	    idx = 0;
	    continue;
	}
	
	idx = idx + 1;
    }

    print_arrays();
}