From 624ec5a14591edb6b486fc1a62517226d1a794f9 Mon Sep 17 00:00:00 2001 From: JamesEMcclure Date: Wed, 30 Sep 2020 15:10:18 -0400 Subject: [PATCH] memory optimized layout with halo width --- common/ScaLBL.cpp | 6 +++--- models/ColorModel.cpp | 2 +- models/DFHModel.cpp | 2 +- models/FreeLeeModel.cpp | 2 +- models/GreyscaleColorModel.cpp | 2 +- models/GreyscaleModel.cpp | 2 +- models/MRTModel.cpp | 2 +- tests/TestBubbleDFH.cpp | 2 +- tests/TestColorGrad.cpp | 3 +-- tests/TestColorGradDFH.cpp | 2 +- tests/TestColorMassBounceback.cpp | 2 +- tests/TestCommD3Q19.cpp | 2 +- tests/TestFluxBC.cpp | 2 +- tests/TestForceMoments.cpp | 2 +- tests/TestMRT.cpp | 2 +- tests/TestMap.cpp | 2 +- tests/TestPressVel.cpp | 2 +- tests/TestWideHalo.cpp | 2 +- 18 files changed, 20 insertions(+), 21 deletions(-) diff --git a/common/ScaLBL.cpp b/common/ScaLBL.cpp index a2bd1d56..28264d17 100644 --- a/common/ScaLBL.cpp +++ b/common/ScaLBL.cpp @@ -391,9 +391,9 @@ int ScaLBL_Communicator::MemoryOptimizedLayoutAA(IntArray &Map, int *neighborLis n = k*Nx*Ny+j*Nx+i; if (id[n] > 0){ // Counts for the six faces - if (i>0 && i<=width) Map(n)=idx++; - else if (j>0 && j<=width)) Map(n)=idx++; - else if (k>0 && k<=width)) Map(n)=idx++; + if (i>0 && i<=width) Map(n)=idx++; + else if (j>0 && j<=width) Map(n)=idx++; + else if (k>0 && k<=width) Map(n)=idx++; else if (i>Nx-width-1 && iNy-width-1 && jNz-width-1 && kMemoryOptimizedLayoutAA(Map,neighborList,Mask->id,Np); + Np = ScaLBL_Comm->MemoryOptimizedLayoutAA(Map,neighborList,Mask->id,Np,1); MPI_Barrier(comm); //........................................................................... diff --git a/models/DFHModel.cpp b/models/DFHModel.cpp index 4eb03bea..1f796f54 100644 --- a/models/DFHModel.cpp +++ b/models/DFHModel.cpp @@ -205,7 +205,7 @@ void ScaLBL_DFHModel::Create(){ if (rank==0) printf ("Set up memory efficient layout, %i | %i | %i \n", Np, Npad, N); Map.resize(Nx,Ny,Nz); Map.fill(-2); auto neighborList= new int[18*Npad]; - Np = ScaLBL_Comm->MemoryOptimizedLayoutAA(Map,neighborList,Mask->id,Np); + Np = ScaLBL_Comm->MemoryOptimizedLayoutAA(Map,neighborList,Mask->id,Np,1); MPI_Barrier(comm); //........................................................................... diff --git a/models/FreeLeeModel.cpp b/models/FreeLeeModel.cpp index e6525bf4..547885b8 100644 --- a/models/FreeLeeModel.cpp +++ b/models/FreeLeeModel.cpp @@ -206,7 +206,7 @@ void ScaLBL_FreeLeeModel::Create(){ if (rank==0) printf ("Set up memory efficient layout, %i | %i | %i \n", Np, Npad, N); Map.resize(Nx,Ny,Nz); Map.fill(-2); auto neighborList= new int[18*Npad]; - Np = ScaLBL_Comm->MemoryOptimizedLayoutAA(Map,neighborList,Mask->id,Np); + Np = ScaLBL_Comm->MemoryOptimizedLayoutAA(Map,neighborList,Mask->id,Np,2); MPI_Barrier(comm); //........................................................................... diff --git a/models/GreyscaleColorModel.cpp b/models/GreyscaleColorModel.cpp index d97c844d..736012ce 100644 --- a/models/GreyscaleColorModel.cpp +++ b/models/GreyscaleColorModel.cpp @@ -641,7 +641,7 @@ void ScaLBL_GreyscaleColorModel::Create(){ if (rank==0) printf ("Set up memory efficient layout, %i | %i | %i \n", Np, Npad, N); Map.resize(Nx,Ny,Nz); Map.fill(-2); auto neighborList= new int[18*Npad]; - Np = ScaLBL_Comm->MemoryOptimizedLayoutAA(Map,neighborList,Mask->id,Np); + Np = ScaLBL_Comm->MemoryOptimizedLayoutAA(Map,neighborList,Mask->id,Np,1); MPI_Barrier(comm); //........................................................................... diff --git a/models/GreyscaleModel.cpp b/models/GreyscaleModel.cpp index 85832a4b..e61bdec8 100644 --- a/models/GreyscaleModel.cpp +++ b/models/GreyscaleModel.cpp @@ -313,7 +313,7 @@ void ScaLBL_GreyscaleModel::Create(){ if (rank==0) printf ("Set up memory efficient layout, %i | %i | %i \n", Np, Npad, N); Map.resize(Nx,Ny,Nz); Map.fill(-2); auto neighborList= new int[18*Npad]; - Np = ScaLBL_Comm->MemoryOptimizedLayoutAA(Map,neighborList,Mask->id,Np); + Np = ScaLBL_Comm->MemoryOptimizedLayoutAA(Map,neighborList,Mask->id,Np,1); MPI_Barrier(comm); //........................................................................... diff --git a/models/MRTModel.cpp b/models/MRTModel.cpp index acfb8821..8b18b238 100644 --- a/models/MRTModel.cpp +++ b/models/MRTModel.cpp @@ -170,7 +170,7 @@ void ScaLBL_MRTModel::Create(){ if (rank==0) printf ("Set up memory efficient layout \n"); Map.resize(Nx,Ny,Nz); Map.fill(-2); auto neighborList= new int[18*Npad]; - Np = ScaLBL_Comm->MemoryOptimizedLayoutAA(Map,neighborList,Mask->id,Np); + Np = ScaLBL_Comm->MemoryOptimizedLayoutAA(Map,neighborList,Mask->id,Np,1); MPI_Barrier(comm); //........................................................................... // MAIN VARIABLES ALLOCATED HERE diff --git a/tests/TestBubbleDFH.cpp b/tests/TestBubbleDFH.cpp index a8ba0cde..0841311e 100644 --- a/tests/TestBubbleDFH.cpp +++ b/tests/TestBubbleDFH.cpp @@ -249,7 +249,7 @@ int main(int argc, char **argv) if (rank==0) printf ("Set up memory efficient layout Npad=%i \n",Npad); IntArray Map(Nx,Ny,Nz); auto neighborList= new int[18*Npad]; - Np = ScaLBL_Comm->MemoryOptimizedLayoutAA(Map,neighborList,Mask->id,Np); + Np = ScaLBL_Comm->MemoryOptimizedLayoutAA(Map,neighborList,Mask->id,Np,1); MPI_Barrier(comm); //........................................................................... diff --git a/tests/TestColorGrad.cpp b/tests/TestColorGrad.cpp index d2f1d6de..f7808f93 100644 --- a/tests/TestColorGrad.cpp +++ b/tests/TestColorGrad.cpp @@ -1,4 +1,3 @@ - //************************************************************************* // Lattice Boltzmann Simulator for Single Phase Flow in Porous Media // James E. McCLure @@ -177,7 +176,7 @@ int main(int argc, char **argv) IntArray Map(Nx,Ny,Nz); neighborList= new int[18*Np]; - ScaLBL_Comm.MemoryOptimizedLayoutAA(Map,neighborList,Dm->id,Np); + ScaLBL_Comm.MemoryOptimizedLayoutAA(Map,neighborList,Dm->id,Np,1); MPI_Barrier(comm); //......................device distributions................................. diff --git a/tests/TestColorGradDFH.cpp b/tests/TestColorGradDFH.cpp index d6376d82..cd18e401 100644 --- a/tests/TestColorGradDFH.cpp +++ b/tests/TestColorGradDFH.cpp @@ -104,7 +104,7 @@ int main(int argc, char **argv) int *neighborList; IntArray Map(Nx,Ny,Nz); neighborList= new int[18*Npad]; - Np = ScaLBL_Comm->MemoryOptimizedLayoutAA(Map,neighborList,Dm->id,Np); + Np = ScaLBL_Comm->MemoryOptimizedLayoutAA(Map,neighborList,Dm->id,Np,1); MPI_Barrier(comm); //......................device distributions................................. diff --git a/tests/TestColorMassBounceback.cpp b/tests/TestColorMassBounceback.cpp index c05c245e..678b4dfb 100644 --- a/tests/TestColorMassBounceback.cpp +++ b/tests/TestColorMassBounceback.cpp @@ -169,7 +169,7 @@ int main(int argc, char **argv) IntArray Map(Nx,Ny,Nz); Npad=Np+32; neighborList= new int[18*Npad]; - Np=ScaLBL_Comm->MemoryOptimizedLayoutAA(Map,neighborList,Dm->id,Np); + Np=ScaLBL_Comm->MemoryOptimizedLayoutAA(Map,neighborList,Dm->id,Np,1); MPI_Barrier(comm); //......................device distributions................................. diff --git a/tests/TestCommD3Q19.cpp b/tests/TestCommD3Q19.cpp index e1fa821f..f74eac31 100644 --- a/tests/TestCommD3Q19.cpp +++ b/tests/TestCommD3Q19.cpp @@ -284,7 +284,7 @@ int main(int argc, char **argv) auto neighborList= new int[18*Npad]; IntArray Map(Nx,Ny,Nz); Map.fill(-2); - Np = ScaLBL_Comm.MemoryOptimizedLayoutAA(Map,neighborList,Dm->id,Np); + Np = ScaLBL_Comm.MemoryOptimizedLayoutAA(Map,neighborList,Dm->id,Np,1); MPI_Barrier(comm); int neighborSize=18*Np*sizeof(int); //......................device distributions................................. diff --git a/tests/TestFluxBC.cpp b/tests/TestFluxBC.cpp index 020bbd89..6eac35d2 100644 --- a/tests/TestFluxBC.cpp +++ b/tests/TestFluxBC.cpp @@ -88,7 +88,7 @@ int main (int argc, char **argv) IntArray Map(Nx,Ny,Nz); neighborList= new int[18*Npad]; - Np = ScaLBL_Comm->MemoryOptimizedLayoutAA(Map,neighborList,Dm->id,Np); + Np = ScaLBL_Comm->MemoryOptimizedLayoutAA(Map,neighborList,Dm->id,Np,1); MPI_Barrier(comm); //......................device distributions................................. diff --git a/tests/TestForceMoments.cpp b/tests/TestForceMoments.cpp index 1fb1e0a4..54324103 100644 --- a/tests/TestForceMoments.cpp +++ b/tests/TestForceMoments.cpp @@ -183,7 +183,7 @@ int main(int argc, char **argv) IntArray Map(Nx,Ny,Nz); neighborList= new int[18*Np]; - ScaLBL_Comm->MemoryOptimizedLayoutAA(Map,neighborList,Dm->id,Np); + ScaLBL_Comm->MemoryOptimizedLayoutAA(Map,neighborList,Dm->id,Np,1); if (rank == 0) PrintNeighborList(neighborList,Np, rank); diff --git a/tests/TestMRT.cpp b/tests/TestMRT.cpp index 30f46689..2b10411e 100644 --- a/tests/TestMRT.cpp +++ b/tests/TestMRT.cpp @@ -705,7 +705,7 @@ int main(int argc, char **argv) IntArray Map(Nx,Ny,Nz); neighborList= new int[18*Np]; - ScaLBL_Comm.MemoryOptimizedLayoutAA(Map,neighborList,Dm.id,Np); + ScaLBL_Comm.MemoryOptimizedLayoutAA(Map,neighborList,Dm.id,Np,1); MPI_Barrier(comm); //......................device distributions................................. diff --git a/tests/TestMap.cpp b/tests/TestMap.cpp index a47c0d9e..ff0ba811 100644 --- a/tests/TestMap.cpp +++ b/tests/TestMap.cpp @@ -93,7 +93,7 @@ int main(int argc, char **argv) IntArray Map(Nx,Ny,Nz); neighborList= new int[18*Npad]; - Np = ScaLBL_Comm->MemoryOptimizedLayoutAA(Map,neighborList,Dm->id,Np); + Np = ScaLBL_Comm->MemoryOptimizedLayoutAA(Map,neighborList,Dm->id,Np,1); MPI_Barrier(comm); // Check the neighborlist diff --git a/tests/TestPressVel.cpp b/tests/TestPressVel.cpp index e655ced9..f66c1d2c 100644 --- a/tests/TestPressVel.cpp +++ b/tests/TestPressVel.cpp @@ -132,7 +132,7 @@ int main(int argc, char **argv) int *neighborList; IntArray Map(Nx,Ny,Nz); neighborList= new int[18*Npad]; - Np = ScaLBL_Comm->MemoryOptimizedLayoutAA(Map,neighborList,Dm->id,Np); + Np = ScaLBL_Comm->MemoryOptimizedLayoutAA(Map,neighborList,Dm->id,Np,1); MPI_Barrier(comm); //......................device distributions................................. diff --git a/tests/TestWideHalo.cpp b/tests/TestWideHalo.cpp index d2f1d6de..d5bb218c 100644 --- a/tests/TestWideHalo.cpp +++ b/tests/TestWideHalo.cpp @@ -177,7 +177,7 @@ int main(int argc, char **argv) IntArray Map(Nx,Ny,Nz); neighborList= new int[18*Np]; - ScaLBL_Comm.MemoryOptimizedLayoutAA(Map,neighborList,Dm->id,Np); + ScaLBL_Comm.MemoryOptimizedLayoutAA(Map,neighborList,Dm->id,Np,2); MPI_Barrier(comm); //......................device distributions.................................