This is a test version of Biostars. For the public version, visit https://www.biostars.org.
GATK: -nct and -nt

I am trying to understand GATK's parameters for parallelism:

-nt / --num_threads controls the number of data threads sent to the processor

-nct / --num_cpu_threads_per_data_thread controls the number of CPU threads allocated to each data thread

So, is the following example true?

-nt 8 means you use 8 cores

-nct 8 means you use 8 threads within a single core

Thanks!

gatk parallel

1 answer

Hmm that is not my understanding, but I could be reading the help docs wrong. I think -nct will still use the same number of CPU cores as if you were specifying -nt. So in your example, both would use 8 cores; it's just that those 8 cores would be controlled by a single "mother" thread. System memory (just think of this as RAM) is allocated per mother thread and is distributed differently than multi-threading/parallel usage of CPUs. So in your example, -nt 8 and -nct 8 both would allow GATK to use a maximum of 8 cores, but using the latter option means the operations are being handled by one mother thread which would be allocated an amount of memory equivalent to each thread if using the prior option.

I based my explanation based on this page, though I might have made it more confusing instead of more clear: https://gatkforums.broadinstitute.org/gatk/discussion/1975/how-can-i-use-parallelism-to-make-gatk-tools-run-faster

Log in to answer this question.