Meeting notes are now at:
https://docs.google.com/document/d/1KpRGZHCWSMdo6lb6zXnGyK5A-evSoqapwm_ZE-ACK9Y/edit
Ask Alex to edit doc if you are not already on that list.


Goals: make release with some ok and stable stuff in it


Release (name = v2.3 or v2.2.1?)  ------------------------------------------

 - presumably a tag on GH, once done

 - 2.2 = 2.2.0dev0 never tagged. Last release was 2.1 in June 2022.

 - binaries available for users (requests eg #362 #285) -> place binaries for
   3 OSes somewhere on GH, eg "Releases" -> Assets.  [ Can automate?]
   Kill off my old binary webpage.


CI ...........

[CI/jenkins/ branch -> failing suddenly 11/22 - why? Robert fixed]

CI status runs only CPU tests:
    spreadtestall.sh  (has no math checking, a small perf test)
    basicpassfail{f} (exit code checks math)
    check_finufft.sh (both prec; has math chk + dumbinputs chk)
    CI doesn't run GPU!

CI improvements:
    run examples?
    fortran / other langs ? (complicated in CI...)

PR 254 - CI using cmake(ctest), builds on.
  - can OMP_NUM_THREADS be set in platform-indep way in ctest add_test() ? no
    DD says do in C++: https://github.com/flatironinstitute/finufft/pull/254
    Much easier, but needs a new cmd arg in the test/*.cpp executables

CI py had zero CPU time on windows -> div-by-0 error! (I fixed). why?


library.....

[ahb brought in PR 354 thread safety. Simplifies docs too.
 - jax waiting on this
 - ask Robert: unclear why some fftw_free or alloc are mutexed and not others?
 - ahb tested w/ all make tasks.]

GPU: PR 330: deal w/ cuda streams     - difficult for ahb to test
 - jax waiting on this
 - multicoil MRI users have opinions

remove obsolete bkw-compat (nufft_opts) ?


wrappers....

Libin to fix (1,M) vs (M,) Py issue #367

[Libin did PR for #359, but not closed? I tested py and closed]

pr 308 - no


docs....

RTD missing a Secret for webhook to tell GH; RTD won't give it :)
I changed repo to FI/finufft from ahbarnett/finufft  ... RTD webhook fails
(code 400). Resync fails.  Checked build (py 3.11) by hand is ok (1 min).
ask Dylan.


Notes for team......

  We need to keep docs/* and CHANGELOG up to date when make changes!

  who tests GPU code and adds more tests, CI?

  Please close an issue after you fix it



========= FUTURE DECISIONS =============

* Build:
  - keep makefile, yes, but slowly deprecate (eg Leslie/Alex rely on it) ?

* CI:
   complete rest of PR 254 for CI via cmake/ctest.

* CPU:
 * allow FFT switching (plus in cmake but not old makefile?)
  - see Reinecke pr 287. Benchmarking needed for us, including batched FFTW.
  - good: no fft plan needed.
  - bad: installation complexity :( (makefile and CMake)

* GPU:
 * Type 3 in GPU.
 * Paquiteau request for multi-coil MRI:
 having multiples plans with shared memory (e.g. for the NUpts locations and others parameters) could be an alternative ?
 https://github.com/flatironinstitute/finufft/pull/330
 * GPU interfaces to py
 * matlab par-toolbox gpuarray interfaces
 * Chaithya wants GPU cuda_array_interface for "scaling" ? PR 308

* explicit 1D slices for fftw, cuts 2d and 3d fft cost down (Reinecke idea).
  - #304 has Robert's start in 2D. Also Reinecke has in #287.
  - but: must work with batching too (batched 1d's with stride, ugh?).
   - nontrivial, benchmark -> a couple of days solid work.

* improved window shapes, more upsampfacs, like ducc0
  - several days work

* SIMD spread/interp/sort
  - significant work, but big potential gains

* Overall, consider joining XSDK via conforming to their good policies:
https://github.com/xsdk-project/xsdk-community-policies
Mandatory policies: we already conform to
M2, M4 (need NERSC etc CMake presets...), M7, M9, M10, M11, M14, M17 (I think).
I don't understand: M12.
Not relevant: M3.
Leaves to do:
M1 - spack installation route
M5 - reliable contact for dev team - easy
M8 - runtime API to get version # - easy
M13 - we don't really have a make install. But local locations correct.
M16 - our DEBUG is runtime, not a build option. Need add -g in a cmake task.
CI is not mentioned.

* source code formatting?

* see devel/TODO - and make this file current by thinking/killing issues there

* Marco plan April through Aug 2024



========= Random Questions ==========

#569 ? onedim_fseries_kernel  ... was not brought in

Can I kill .travis.yml ? (3 yrs old - what's it for?)
