-
Notifications
You must be signed in to change notification settings - Fork 49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.
Already on GitHub? Sign in to your account
No parallelization in tune.spls #214
Comments
Thank you for your post @EmileFaure. What you've noted is totally correct. After I spent a bit of time exploring the source code, I've realised that this issue a bit larger than just a lack of parallelisation in As far as it should concern you, I will attempt to rectify the lack of any parallelisation in |
fix: implemented BiocParallel functionality into `tune.spls()` via restructuring of the main portion of the function. bplapply() iterates over all pairs of input keepX/Y so only reduces runtime for long lists of test.keepX/Y
refactor: previous PR left duplicate function used for development. this is rectified and more comments are added
test: added test cases for `tune.spls()`. These are just placeholders as more robust testing criteria needs to be established as well as this document will be fully updated as part of PR #206
G'day @EmileFaure. Thought I'd let you know that I've implemented a fix for this issue and that it is accessible on branch issue-214. Please let me know if there are any issues you run into |
tests: updated tests to assess actual values alongside RNG control of parallel function calls.
fix: implemented BiocParallel functionality into `tune.spls()` via restructuring of the main portion of the function. bplapply() iterates over all pairs of input keepX/Y so only reduces runtime for long lists of test.keepX/Y
refactor: previous PR left duplicate function used for development. this is rectified and more comments are added
test: added test cases for `tune.spls()`. These are just placeholders as more robust testing criteria needs to be established as well as this document will be fully updated as part of PR #206
tests: updated tests to assess actual values alongside RNG control of parallel function calls.
docs: updated `tune.Rd` file with cpus -> BPPARAM shift
fix: implemented BiocParallel functionality into `tune.spls()` via restructuring of the main portion of the function. bplapply() iterates over all pairs of input keepX/Y so only reduces runtime for long lists of test.keepX/Y
refactor: previous PR left duplicate function used for development. this is rectified and more comments are added
test: added test cases for `tune.spls()`. These are just placeholders as more robust testing criteria needs to be established as well as this document will be fully updated as part of PR #206
tests: updated tests to assess actual values alongside RNG control of parallel function calls.
docs: updated `tune.Rd` file with cpus -> BPPARAM shift
fix: implemented BiocParallel functionality into `tune.spls()` via restructuring of the main portion of the function. bplapply() iterates over all pairs of input keepX/Y so only reduces runtime for long lists of test.keepX/Y refactor: previous PR left duplicate function used for development. this is rectified and more comments are added test: added test cases for `tune.spls()`. These are just placeholders as more robust testing criteria needs to be established as well as this document will be fully updated as part of PR #206 tests: updated tests to assess actual values alongside RNG control of parallel function calls. refactor: replaced all calls to `cpus` to `BPPARAM` in `tune()` docs: updated `tune.Rd` file with cpus -> BPPARAM shift
馃悶 Describe the bug:
tune.spls is not using multicore processing even with BPPARAM set correctly.
馃攳 reprex results from reproducible example including sessioninfo():
Monitoring of this code from the package vignette:
--> Only one CPU is used
--> Multiple CPUs are used in parallel.
Session info:
馃 Expected behavior:
tune.spls should be parallelized over the workers registered in the BiocParallel environment.
馃挕 Possible solution:
In source code of tune.spca, the call of iterations over the keeping of X is made through bplapply:
test.keepX.cors <- bplapply(X=all.keepX, FUN=iter_keepX, BPPARAM = BPPARAM)
In the one of tune.spls, there seem to be no use of any of the basic functions of BiocParallel. It looks to me as the presence of the BiocParallel backend is only playing a role on whether the progress bar is printed or not.
If I'm wrong, do you have any idea of why this could happen on my system ?
Thank you very much !
The text was updated successfully, but these errors were encountered: