Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
29427 Discussions

/Qparallel uses only 2 Cores on an 8 Core machine

onkelhotte
New Contributor II
1,199 Views

Hi there,

my colleague is on a construction site installing one of his programs on the clients machine.

The clients machine has8 Cores. His program is being compiled with the /Qparallel option, but the program uses only 2 Coreswith 100%.

So my question is, does the /Qparallel option "only" optimizes for 2 Cores? Would an OMP approach do better?

I dont know what the clients machine really is (Intel or AMD), but I asked my colleague. Because he cannot go online very often I havent got an answer yet. He usesVisual Studio 2008 9.0.21022.8 RTM andIntel Fortan Compiler 10.1.4159.2008 (seems likethe integration version).

Thanks in advance,
Markus

0 Kudos
7 Replies
bendel_boy1
Beginner
1,199 Views

What version of Windows?

I think thatt he NT -> XP family allowed up to two processors as standard, and you had to move to server editions or pay extrat to access more core. Vista I believe supported four cores as standard, with 'higher' levels of Vista being required to access more cores.

0 Kudos
onkelhotte
New Contributor II
1,199 Views
Quoting bendel boy

What version of Windows?

I think thatt he NT -> XP family allowed up to two processors as standard, and you had to move to server editions or pay extrat to access more core. Vista I believe supported four cores as standard, with 'higher' levels of Vista being required to access more cores.


Thanks for that input, I sent my colleague an e-mail, what OS is used there.

I keep you informed.

Markus

0 Kudos
onkelhotte
New Contributor II
1,199 Views

The machine uses 2 Xeon E7340 CPUswith 32 GB RAM and Windows 2003 Server SP2 as OS.

Markus

0 Kudos
TimP
Honored Contributor III
1,199 Views
/Qparallel is simply automatic application of OpenMP. Most likely reasons for running 2 threads would be that the controlling environment variable is set to 2 threads, or that the loop chosen for parallelization has count 2. In the latter case, if OpenMP collapse were suitable, it could help to increase the number of threads.
0 Kudos
onkelhotte
New Contributor II
1,199 Views
Quoting tim18
/Qparallel is simply automatic application of OpenMP. Most likely reasons for running 2 threads would be that the controlling environment variable is set to 2 threads, or that the loop chosen for parallelization has count 2. In the latter case, if OpenMP collapse were suitable, it could help to increase the number of threads.

Hi Tim, thanks for the answer.

What do you mean with "controlling environment variable"? Is there some Windows Variable / Definition / Registry entry to set this?

Markus

0 Kudos
TimP
Honored Contributor III
1,199 Views
When OMP_NUM_THREADS is set, that should take priority. I believe the ifort online doc attempts to describe how the choice is made when OMP_NUM_THREADS is not set.
0 Kudos
Steven_L_Intel1
Employee
1,199 Views
By default, the maximum number of threads is taken from the number the processor is capable of (including Hyperthreading). It's possible that the problem size is not large enough to split across 8 cores.
0 Kudos
Reply