mirror of
https://github.com/paboyle/Grid.git
synced 2024-11-10 07:55:35 +00:00
b4a570477c
every routine. Collapse(2) is now working under clang-omp++.
162 lines
5.9 KiB
Plaintext
162 lines
5.9 KiB
Plaintext
================================================================
|
|
*** Hacks and bug fixes to clean up and Audits
|
|
================================================================
|
|
* Base class to share common code between vRealF, VComplexF etc...
|
|
- Performance check on Guido's reimplementation strategy
|
|
|
|
* FIXME audit
|
|
* const audit
|
|
|
|
* Replace vset with a call to merge.;
|
|
* care in Gmerge,Gextract over vset .
|
|
* extract / merge extra implementation removal
|
|
|
|
* Strong test for norm2, conj and all primitive types. -- tests/Grid_simd.cc is almost there
|
|
|
|
================================================================
|
|
*** New Functionality
|
|
================================================================
|
|
|
|
* Implement where within expression template scheme.
|
|
|
|
* - BinaryWriter, TextWriter etc...
|
|
- use protocol buffers? replace xmlReader/Writer ec..
|
|
- Binary use htonll, htonl
|
|
|
|
* Bug in SeedFixedIntegers gave same output on each site. -- Think I fixed but NOT checked for sure
|
|
Implement and use lattice IO to verify this.
|
|
|
|
* Expression template engine: -- DONE
|
|
-- Norm2(expression) problem: introduce norm2 unary op, or Introduce conversion automatic from expression to Lattice<vobj>
|
|
|
|
* CovariantShift support -----Use a class to store gauge field? (parallel transport?)
|
|
|
|
** Make the Tensor types and Complex etc... play more nicely.
|
|
- TensorRemove is a hack, come up with a long term rationalised approach to Complex vs. Scalar<Scalar<Scalar<Complex > > >
|
|
QDP forces use of "toDouble" to get back to non tensor scalar. This role is presently taken TensorRemove, but I
|
|
want to introduce a syntax that does not require this.
|
|
- Reductions that contract indices on a site should always demote the tensor structure.
|
|
norm2(), innerProduct.
|
|
- Result of Sum(), SliceSum // spatial sums
|
|
trace, traceIndex etc.. do not.
|
|
- problem arises because "trace" returns Lattice<TComplex> moving everything down to Scalar,
|
|
and then Sum and SliceSum to not remove the Scalars. This would be fixed if we
|
|
template specialize the scalar scalar scalar sum and SliceSum, on the basis of being
|
|
pure scalar.
|
|
|
|
* Optimise the extract/merge SIMD routines; Azusa??
|
|
- I have collated into single location at least.
|
|
- Need to use _mm_*insert/extract routines.
|
|
|
|
* Flavour matrices?
|
|
* Pauli, SU subgroup, etc..
|
|
* su3 exponentiation & log etc.. [Jamie's code?]
|
|
* TaProj
|
|
* FFTnD ?
|
|
|
|
* Parallel io improvements
|
|
- optional parallel MPI2 IO
|
|
- move Plaquette and link trace checks into nersc reader from the Grid_nersc_io.cc test.
|
|
|
|
* rb4d support for 5th dimension in Mobius.
|
|
|
|
* Check for missing functionality - partially audited against QDP++ layout
|
|
// Unary functions
|
|
// cos,sin, tan, acos, asin, cosh, acosh, tanh, sinh, // Scalar<vReal> only arg
|
|
// exp, log, sqrt, fabs
|
|
// transposeColor, transposeSpin,
|
|
// adjColor, adjSpin,
|
|
// copyMask.
|
|
// localMaxAbs
|
|
// Fourier transform equivalent.
|
|
|
|
Actions -- coherent framework for implementing actions and their forces.
|
|
* Fermion
|
|
- Wilson
|
|
- Clover
|
|
- DomainWall
|
|
- Mobius
|
|
- z-Mobius
|
|
|
|
* Gauge
|
|
- Wilson, symanzik, iwasaki
|
|
|
|
Algorithms
|
|
* LinearOperator
|
|
* LinearSolver
|
|
* Polynomial
|
|
* Eigen
|
|
* Pcg
|
|
* Adef2
|
|
* DeflCG
|
|
* fPcg
|
|
* MCR
|
|
* HDCG
|
|
* HMC, Heatbath
|
|
* etc..
|
|
|
|
======================================================================================================
|
|
FUNCTIONALITY: it pleases me to keep track of things I have done (keeps sane)
|
|
======================================================================================================
|
|
|
|
* Command line args for geometry, simd, etc. layout. Is it necessary to have -- DONE
|
|
user pass these? Is this a QCD specific?
|
|
|
|
* Stencil -- DONE
|
|
* Test infrastructure -- DONE
|
|
* Fourspin, two spin project --- DONE
|
|
* Dirac Gamma/Dirac structures ---- DONE
|
|
* 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
|
|
* expose traceIndex, peekIndex, transposeIndex etc at the Lattice Level -- DONE
|
|
* TraceColor, TraceSpin. ----- DONE (traceIndex<1>,traceIndex<2>, transposeIndex<1>,transposeIndex<2>)
|
|
----- Implement mapping between traceColour and traceSpin and traceIndex<1/2>.
|
|
* How to do U[mu] ... lorentz part of type structure or not. more like chroma if not. -- DONE
|
|
|
|
* Twospin/Fourspin/Gamma/Proj/Recon ----- DONE
|
|
* norm2l is a hack. figure out syntax error and make this norm2 c.f. tests/Grid_gamma.cc -- DONE
|
|
|
|
* subdirs lib, tests ?? ----- DONE
|
|
- lib/math
|
|
- lib/cartesian
|
|
- lib/cshift
|
|
- lib/stencil
|
|
- lib/communicator
|
|
- lib/algorithms
|
|
- lib/qcd
|
|
future
|
|
- lib/io/ -- GridLog, GridIn, GridErr, GridDebug, GridMessage
|
|
- lib/qcd/actions
|
|
- lib/qcd/measurements
|
|
|
|
* Subset support, slice sums etc... -----DONE
|
|
sliceSum(orthog)
|
|
sum
|
|
innerProduct
|
|
norm2
|
|
|
|
* Subgrid Transferral -----DONE
|
|
subBlock (coarseLattice,fineLattice)
|
|
projectBlockBasis
|
|
promoteBlockBasis
|
|
|
|
* random number generation ----- DONE
|
|
|
|
* Broadcast, reduction tests. innerProduct, localInnerProduct --- DONE
|
|
|
|
* I/O support
|
|
* NERSC Lattice loading, plaquette test ------- DONE single node
|
|
|
|
* Controling std::cout ------- DONE
|
|
|
|
* Had to hack assignment to 1.0 in the tests/Grid_gamma test -- DONE
|
|
* Reduce implemention is poor ; need threaded reductions; OMP isn't able to do it for generic objects. -- DONE
|
|
* Bug in RNG with complex numbers ; only filling real values; need helper function -- DONE
|
|
* Conformable test in Cshift routines. -- none needed ; there is only one
|
|
* Conformable testing in expression templates -- DONE (recursive)
|
|
|
|
|