-
Notifications
You must be signed in to change notification settings - Fork 54
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’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Extending BPPARAM
usage to all tune()
variants
#216
Comments
@Max-Bladen any updates, would love to use this feature |
Restarting work on this issue - First, looking at tune.spls. Testing on local computer comparing serial computation versus parallel with 4 workers shows that this function takes BPPARAM args and uses them to speed up processing times both when used independently as -> Nothing needs to be done for
|
--> Need to update this so runs using
|
--> Nothing needs to be done for
|
After some initial exploration as part of rectifying problems noted in Issue #214, the inconsistency of the
BiocParallel
usage across all thetune()
variants was noticed. In my exploration of this wider issue, I have come to the follow conclusions:tune
tune.block.splsda
for some reason.tune()
still takescpus
. It handles the subsequent functions as such:tune.mint.splsda()
- not passed any parallelisation parameters due to the forced use of LOOCV. Hence, it cannot be parallelised. Nothing to change heretune.rcc()
- not passed any parallelisation parameters due to the lack of any implementation of parallelisation within this function. Oncetune.rcc()
can handle multiple CPU usage, this should be adjusted. Therefore, this will be left for nowtune.pca()
- not passed any parallelisation parameters due to this function not involving any repeated cross validation. It merely calculates the explained variance per component. Nothing to change heretune.spca()
- not passed any parallelisation parameters despite the function havingBiocParallel
implementation. Need changes hereBPPARAM
and notcpus
tune.splsda()
- passedcpus
directly from input. Need changes herecpus
and has noBiocParallel
implementation. Uses its own methodology, involvingmakePSOCKcluster()
/makeForkCluster()
. Need to do more exploration heretune.spls()
- prior to function call,BPPARAM
object generated usingcpus
to controlworkers
count. This BiocParallel object is passed to the function Need changes hereBPPARAM
and notcpus
tune.splslevel()
- not passed any parallelisation parameters due to a lack of parallelisation implementation. Probably not worth spending time on, but if so then need changes here*tune.block.splsda
tune()
for some reason. It does takeBPPARAM
rather thancpus
and applies it properlyThese conclusions were drawn from looking at the source code as well as running these function while observing any errors (eg
unused argument (BPPARAM = param)
) AND runtime when using 1 vs 14 cores.Note to self: when creating a new branch from this issue, fork it from branch
issue-214
to carry over changes totune.spls()
The text was updated successfully, but these errors were encountered: