1
0
mirror of https://github.com/paboyle/Grid.git synced 2025-06-11 03:46:55 +01:00

"where" and integer comparisons logic implemented for conditional

assignment. LatticeCoordinate helper to get global (reduced) coordinate.

Some more work of similar type perhaps needed, but the bulk of the required
structure for masked array assignment is now in place.
This commit is contained in:
Peter Boyle
2015-04-09 08:06:03 +02:00
parent 4666acfbb0
commit 8f5281563e
17 changed files with 1420 additions and 240 deletions

67
TODO
View File

@ -1,29 +1,68 @@
* FIXME audit
* Remove vload/store etc..
* Replace vset with a call to merge.
* Replace vset with a call to merge.
* Const audit
* extract / merge extra implementation removal
* Conditional execution Subset, where etc...
* Coordinate information, integers etc...
* Integer type padding/union to vector.
* LatticeCoordinate[mu]
* Conditional execution, where etc... -----DONE, simple test
* Integer relational support -----DONE
* Coordinate information, integers etc... -----DONE
* Integer type padding/union to vector. -----DONE
* LatticeCoordinate[mu] -----DONE
* Optimise the extract/merge SIMD routines
* Broadcast, reduction tests.
* Stencil operator support -----Initial thoughts
* Subset support, slice sums etc... -----Only need slice sum?
-----Generic cartesian subslicing?
-----Array ranges / boost extents?
-----Multigrid grid transferral.
-----Suggests generalised cartesian subblocking
sums, returning modified grid.
Two classes of subset;
i) red black parit subsetting.
(pick checkerboard).
ii) Need to be able to project one Grid to another Grid.
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.
* Consider switch std::vector to boost arrays.
boost::multi_array<type, 3> A()... to replace multi1d, multi2d etc..
*? 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.
* Conformable test in Cshift routines.
* Gamma/Dirac structures
* Fourspin, two spin project
* Broadcast, reduction tests. innerProduct, localInnerProduct
* QDP++ regression suite and comparative benchmark
* NERSC Lattice loading, plaquette test
* Conformable test in Cshift routines.
* Gamma/Dirac structures
* Fourspin, two spin project
* Stencil operator support
* Check for missing functionality
* I/O support
- MPI IO?