Commit a22b9970 authored by Luca Tornatore's avatar Luca Tornatore
Browse files

some sparse changes and compilation fixes

parent d05e7f1e
Loading
Loading
Loading
Loading
+83 −73
Original line number Diff line number Diff line
@@ -36,7 +36,8 @@ void initialize_array(){

    histo_send = (long*) calloc(nsectors+1,sizeof(long));
    int * boundary = (int*) calloc(metaData.Nmeasures,sizeof(int));
    double uuh,vvh;
    double vvh;
    
    for (long iphi = 0; iphi < metaData.Nmeasures; iphi++)
      {
	boundary[iphi] = -1;
@@ -47,8 +48,10 @@ void initialize_array(){
	double downdist = vvh - (double)(binphi*yaxis)*dx;
	//
	histo_send[binphi]++;
           if(updist < w_supporth && updist >= 0.0) {histo_send[binphi+1]++; boundary[iphi] = binphi+1;};
           if(downdist < w_supporth && binphi > 0 && downdist >= 0.0) {histo_send[binphi-1]++; boundary[iphi] = binphi-1;};
	if(updist < w_supporth && updist >= 0.0)
	  {histo_send[binphi+1]++; boundary[iphi] = binphi+1;};
	if(downdist < w_supporth && binphi > 0 && downdist >= 0.0)
	  {histo_send[binphi-1]++; boundary[iphi] = binphi-1;};
      }

    sectorarray = (long**)malloc ((nsectors+1) * sizeof(long*));
@@ -66,8 +69,10 @@ void initialize_array(){
	double downdist = vvh - (double)(binphi*yaxis)*dx;
	sectorarray[binphi][counter[binphi]] = iphi;
	counter[binphi]++;
           if(updist < w_supporth && updist >= 0.0) { sectorarray[binphi+1][counter[binphi+1]] = iphi; counter[binphi+1]++;};
           if(downdist < w_supporth && binphi > 0 && downdist >= 0.0) { sectorarray[binphi-1][counter[binphi-1]] = iphi; counter[binphi-1]++;};
	if(updist < w_supporth && updist >= 0.0)
	  { sectorarray[binphi+1][counter[binphi+1]] = iphi; counter[binphi+1]++;};
	if(downdist < w_supporth && binphi > 0 && downdist >= 0.0)
	  { sectorarray[binphi-1][counter[binphi-1]] = iphi; counter[binphi-1]++;};
      }
     
  
@@ -235,7 +240,7 @@ void gridding_data(){
       int target_rank = (int)(isector % size);
       
      #ifdef ONE_SIDE
       printf("One Side communication active\n");

       //   MPI_Win_lock(MPI_LOCK_SHARED,target_rank,0,slabwin);
       // MPI_Accumulate(gridss,size_of_grid,MPI_DOUBLE,target_rank,0,size_of_grid,MPI_DOUBLE,MPI_SUM,slabwin);
       // MPI_Win_unlock(target_rank,slabwin);
@@ -247,8 +252,9 @@ void gridding_data(){
       
       reduce( isector, target_rank );  // here the reduce is performed within every host 


                                  // here thre reduce is performed among hosts
       if ( Me.Nhosts > 1 )
	 {
	   // here the reduce is performed among hosts
	   MPI_Barrier(MPI_COMM_WORLD);
	   
	   int Im_in_the_new_communicator = MPI_UNDEFINED;
@@ -290,15 +296,15 @@ void gridding_data(){
	       
	       MPI_Comm_free( &Sector_Comm );
	     }
	 }

       
      #else   // relates to #ifdef ONE_SIDE

       
       //MPI_Put(gridss,size_of_grid,MPI_DOUBLE,target_rank,0,size_of_grid,MPI_DOUBLE,slabwin);
      #else
       MPI_Reduce(gridss,grid,size_of_grid,MPI_DOUBLE,MPI_SUM,target_rank,MPI_COMM_WORLD);
      #endif //ONE_SIDE
      #endif //USE_MPI
      #endif  //  closes #ifdef ONE_SIDE
      #endif  //  closes USE_MPI
	       
       clock_gettime(CLOCK_MONOTONIC, &finishk);
       endk = clock();
@@ -430,6 +436,10 @@ void reduce( int sector, int target_rank )
   int local_rank = Me.Rank[myHOST];

   if( Me.Ranks_to_host[ target_rank ] == Me.myhost )
     // exchange rank 0 with target rank
     // in this way the following log2 alogorithm,
     // which reduces to rank 0, will work for
     // every target rank
     {

       int r = 0;
+156 −142
Original line number Diff line number Diff line
@@ -278,18 +278,20 @@ void readMetaData(char fileLocal[1000]) {
    {
      if( (file.pFile = fopen (fileLocal,"r")) != NULL )
        {
	  fscanf(file.pFile,"%ld",&metaData.Nmeasures);
	  fscanf(file.pFile,"%ld",&metaData.Nvis);
	  fscanf(file.pFile,"%ld",&metaData.freq_per_chan);
	  fscanf(file.pFile,"%ld",&metaData.polarisations);
	  fscanf(file.pFile,"%ld",&metaData.Ntimes);
	  fscanf(file.pFile,"%lf",&metaData.dt);
	  fscanf(file.pFile,"%lf",&metaData.thours);
	  fscanf(file.pFile,"%ld",&metaData.baselines);
	  fscanf(file.pFile,"%lf",&metaData.uvmin);
	  fscanf(file.pFile,"%lf",&metaData.uvmax);
	  fscanf(file.pFile,"%lf",&metaData.wmin);
	  fscanf(file.pFile,"%lf",&metaData.wmax);
	  int items = 0;
	  items += fscanf(file.pFile,"%ld",&metaData.Nmeasures);
	  items += fscanf(file.pFile,"%ld",&metaData.Nvis);
	  items += fscanf(file.pFile,"%ld",&metaData.freq_per_chan);
	  items += fscanf(file.pFile,"%ld",&metaData.polarisations);
	  items += fscanf(file.pFile,"%ld",&metaData.Ntimes);
	  items += fscanf(file.pFile,"%lf",&metaData.dt);
	  items += fscanf(file.pFile,"%lf",&metaData.thours);
	  items += fscanf(file.pFile,"%ld",&metaData.baselines);
	  items += fscanf(file.pFile,"%lf",&metaData.uvmin);
	  items += fscanf(file.pFile,"%lf",&metaData.uvmax);
	  items += fscanf(file.pFile,"%lf",&metaData.wmin);
	  items += fscanf(file.pFile,"%lf",&metaData.wmax);
	  
	  fclose(file.pFile);
        } 
      else
@@ -315,6 +317,7 @@ void metaData_calculation() {
     metaData.Nvis = metaData.Nmeasures*metaData.freq_per_chan*metaData.polarisations;

     // calculate the coordinates of the center
     #warning why it it not used?
     double uvshift = metaData.uvmin/(metaData.uvmax-metaData.uvmin);

     if (global_rank == 0)
@@ -330,9 +333,7 @@ void metaData_calculation() {
     startrow = global_rank*nm_pe;
     if (global_rank == size-1)nm_pe = nm_pe+remaining;

     long Nmeasures_tot = metaData.Nmeasures;
     metaData.Nmeasures = nm_pe;
     long Nvis_tot = metaData.Nvis;
     metaData.Nvis = metaData.Nmeasures*metaData.freq_per_chan*metaData.polarisations;
     metaData.Nweights = metaData.Nmeasures*metaData.polarisations;

@@ -391,7 +392,9 @@ void readData() {
     if( (file.pFile = fopen (filename,"rb")) != NULL )
     {
          fseek (file.pFile,startrow*sizeof(double),SEEK_SET);
          fread(data.uu,metaData.Nmeasures*sizeof(double),1,file.pFile);
          size_t res = fread(data.uu, sizeof(double), metaData.Nmeasures, file.pFile);
	  if( res != metaData.Nmeasures )
	    printf("an error occurred while reading file %s\n", filename);
          fclose(file.pFile);
     }
     else
@@ -405,7 +408,10 @@ void readData() {
     if( (file.pFile = fopen (filename,"rb")) != NULL )
     {
          fseek (file.pFile,startrow*sizeof(double),SEEK_SET);
          fread(data.vv,metaData.Nmeasures*sizeof(double),1,file.pFile);
          size_t res = fread(data.vv, sizeof(double), metaData.Nmeasures, file.pFile);
	  if( res != metaData.Nmeasures )
	    printf("an error occurred while reading file %s\n", filename);
	      
          fclose(file.pFile);
     }
     else
@@ -419,7 +425,9 @@ void readData() {
     if( (file.pFile = fopen (filename,"rb")) != NULL )
     {
          fseek (file.pFile,startrow*sizeof(double),SEEK_SET);
          fread(data.ww,metaData.Nmeasures*sizeof(double),1,file.pFile);
          size_t res = fread(data.ww,sizeof(double), metaData.Nmeasures, file.pFile);
	  if( res != metaData.Nmeasures )
	    printf("an error occurred while reading file %s\n", filename);	      
          fclose(file.pFile);
     }
     else
@@ -433,7 +441,9 @@ void readData() {
     if( (file.pFile = fopen (filename,"rb")) != NULL)
     {
          fseek (file.pFile,startrow*metaData.polarisations*sizeof(float),SEEK_SET);
          fread(data.weights,(metaData.Nweights)*sizeof(float),1,file.pFile);
          size_t res = fread(data.weights, sizeof(float), metaData.Nweights, file.pFile);
	  if( res != metaData.Nweights )
	    printf("an error occurred while reading file %s\n", filename);
          fclose(file.pFile);
     }
     else
@@ -447,7 +457,9 @@ void readData() {
     if((file.pFile = fopen (filename,"rb")) != NULL )
     {
          fseek (file.pFile,startrow*metaData.freq_per_chan*metaData.polarisations*sizeof(float),SEEK_SET);
          fread(data.visreal,metaData.Nvis*sizeof(float),1,file.pFile);
          size_t res = fread(data.visreal, sizeof(float), metaData.Nvis, file.pFile);
	  if( res != metaData.Nvis )
	    printf("an error occurred while reading file %s\n", filename);
          fclose(file.pFile);
     }
     else
@@ -461,7 +473,9 @@ void readData() {
     if( (file.pFile = fopen (filename,"rb")) != NULL )
     {
          fseek (file.pFile,startrow*metaData.freq_per_chan*metaData.polarisations*sizeof(float),SEEK_SET);
          fread(data.visimg,metaData.Nvis*sizeof(float),1,file.pFile);
          size_t res = fread(data.visimg, sizeof(float), metaData.Nvis, file.pFile);
	  if( res != metaData.Nvis )
	    printf("an error occurred while reading file %s\n", filename);
          fclose(file.pFile);
     }
     else
+2 −2
Original line number Diff line number Diff line
@@ -140,7 +140,7 @@ void wstack(
     int num_threads)
{
    long i;
    long index;
    //long index;
    long visindex;

    // initialize the convolution kernel
@@ -242,7 +242,7 @@ void wstack(

        visindex = i*freq_per_chan*polarizations;

        double sum = 0.0;
        //double sum = 0.0;
        int j, k;
	//if (i%1000 == 0)printf("%ld\n",i);