lnccbrown / lnccbrown/ssm-simulators

Investigate faster rng generators

Open
#89 0 comments 0 reactions 0 assignees View on GitHub
linear-ssm-simulators
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.