brentp / smoove

structural variant calling and genotyping with existing tools, but, smoothly.
Apache License 2.0
237 stars 21 forks source link

lumpy_filter slower with 2 threads than 1 #180

Open jemunro opened 3 years ago

jemunro commented 3 years ago

The lumpy_filter command used by smoove call uses 2 threads, regardless of the --processes argument given to smoove call. Observing the running processes shows around 5-10% cpu utilisation. Testing the same lumpy_filter command outside of smooth with 1 thread instead of 2 yields ~100% cpu utilisation and much faster split and discordant bam generation.

Tested on both docker container 'quay.io/biocontainers/smoove:0.2.5--0' and a conda environment with smoove version 0.2.8.

brentp commented 3 years ago

This is surprising. Maybe it's due to your disk speed. And you verified that running the lumpy_filter command outside of smoove with 2 threads remains slow?

jemunro commented 3 years ago

Hi Brent,

Yes I verified by running the command outside of smoove.

I does look like it might be related to disk speed though, I tried copying the bams to a faster disk and the issue was no longer present (~160% cpu utilisation). Still with the slow disk it was definitely much faster to use only a single thread for lumpy_filter command.