Closed ahmedasadik closed 2 years ago
Hi @ahmedasadik, Thanks for writing to us. The newer version of CARNIVAL (will be submitted this week) won't support multithreading by itself, but if you use e.g. cplex solver, it natively supports multithreading and we would rely on this. How big is the problem that you want to solve with CARNIVAL?
I have many single-cell and bulk expression datasets that I need to use carnival for. So doing things in parallel is extremely important. Unfortunately, I don't have access to cplex and they refused an academic license because my institute is not a university.
At the current implementation that you use, the easiest way to handle it is sending each sample to a separate cluster node (through .sh or snakemake scripts). Just be sure that you setup a different working directory for each run, so the files won't be accidentally rewritten. We are working on making default pipelining for running CARNIVAL on many samples simultaneously, but this will be public only in a couple of months.
OK, but would it be possible to pass a "threads" and "randomseed" options to CBC, by modifying the carnivaloptions sent to the CBC command line? That way it would be much faster than it curretly is, especially that I built my CBC solver by enabling multithreading. Otherwise, I would appreciate if you could tell me how to export the LP file send to the solver and then I can bash that in parallel. I would appreciate your help very much.
If you wait for until the end of the next week, we can add this option to cbc indeed. We are currently wrapping up the next bioconductor release, to add another option for a solver won't be an issue. Also, in the new release it will be easy to save and collect the LP files. Can you make a new issue with suggesting options for cbc? I will later add a branch to it and you will get notified when it is done.
Thank you very much. I really appreciate it.
see #62
Dear Carnival Developers, First, thank you for the great tool, it really is amazing.
My issue, now, is trying to run Carnival in parallel, but that is not working. I made a toy example to run it but it is not working.
This is the error that I get when running it.
I looked at the one of the development branches, and it seems that this was somehow addressed with parallelIdx1, but it always has a fixed value of 1 and there is no argument in the runCarnival function to change 'condition' that would then send off different arguments to the cbc solver instead of always looking for the 'results_cbc_1_1.txt' file which is already in use by the first node.
Thanks,