PR #8123 closed #2980 by making fixed-seed method="fft" runs byte-deterministic. It did not make method="exact" or method="barnes_hut" deterministic; both can still produce different results with the same random_state because their GPU implementations use nondeterministic parallel operations.
We should decide how to handle the remaining algorithms:
- Characterize reproducibility, performance, embedding quality, and distinct use cases for
exact and barnes_hut.
- Estimate the cost and performance impact of making each implementation deterministic.
- Review whether maintaining all three algorithms is still justified now that FFT is the default and the only deterministic implementation.
- Consider deprecating and eventually removing
exact and/or barnes_hut as an alternative to adding deterministic execution paths.
- If an algorithm remains supported, document its reproducibility guarantees and add appropriate coverage.
- If deprecation is selected, define the migration guidance, warning period, and removal release.
Follow-up to #2980 and #8123.
PR #8123 closed #2980 by making fixed-seed
method="fft"runs byte-deterministic. It did not makemethod="exact"ormethod="barnes_hut"deterministic; both can still produce different results with the samerandom_statebecause their GPU implementations use nondeterministic parallel operations.We should decide how to handle the remaining algorithms:
exactandbarnes_hut.exactand/orbarnes_hutas an alternative to adding deterministic execution paths.Follow-up to #2980 and #8123.