Skip to content

Generate independent noise for parallel EEMD trials - #189

Open
antonsoo wants to merge 1 commit into
laszukdawid:masterfrom
antonsoo:fix/eemd-independent-parallel-noise
Open

antonsoo wants to merge 1 commit into
laszukdawid:masterfrom
antonsoo:fix/eemd-independent-parallel-noise

Conversation

@antonsoo

Copy link
Copy Markdown

Parallel EEMD passes a bound method containing the same RandomState to each pool task. Workers therefore repeat noise draws: with eight trials and two processes, all eight first IMFs are identical. The parent RNG also remains unchanged. This reduces the effective ensemble and can report almost zero ensemble spread.

Generate the noise in the parent and pass each draw to the worker. Ordered imap streams the draws without allocating the entire noise ensemble upfront and preserves the serial trial order. Update the EEMD reproducibility documentation; CEEMDAN keeps its existing guidance.

Validation:

  • New regressions cover normal/uniform noise and one, two or three workers. All six cases fail before and pass afterward, checking full ensemble outputs, per-trial IMFs, distinct trials and the next RNG draw.
  • On recorded speech and guitar, all 96 cases now exactly match independently computed first-IMF trials, ensemble means and standard deviations. These cover fork, spawn, forkserver, two trial counts and two worker counts. Previously only 1-5 of the requested 8 or 19 first IMFs were distinct. All 16 serial controls remain byte-identical.
  • The full suite runs 117 tests successfully with 21 optional tests skipped on Python 3.12 and 3.14. Black 25.11 and isort pass. Sphinx builds with the same missing optional BEMD dependency warning as unmodified master.

This validates the sampled ensemble and its reported spread, not the quality of a particular signal decomposition.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant