12
votes

Is there a way to set number of threads in OpenMP parallel for region based on the value of a variable? Initially for the whole application number of threads = nofCores. On my AMD FX 8350, nofCores =8. For this area if the variable is 3 then I only need 3 threads. If variable>cores then number of threads should remain equal to nofCores.

I do not want to set the number of threads globally for all the application. Just for this specific parallel loop.

Sorry if this is a naive question, but I am a newbie in OpenMP.

1
make sure to look into the documentation; it's not that massive.Sebastian Mach

1 Answers

25
votes

Sure .. just tack this on to your parallel for directive:

#pragma parallel for num_threads(variable)
for( ... )