diff --git a/Grid_config.h b/Grid_config.h index bb885708..deb6c74c 100644 --- a/Grid_config.h +++ b/Grid_config.h @@ -11,10 +11,10 @@ /* #undef AVX512 */ /* GRID_COMMS_MPI */ -#define GRID_COMMS_MPI 1 +/* #undef GRID_COMMS_MPI */ /* GRID_COMMS_NONE */ -/* #undef GRID_COMMS_NONE */ +#define GRID_COMMS_NONE 1 /* Define to 1 if you have the `gettimeofday' function. */ #define HAVE_GETTIMEOFDAY 1 diff --git a/Grid_main.cc b/Grid_main.cc index 1676a07b..770de9a3 100644 --- a/Grid_main.cc +++ b/Grid_main.cc @@ -407,7 +407,5 @@ int main (int argc, char ** argv) } // loop for lat } // loop for omp - - MPI_Finalize(); - + Grid_finalize(); } diff --git a/Grid_stencil.h b/Grid_stencil.h index 4d73f436..e10cabaa 100644 --- a/Grid_stencil.h +++ b/Grid_stencil.h @@ -1,3 +1,5 @@ +#ifndef GRID_STENCIL_H +#define GRID_STENCIL_H ////////////////////////////////////////////////////////////////////////////////////////// // Must not lose sight that goal is to be able to construct really efficient // gather to a point stencil code. CSHIFT is not the best way, so probably need @@ -45,14 +47,12 @@ namespace Grid { void Stencil_local (int dimension,int shift,int cbmask); void Stencil_comms (int dimension,int shift,int cbmask); void Stencil_comms_simd(int dimension,int shift,int cbmask); + // Will need to implement actions for - // Copy_plane; Copy_plane_permute; Gather_plane; - - // The offsets to all neibours in stencil in each direction int _checkerboard; int _npoints; // Move to template param? @@ -360,3 +360,4 @@ namespace Grid { }; +#endif diff --git a/Grid_vComplexD.h b/Grid_vComplexD.h index 88d69ecb..3278b15e 100644 --- a/Grid_vComplexD.h +++ b/Grid_vComplexD.h @@ -186,15 +186,6 @@ namespace Grid { Gextract(y,extracted); } - //////////////////////////////////////////////////////////////////////// - // FIXME: gonna remove these load/store, get, set, prefetch - //////////////////////////////////////////////////////////////////////// - void vload(zvec& a){ - this->v = a; - } - zvec vget(){ - return this->v ; - } /////////////////////// // Splat /////////////////////// diff --git a/Grid_vRealD.h b/Grid_vRealD.h index a5b59be3..c51e41cf 100644 --- a/Grid_vRealD.h +++ b/Grid_vRealD.h @@ -128,15 +128,6 @@ namespace Grid { Gextract(y,extracted); } - //////////////////////////////////////////////////////////////////////// - // FIXME: gonna remove these load/store, get, set, prefetch - //////////////////////////////////////////////////////////////////////// - void vload(dvec& a){ - this->v = a; - } - dvec vget(){ - return this->v ; - } friend inline void vsplat(vRealD &ret,double a){ #if defined (AVX1)|| defined (AVX2) diff --git a/TODO b/TODO index fb7d177a..5297e213 100644 --- a/TODO +++ b/TODO @@ -1,12 +1,12 @@ * FIXME audit -* Remove vload/store etc.. -* Replace vset with a call to merge. -* Replace vset with a call to merge. +* Replace vset with a call to merge.; +* care in Gmerge,Gextract over set. * Const audit * extract / merge extra implementation removal -* Conditional execution, where etc... -----DONE, simple test + +* Conditional execution, where etc... -----DONE, simple test * Integer relational support -----DONE * Coordinate information, integers etc... -----DONE * Integer type padding/union to vector. -----DONE @@ -22,18 +22,32 @@ -----Suggests generalised cartesian subblocking sums, returning modified grid. - Two classes of subset; -i) red black parit subsetting. - (pick checkerboard). +i) Two classes of subset; red black parity subsetting (pick checkerboard). + cartesian sub-block subsetting + ii) Need to be able to project one Grid to another Grid. + +Interface: (?) + +Lattice coarse_data SubBlockSum (GridBase *CoarseGrid, Lattice &fine_data) + +Operation ensure either: + rd[dim] divide rd[dim] fine_data + +This will give a distributed array over mpi ranks in a given dim IF coarse gd != 1 and _processors[d]>1 +Dimension can be *replicated* on all ranks in dimension. Need a "replicated" option on GridCartesian etc.. + +This will give "slice" summation and fourier projection assistance. + Generic concept is to subdivide (based on RD so applies to red/black or full). Return a type on SUB-grid from CellSum TOP-grid SUB-grid need not distribute but be replicated in some dims if that is how the cartesian communicator works. -iii) No general permutation map. +Instead of subsetting +iii) No general permutation map. * Consider switch std::vector to boost arrays. boost::multi_array A()... to replace multi1d, multi2d etc.. @@ -41,15 +55,12 @@ iii) No general permutation map. *? Cell definition <-> sliceSum. ? Replicated arrays. - - * Check for missing functionality - partially audited against QDP++ layout * Optimise the extract/merge SIMD routines; Azusa?? - -- I have collated into single location at least. - - -- Need to use _mm_*insert/extract routines. + - I have collated into single location at least. + - Need to use _mm_*insert/extract routines. * Conformable test in Cshift routines.