1
0
mirror of https://github.com/paboyle/Grid.git synced 2024-09-20 17:25:37 +01:00
Grid/TODO

152 lines
5.0 KiB
Plaintext
Raw Normal View History

* - BinaryWriter, TextWriter etc...
- use protocol buffers? replace xmlReader/Writer ec..
- Binary use htonll, htonl
2015-04-18 18:36:48 +01:00
2015-05-11 09:44:50 +01:00
*** Hacks and bug fixes to clean up
* Had to hack assignment to 1.0 in the tests/Grid_gamma test
2015-05-11 09:44:50 +01:00
* norm2l is a hack. figure out syntax error and make this norm2 c.f. tests/Grid_gamma.cc
* Reduce implemention is poor ; need threaded reductions; OMP isn't able to do it for generic objects.
2015-05-11 09:44:50 +01:00
* Bug in SeedFixedIntegers gives same output on each site.
* Bug in RNG with complex numbers ; only filling real values; need helper function -- DONE
* Conformable test in Cshift routines.
*** Functionality
* Implement where to take template scheme.
2015-05-11 09:44:50 +01:00
* Command line args for geometry, simd, etc. layout. Is it necessary to have
user pass these? Is this a QCD specific?
* Strong test for norm2, conj and all primitive types. -- Grid_simd test is almost there
2015-05-10 15:32:56 +01:00
* Expression template engine:
- Audit
- Introduce base clase for Grid Tensors.
- Introduce norm2 unary op.
- Introduce conversion automatic from expression to Lattice<vobj>
2015-05-10 15:13:50 +01:00
* 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 > > >
2015-04-25 13:04:26 +01:00
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.
2015-04-19 14:55:16 +01:00
2015-04-25 13:04:26 +01:00
* 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?]
2015-04-25 13:04:26 +01:00
* TaProj
2015-04-18 18:36:48 +01:00
2015-05-10 15:13:50 +01:00
* FFTnD ?
2015-04-18 18:36:48 +01:00
2015-04-25 13:04:26 +01:00
* Parallel MPI2 IO
2015-05-10 15:13:50 +01:00
Plaquette checks into nersc reader.
2015-04-25 13:04:26 +01:00
* rb4d support for 5th dimension in Mobius.
2015-04-18 18:36:48 +01:00
2015-04-25 13:04:26 +01:00
* Check for missing functionality - partially audited against QDP++ layout
2015-05-10 15:13:50 +01:00
// Base class to share common code between vRealF, VComplexF etc...
//
// 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.
2015-04-25 13:04:26 +01:00
Algorithms
* LinearOperator
* LinearSolver
* Polynomial
* Eigen
* Pcg
* fPcg
* MCR
* HDCG
2015-04-25 13:04:26 +01:00
* etc..
2015-04-18 18:36:48 +01:00
2015-04-14 22:40:40 +01:00
AUDITS:
2015-04-18 14:36:01 +01:00
* FIXME audit
2015-04-14 22:40:40 +01:00
* const audit
2015-04-10 04:24:01 +01:00
* Replace vset with a call to merge.;
2015-04-14 20:25:51 +01:00
* care in Gmerge,Gextract over vset .
* extract / merge extra implementation removal
======================================================================================================
FUNCTIONALITY:
2015-05-10 15:13:50 +01:00
* Stencil -- DONE
* Test infrastructure -- DONE
* Fourspin, two spin project --- DONE
2015-04-24 22:56:37 +01:00
* 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
2015-04-25 13:04:26 +01:00
* Twospin/Fourspin/Gamma/Proj/Recon ----- 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