int main(int argc, char **argv)
{
	MPI_Init(&argc, &argv);
	double start_time, end_time;

    int i;
 
	// Init default values.
    Init_Default();

	// Read arguments.
    Read_Options(argc, argv);

	// Init the matrix.
    Init_Matrix();

	// Start timer.
	start_time = MPI_Wtime();

	// Do guassian elimination.
    Work();

	// Stop timer.
	end_time = MPI_Wtime();

    if(PRINT == 1)
	{
		printf("===== AFTER GUASSIAN ELIMINATION ======\n");
		Print_Matrix();
		printf("=======================================\n\n");
	}

	double time_taken = (end_time - start_time);
	printf("Execution time: %f\n", time_taken);
}
Exemplo n.º 2
0
/*starting the main function*/
int 
main(int argc, char **argv)
{
    pthread_t threads[NUM_CPUS];
    long k;
 
    Init_Default();		/* Init default values	*/
    Read_Options(argc,argv);	/* Read arguments	*/
    Init_Matrix();		/* Init the matrix	*/

   
    if(pthread_barrier_init(&barrier, NULL, NUM_CPUS)) /*barrier synchronization function*/
	{
		
		printf("Could not initialize the barrier \n");
		return -1;
	}


    for(k = 0; k < NUM_CPUS; k++)
	{
      if(pthread_create (&threads[k], NULL, (void *) &work, (void *) k)) /*allocating the work to threads*/
	  {
		  
		  printf("Could not create thread \n");
		  return -1;
	  }
	}

    for(k = 0; k < NUM_CPUS; k++)
	{
      if(pthread_join(threads[k],NULL))  /* Join function to ensure that all the threads have done their work */
		{
			
			printf("Could not join thread \n");
			return -1;
		}
	}

	
    if(pthread_barrier_destroy(&barrier)) /*Destruction of the barrier*/
	{
				printf("Barrier could not be destroyed");
		return -1;
	}

    if (PRINT == 1) /*printing the result*/
	Print_Matrix();
}
Exemplo n.º 3
0
void RichRadiatorTileManager::Init(char *filename){  // Default initialization
  if(_number_of_rad_tiles!=0) return; // Not necessary
//#pragma omp barrier 
//#pragma omp master
  {
    //  cout<<"RichRadiatorTileManager::Init-default radiator"<<endl;
    Init_Default();
    
    //    char name[801];
    //      sprintf(name,"%s/%s/RichDefaultAGLTables.dat",getenv("AMSDataDir"),AMSCommonsI::getversion());
    //      sprintf(name,"%s/%s/RichDefaultAGLTables.02.dat",getenv("AMSDataDir"),AMSCommonsI::getversion());
    //      sprintf(name,"%s/%s/RichDefaultAGLTables.03.dat",getenv("AMSDataDir"),AMSCommonsI::getversion());  // New very careful calibration
    //    sprintf(name,"RichDefaultAGLTables.04.dat");
    ReadFromFile(filename);
    
    // Compute tables
    _compute_tables();  
  }
//#pragma omp barrier 
}