Giter VIP home page Giter VIP logo

Comments (16)

rietho avatar rietho commented on September 28, 2024 2

Thank you very much for the information. I'll look into that.

from ipo.

rietho avatar rietho commented on September 28, 2024 1

Ok, great. I'll keep BPPARAM to let the user choose. I won't call it BPPARAM_xcmsSet, to leave the option of using BiocParallel by IPO itself.

from ipo.

Gscorreia89 avatar Gscorreia89 commented on September 28, 2024 1

@rietho I fixed all my problems by applying a similar patch, so I am assuming it will work now. When I have some time I will test your update and let you know if all is sorted in the "official" patch.

from ipo.

spookysounds avatar spookysounds commented on September 28, 2024

Hello, I've also had this issue. Is there a work around for this issue?

from ipo.

rietho avatar rietho commented on September 28, 2024

As long as you are using the Bioconductor release versions, there should not be an issue.

from ipo.

jorainer avatar jorainer commented on September 28, 2024

yes and no - you will see warnings coming from the xcms methods if they are invoked with the nSlaves parameter.
You can still use parallel processing in xcms e.g. by

library(BiocParallel)
register(MulticoreParam(4))

All methods in xcms will then use these globally defined settings.

from ipo.

Gscorreia89 avatar Gscorreia89 commented on September 28, 2024

In my experience this definitely caused a problem (Linux operating system), as the number of nSlaves is deprecated error is thrown, the optimization seems to continue (not sure though...?!?) for a few more moments, but as soon as a processing finishes everything stops. In order to make IPO work with multicore I had to do a quick fix and modify the source code to remove all references to nSlaves passed to XCMS in the parameter object and function calls.

from ipo.

jorainer avatar jorainer commented on September 28, 2024

Passing the nSlaves parameter to xcms functions does not throw an error, but just a warning - that's also why the processing continues. To set the parallel processing just do:

library(BiocParallel)
register(MulticoreParam(3))

This sets the parallel processing globally to use 3 cores using the multicore package. Alternatively one could use SnowParam or SerialParam (to completely disable parallel processing).

from ipo.

Gscorreia89 avatar Gscorreia89 commented on September 28, 2024

Yep. But for some reason IPO cannot assemble the results when the warning is returned though - If I wait long enough for the processing to be finished, XCMS does the job normally, but the IPO object is never assembled and the figures for the DoE parameter search are never saved.

from ipo.

rietho avatar rietho commented on September 28, 2024

It's also not clear for me, why your IPO runs fail to run correctly.
This issue was not on my priority lists until now, but I'll definitely fix the nSlaves-parameter during the next weeks (sorry for the long wait).

from ipo.

rietho avatar rietho commented on September 28, 2024

@jotsetung I'm working on updating IPO to call xcms with BPPARAM instead of nSlaves. Therefore I'll introduce a new parameter BPPARAM_xcmsSet to optimizeXcmsSet (the params argument is not designed to hold an S4-class object).
Nevertheless I'll keep the nSlaves parameter as deprecated. On the devel-branch of xcms you are using NULL as default parameter for nSlaves, but on the current Bioconductor devel you are using 0 as default value. So I'm wondering, if 0 will stay the default for the Bioconductor 3.5 release?

from ipo.

jorainer avatar jorainer commented on September 28, 2024

actually, you would not really use the BPPARAM, the default for this parameter in xcms is bpparam() which just returns the globally defined parallel processing. The global settings could be set using the register method from BiocParallel:

register(MulticoreParam(4))

I think it does not really matter what value you use for nSlaves, I think 0 should be OK.

from ipo.

rietho avatar rietho commented on September 28, 2024

Doesn't BPPARAM exist to give the user the possibility to use BiocParallel without using global settings? I also chose bpparam() as default, so that global settings would still work.

from ipo.

jorainer avatar jorainer commented on September 28, 2024

Yes, it allows to change parallel processing settings for individual tasks - although I usually use the same settings across an analysis

from ipo.

rietho avatar rietho commented on September 28, 2024

see d2ae262

from ipo.

rietho avatar rietho commented on September 28, 2024

@Gscorreia89 Does this reslove your issues?

from ipo.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.