marbl / Winnowmap

Long read / genome alignment software
Other
250 stars 22 forks source link

Hard coded OMP threads? #30

Open johannesgeibel opened 2 years ago

johannesgeibel commented 2 years ago

Hi, I need to run winnowmap for several samples in parallel. For this I limited the number of threads to 10 via the -t parameter to avoid interference between the jobs. However, each job then used up to 30 threads. So I went through the log files and realized that -t obviously only affects pthreads, but omp_threads are additionally set to 3:

[M::main] Version: 2.03, pthreads=10, omp_threads=3

I tried to limit this by explicitely exporting OMP_NUM_THREADS=1, but it did not have an effect. So I searched this repository for omp and found a hard coded part in /src/minimap.h:

image

Is there any way to get around this hard coding? If not, is it possible to mention in the README that winnowmap uses three times more threads than expected?

Thanks, Johannes

Jesson-mark commented 2 years ago

Agree with @johannesgeibel. I have encountered the same questions. My aligning programs by winnowmap always run computing nodes too busy.

Is there any better way to change this situation?

By the way, what is the default pthreads of -t? Is it possible to write the default pthreads in software usage?

Thanks, Jesson-mark

CanWood commented 1 year ago

Hi folks,

I'm chiming in as an HPC admin. Our users are keen to use winnowmap on our infrastructure but are finding that they can not reliably limit their CPU use to work within their requested resources. Any movement on this issue would be greatly appreciated.

Thanks!