From 52f0f1c5028324a0ebea604a1e35bd6a80504e98 Mon Sep 17 00:00:00 2001
From: Pietro Incardona <incardon@mpi-cbg.de>
Date: Mon, 3 Feb 2020 23:29:03 +0100
Subject: [PATCH] Latest modules

---
 openfpm_data                             |  2 +-
 script/download_MPI.sh                   |  8 +++----
 script/install_HDF5.sh                   |  8 +++----
 script/install_MPI.sh                    |  4 ++--
 script/install_PETSC.sh                  | 22 +++++++++----------
 script/pre_req                           | 27 ------------------------
 script/remove_old                        | 12 +++++------
 src/Amr/grid_dist_amr.hpp                |  4 ++--
 src/Amr/tests/amr_base_gpu_unit_tests.cu |  3 ++-
 src/Grid/grid_dist_id.hpp                |  7 +++++-
 10 files changed, 38 insertions(+), 59 deletions(-)

diff --git a/openfpm_data b/openfpm_data
index 58f3b70f2..0083a00b0 160000
--- a/openfpm_data
+++ b/openfpm_data
@@ -1 +1 @@
-Subproject commit 58f3b70f264af944182ff2182e168d68f196b7e8
+Subproject commit 0083a00b0bf82127a828c52ff3c1e922c18e19cf
diff --git a/script/download_MPI.sh b/script/download_MPI.sh
index c691b736d..765e5ac2e 100755
--- a/script/download_MPI.sh
+++ b/script/download_MPI.sh
@@ -2,8 +2,8 @@
 
 # check if the directory $1/MPI exist
 
-rm -rf openmpi-3.1.3
-rm openmpi-3.1.3.tar.gz
-wget http://ppmcore.mpi-cbg.de/upload/openmpi-3.1.3.tar.gz
-tar -xvf openmpi-3.1.3.tar.gz
+rm -rf openmpi-4.0.2
+rm openmpi-4.0.2.tar.gz
+wget http://ppmcore.mpi-cbg.de/upload/openmpi-4.0.2.tar.gz
+tar -xvf openmpi-4.0.2.tar.gz
 
diff --git a/script/install_HDF5.sh b/script/install_HDF5.sh
index 7e21087e6..f44ac3df6 100755
--- a/script/install_HDF5.sh
+++ b/script/install_HDF5.sh
@@ -37,9 +37,9 @@ else
 fi
 
 ### 1.8.19 does not compile on CYGWIN
-wget http://ppmcore.mpi-cbg.de/upload/hdf5-1.8.19.tar.gz
-tar -xf hdf5-1.8.19.tar.gz
-cd hdf5-1.8.19
+wget http://ppmcore.mpi-cbg.de/upload/hdf5-1.10.6.tar.gz
+tar -xf hdf5-1.10.6.tar.gz
+cd hdf5-1.10.6
 
 if [ x"$platform" != x"cygwin" ]; then
         CC=mpicc ./configure --with-zlib=$1/ZLIB --enable-parallel --prefix=$1/HDF5
@@ -54,4 +54,4 @@ if [ $? -ne 0 ]; then
     echo "HDF5 error installing"
     exit 0
 fi
-echo 1 > $1/HDF5/version
+echo 2 > $1/HDF5/version
diff --git a/script/install_MPI.sh b/script/install_MPI.sh
index cc0d922e9..3a1d6ac23 100755
--- a/script/install_MPI.sh
+++ b/script/install_MPI.sh
@@ -8,7 +8,7 @@ if [ -d "$1/MPI" ]; then
 fi
 
 ./script/download_MPI.sh
-cd openmpi-3.1.3
+cd openmpi-4.0.2
 
 if [ x"$3" == x"1" ]; then
    echo "Installing MPI with GPU support"
@@ -25,5 +25,5 @@ make -j $2
 make install
 
 # Mark the installation
-echo 4 > $1/MPI/version
+echo 5 > $1/MPI/version
 
diff --git a/script/install_PETSC.sh b/script/install_PETSC.sh
index 2b9ee3190..a12f66149 100755
--- a/script/install_PETSC.sh
+++ b/script/install_PETSC.sh
@@ -19,7 +19,7 @@ source script/solve_python
 discover_os
 
 function test_configure_options() {
-  cd petsc-3.10.2
+  cd petsc-3.12.3
   $python_command ./configure COPTFLAGS="-O3 -g" CXXOPTFLAGS="-O3 -g" FOPTFLAGS="-O3 -g" $ldflags_petsc  --with-cxx-dialect=C++11 $petsc_openmp --with-mpi-dir=$mpi_dir $configure_options2 --with-debugging=0
   error=$?
   cd ..
@@ -49,14 +49,14 @@ fi
 
 #### Download and uncompress petsc
 
-rm petsc-lite-3.10.2.tar.gz
-rm -rf petsc-3.10.2
-wget http://ppmcore.mpi-cbg.de/upload/petsc-lite-3.10.2.tar.gz
+rm petsc-lite-3.12.3.tar.gz
+rm -rf petsc-3.12.3
+wget http://ppmcore.mpi-cbg.de/upload/petsc-lite-3.12.3.tar.gz
 if [ $? -ne 0 ]; then
   echo -e "\033[91;5;1m FAILED! Installation requires an Internet connection \033[0m"
   exit 1
 fi
-tar -xf petsc-lite-3.10.2.tar.gz
+tar -xf petsc-lite-3.12.3.tar.gz
 
 ####
 
@@ -114,15 +114,15 @@ configure_options="$configure_options --download-scalapack --download-mumps"
 configure_options="$configure_options --download-superlu_dist"
 configure_options="$configure_options --download-hypre"
 
-rm petsc-lite-3.10.2.tar.gz
-rm -rf petsc-3.10.2
-wget http://ppmcore.mpi-cbg.de/upload/petsc-lite-3.10.2.tar.gz
+rm petsc-lite-3.12.3.tar.gz
+rm -rf petsc-3.12.3
+wget http://ppmcore.mpi-cbg.de/upload/petsc-lite-3.12.3.tar.gz
 if [ $? -ne 0 ]; then
   echo -e "\033[91;5;1m FAILED! Installation requires an Internet connection \033[0m"
   exit 1
 fi
-tar -xf petsc-lite-3.10.2.tar.gz
-cd petsc-3.10.2
+tar -xf petsc-lite-3.12.3.tar.gz
+cd petsc-3.12.3
 
 if [ x"$CXX" != x"icpc" ]; then
 
@@ -158,7 +158,7 @@ if [ ! "$(ls -A $1/PETSC)" ]; then
    rm -rf $1/PETSC
 else
    #Mark the installation
-   echo 2 > $1/PETSC/version
+   echo 3 > $1/PETSC/version
    exit 0
 fi
 
diff --git a/script/pre_req b/script/pre_req
index 42347be5f..f2d10992e 100755
--- a/script/pre_req
+++ b/script/pre_req
@@ -308,33 +308,6 @@ if [ x"$MPI_valid" == x"yes"  ]; then
     fi
   fi
 
-  #### Detect a potential dangerous situation ###
-  #### In which g++ is different from mpic++ ###
-
-  output_mpi=$(mpic++ --version)
-  output_gcc=$($dgc_compiler --version)
-
-  if [ x"$output_mpi" != x"$output_gcc" ]; then
-    echo -e "\033[91;5;1m MPI dangerous installation \033[0m"
-    echo -e "Performing a \033[1m  \"mpic++ --version\" \033[0m, we detect that your installed mpic++ does not wrap the standard command g++"
-    echo "In general we strongly disencourage to override the default compiler(s), this configuration not only is not supported by OpenFPM, but can lead potentialy to several problems at system level. For the following reasons"
-    echo -e "\033[1m 1) All system wide dependencies become potentially useless \033[0m"
-    echo -e "\033[1m 2) A package maneger (apt-get or brew) installing a packege from source can potentialy generate incompatible system packages \033[0m"
-    echo -e "\033[1m 3) It is not easy to discover which compiler has been used to compile one dependency \033[0m"
-    echo -e "For just the time of the installation the installer will realign mpic++ to g++, unfortunately this could be not enough to ensure that all the dependencies has been compiled with the same compiler"
-    echo -e "\033[1m Installation will resume in 20 seconds \033[0m"
-    export OMPI_CXX=g++
-    sleep 20
-  fi
-
-  output_mpi=$(mpic++ --version)
-  output_gcc=$($dgc_compiler --version)
-
-  if [ x"$output_mpi" != x"$output_gcc" ]; then
-    echo -e "\033[91;5;1m MPI dangerous installation \033[0m"
-    echo -e "\033[1m The realign operation failed the installation will continue \033[0m"
-    sleep 10
-  fi
 fi
 
 }
diff --git a/script/remove_old b/script/remove_old
index dd11a7639..b0f778e50 100755
--- a/script/remove_old
+++ b/script/remove_old
@@ -76,10 +76,10 @@ function remove_old()
     ## Check the installed version of the dependencies
 
     if [ -d $1/BOOST ]; then
-    	is_update=$(cat $1/BOOST/include/boost/version.hpp | grep "#define BOOST_VERSION 106800")
+    	is_update=$(cat $1/BOOST/include/boost/version.hpp | grep "#define BOOST_VERSION 107200")
     	if [ x"$is_update" == x"" ]; then
             echo -e "\033[1;34;5m  --------------------------------------------------------------------------- \033[0m"
-            echo -e "\033[1;34;5m  Boost has been updated to 1.68, the component will be updated automatically \033[0m"
+            echo -e "\033[1;34;5m  Boost has been updated to 1.72, the component will be updated automatically \033[0m"
             echo -e "\033[1;34;5m  --------------------------------------------------------------------------- \033[0m"
             sleep 5
             rm -rf $1/BOOST/include
@@ -143,9 +143,9 @@ function remove_old()
 
     if [ -d $1/PETSC ]; then
         version=$(cat $1/PETSC/version)
-        if [ x"$version" != x"2"  ]; then
+        if [ x"$version" != x"3"  ]; then
             echo -e "\033[1;34;5m  -------------------------------------------------------------------------------------- \033[0m"
-            echo -e "\033[1;34;5m  PETSC has been updated to version 3.10.2, the component will be updated automatically      \033[0m"
+            echo -e "\033[1;34;5m  PETSC has been updated to version 3.12.3, the component will be updated automatically      \033[0m"
             echo -e "\033[1;34;5m  -------------------------------------------------------------------------------------- \033[0m"
             sleep 5
             rm -rf $1/PETSC
@@ -158,7 +158,7 @@ function remove_old()
 
     if [ -d $1/HDF5 ]; then
         version=$(cat $1/HDF5/version)
-        if [ x"$version" != x"1"  ]; then
+        if [ x"$version" != x"2"  ]; then
             echo -e "\033[1;34;5m  -------------------------------------------------------------------------------------- \033[0m"
             echo -e "\033[1;34;5m  HDF5 has been updated to version 1.10.6, the component will be updated automatically   \033[0m"
             echo -e "\033[1;34;5m  -------------------------------------------------------------------------------------- \033[0m"
@@ -169,7 +169,7 @@ function remove_old()
 
     if [ -d $1/MPI ]; then
         version=$(cat $1/MPI/version)
-        if [ x"$version" != x"4"  ]; then
+        if [ x"$version" != x"5"  ]; then
             echo -e "\033[1;34;5m  -------------------------------------------------------------------------------------- \033[0m"
             echo -e "\033[1;34;5m  MPI has been updated to version 4.0.2, the component will be updated automatically      \033[0m"
             echo -e "\033[1;34;5m  -------------------------------------------------------------------------------------- \033[0m"
diff --git a/src/Amr/grid_dist_amr.hpp b/src/Amr/grid_dist_amr.hpp
index 6ac740458..ce1d0eb39 100644
--- a/src/Amr/grid_dist_amr.hpp
+++ b/src/Amr/grid_dist_amr.hpp
@@ -758,11 +758,11 @@ public:
 	 * \tparam prp... Properties to synchronize
 	 *
 	 */
-	template<int... prp> void ghost_get()
+	template<int... prp> void ghost_get(size_t opt = 0)
 	{
 		for (size_t i = 0 ; i < gd_array.size() ; i++)
 		{
-			gd_array.get(i).template ghost_get<prp...>();
+			gd_array.get(i).template ghost_get<prp...>(opt);
 		}
 	}
 
diff --git a/src/Amr/tests/amr_base_gpu_unit_tests.cu b/src/Amr/tests/amr_base_gpu_unit_tests.cu
index 63f0dea44..b22454719 100644
--- a/src/Amr/tests/amr_base_gpu_unit_tests.cu
+++ b/src/Amr/tests/amr_base_gpu_unit_tests.cu
@@ -376,8 +376,9 @@ BOOST_AUTO_TEST_CASE( grid_dist_id_amr_gpu_link_test_more_dense )
 	}
 
 	amr_g.hostToDevice<0>();
-	amr_g.ghost_get<0>();
+	amr_g.ghost_get<0>(RUN_ON_DEVICE);
 	amr_g.tagBoundaries<NNStar<2>>();
+	amr_g.ghost_get<0>(RUN_ON_DEVICE);
 	amr_g.construct_level_connections();
 	amr_g.deviceToHost<0>();
 	amr_g.write("TESTOUT");
diff --git a/src/Grid/grid_dist_id.hpp b/src/Grid/grid_dist_id.hpp
index 5246e6292..76c9d7f08 100644
--- a/src/Grid/grid_dist_id.hpp
+++ b/src/Grid/grid_dist_id.hpp
@@ -2688,7 +2688,12 @@ public:
     {
 		for (int i = 0 ; i < loc_grid.size() ; i++)
 		{
-			loc_grid.get(i).template tagBoundaries<stencil_type>(v_cl.getmgpuContext());
+			// we limit to the domain subset for tagging
+
+			Box_check<dim,unsigned int> chk(gdb_ext.get(i).Dbox);
+
+
+			loc_grid.get(i).template tagBoundaries<stencil_type>(v_cl.getmgpuContext(),chk);
 		}
 	}
 
-- 
GitLab