From 1afea572116e52b8fd1030ff233d12595360a570 Mon Sep 17 00:00:00 2001
From: Emanuele De Rubeis <ederubei@login01.leonardo.local>
Date: Mon, 13 May 2024 13:38:35 +0200
Subject: [PATCH] Memory optimisation for visibilities distribution

---
 allvars.h      |  4 ++--
 allvars_nccl.h |  2 +-
 init.c         | 11 ++++++-----
 3 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/allvars.h b/allvars.h
index 88e062e..c434035 100755
--- a/allvars.h
+++ b/allvars.h
@@ -117,8 +117,8 @@ extern struct op
 extern struct meta
 {
 
-  uint   Nmeasures;
-  uint   Nvis;
+  unsigned long   Nmeasures;
+  unsigned long   Nvis;
   uint   Nweights;
   uint   freq_per_chan;
   uint   polarisations;
diff --git a/allvars_nccl.h b/allvars_nccl.h
index d102d68..9de3845 100755
--- a/allvars_nccl.h
+++ b/allvars_nccl.h
@@ -116,7 +116,7 @@ extern struct meta
 {
 
   uint   Nmeasures;
-  uint   Nvis;
+  unsigned long   Nvis;
   uint   Nweights;
   uint   freq_per_chan;
   uint   polarisations;
diff --git a/init.c b/init.c
index e0f8f03..76566bb 100755
--- a/init.c
+++ b/init.c
@@ -289,7 +289,7 @@ void readMetaData(char fileLocal[1000])
         {
 	  int ret = 0;
 	  ret += fscanf(file.pFile, "%u", &metaData.Nmeasures);
-	  ret += fscanf(file.pFile, "%u", &metaData.Nvis);
+	  ret += fscanf(file.pFile, "%lu", &metaData.Nvis);
 	  ret += fscanf(file.pFile, "%u", &metaData.freq_per_chan);
 	  ret += fscanf(file.pFile, "%u", &metaData.polarisations);
 	  ret += fscanf(file.pFile, "%u", &metaData.Ntimes);
@@ -322,14 +322,15 @@ void metaData_calculation() {
      if ( rank == 0 ) printf("Subtracting last %d measurements\n",nsub);
      metaData.Nmeasures = metaData.Nmeasures-nsub;
      metaData.Nvis = metaData.Nmeasures*metaData.freq_per_chan*metaData.polarisations;
-
-     // calculate the coordinates of the center
+      // calculate the coordinates of the center
      double uvshift = metaData.uvmin/(metaData.uvmax-metaData.uvmin);
 
      if (rank == 0)
      {
           printf("N. measurements %u\n",metaData.Nmeasures);
-          printf("N. visibilities %u\n",metaData.Nvis);
+	  printf("Channels %u\n", metaData.freq_per_chan);
+	  printf("Correlations %u\n", metaData.polarisations);
+          printf("N. visibilities %lu\n",metaData.Nvis);
      }
 
      // Set temporary local size of points
@@ -341,7 +342,7 @@ void metaData_calculation() {
 
      uint Nmeasures_tot = metaData.Nmeasures;
      metaData.Nmeasures = nm_pe;
-     uint Nvis_tot = metaData.Nvis;
+     unsigned long Nvis_tot = metaData.Nvis;
      metaData.Nvis = metaData.Nmeasures*metaData.freq_per_chan*metaData.polarisations;
      metaData.Nweights = metaData.Nmeasures*metaData.polarisations;
 
-- 
GitLab