Laphnn work - lattice/quda GitHub Wiki

QUDA To do

  • add support for passing gauge field without anti periodic factors included and add them in QUDA (optional?)
  • quibble: in performGaugeSmearQuda, if you don't ask for topo charge to be computing, it still outputs it, but output is nonsense
  • eigensolveQuda on smeared config
    • expose boolean to eig pram struct whether to use smeared or not
    • then in set Dirac param can set if needed to use smeared or not
  • plaqQuda on smeared config
  • need to set block_size = 1 to download the first evector
  • kappa normalization for 3-d Laplace is borked
  • routine should return a bool to indicate if converged or not??
  • eigenvalues returned in eigensolveQuda are not correct for trlm3d: only nev values, not one for each time: in EigenSolver::cleanUpEigensolver, there is a line evals.resize(n_conv);
  • eigenvalues are not in ascending order on each time (I think time slices that converged earlier are ordered, but the last several that converged last are not)
  • get tuning working for time slices split across ranks
    • in the short term switch off autotuning at the point of divergence and reenable when converged
  • a little clean up of parameter checking (checks fail for fields not needed, like inv_type)
  • will need an applyLaphPhaseConvention() to the Laph eigenvectors
    -- the 0th color element for site (0,0,0) on each time slice is rephased to be real and positive (rephasing each ev is tantamount to changing the noise) -- this is already written for the CPU so this is low priority
  • the number of restarts with the quda version is significantly higher than the current chroma_laph version: try to understand why (on E250, chroma_laph takes just a handful, quda takes over 100)
  • timing goal: E250 96^3 x 192 lattice, 768 eigvec:
    -- summit CPU solves: MPI ranks = 1536 Total wall time 7781 secs -- time on summit just to READ the evs from file is 320 seconds for MPI ranks = 384.
  • Dirac-Pauli doesn't with the outer solver