pinellolab / dictys

Context specific and dynamic gene regulatory network reconstruction and analysis
GNU Affero General Public License v3.0
104 stars 13 forks source link

Help with makefiles parameters #11

Closed JasonOSS closed 1 year ago

JasonOSS commented 1 year ago

Hello,

I would like to optimize the parameters to run Dictys.

Currently, I would like to run the dynamic GRN inference, I have 4 samples aggregated with 10000 cells each.

Here are the characteristics of the system I am using:

AMD 3995WX processor 64-cores, 128 threads, and a base clock of 2.7GHz 8x 128 GB RDIMM = 1TB of RAM 4x RTX A6000 Nvidia GPUs (each 2 linked by an NVlink)

Can you please help me to understand how I can choose the optimal number of "NTH" and number of jobs to run ?

Thanks

lingfeiwang commented 1 year ago

Hi JasonOSS,

Thanks for the question.

If you want to use (up to) all threads, you can pretty much leave the settings as default as in the tutorial doc/tutorials/short-multiome or doc/tutorials/full-skin. For the CPU computation part, this includes -j 32 for the number of parallel processes, and each process has up to NTH=4 threads by default, so the total thread count is 32*4=128. For the GPU computation part, it runs a single process on the first GPU with "DEVICE": "cuda:0" and -J 1, which should be sufficient. Assuming your 40000 cells contain 10 cell types evenly and you infer one network each, the dictys_helper network_inference.sh step should finish in around a day.

The same parameter would work for dynamic networks. Just expect it to take longer. Meanwhile, there are more parameters to adjust, such as the number of cells to use for each network and amount of overlap between cell windows. We are adding this documentation into the tutorials. If you wish to improve network quality beyond using the default parameters, just let us know so we can prioritize this documentation.

Lingfei

JasonOSS commented 1 year ago

Thanks Lingfei for this detailed answer.

I will run the dynamic network inference and I will be happy to let you know if the default parameters worked for me.

Jason