lnccbrown / lnccbrown/ssm-simulators
Investigate faster rng generators
- Dominant language
- Jupyter Notebook
- Stars
- 24
- Forks
- 18
- Avg merge
- 1d 14h
- Merged PRs (30d)
- 9
Description
We are using custom random number generators in cython (transform from uniform), and there are certainly still better / faster ways of getting random streams of normal variates to drive the diffusion process.
Specific avenues that I can come up with (that can be turned into sub-issues):
- [ ] Exchange for the [Ziggurat algorithm](https://en.wikipedia.org/wiki/Ziggurat_algorithm). This has implementations in C, which I failed to link so far. This would provide an immediate speedup of ~50%.
- [ ] Utilize pre-computed pools of random variates + uniform indexing
- [ ] Parallelize random number generation (and the forward propagation of the diffusion), on the GPU
@cpaniaguam (for visibility)
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by locating the custom random-number generators in the Cython code and measure their current speed for normal variates used by the diffusion process. Compare the proposed Ziggurat, pre-computed pool, and GPU approaches, then define a selected implementation and benchmark-based completion criterion; no specific file or test is named in the issue.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- performance
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100