cancel
Showing results for 
Search instead for 
Did you mean: 

Are hyperthreaded processors counted for intra-query parallelism?

Breck_Carter
Participant
960

What is the explanation for this apparent contradiction?

The Help says "hyperthreaded processors are not counted for intra-query parallelism" but I regularly see 8 INT:Exchange connections (and 8 subtrees in the plans) when intra-query parallelism is in full swing on a chips like the Intel i7-4790 which have 4 hyperthreaded cores.

Help: Parallelism in Queries

https://help.sap.com/viewer/e38b2f6217f24bdb90a3ff8ae57b1dd5/17.0/en-US/819041ab6ce2101488d8f69523dc...

"However, hyperthreaded processors are not counted for intra-query parallelism so you must divide the value of NumLogicalProcessorsUsed by two if the computer is hyperthreaded."

Intel® Core™ i7-4790 Processor

https://ark.intel.com/content/www/us/en/ark/products/80806/intel-core-i7-4790-processor-8m-cache-up-...

# of Cores                         4
# of Threads                       8
Intel® Hyper-Threading Technology  Yes
SELECT PROPERTY ( 'NumLogicalProcessorsUsed' );
PROPERTY('NumLogicalProcessorsUsed')
'8'

Accepted Solutions (1)

Accepted Solutions (1)

VolkerBarth
Contributor

We both obviously agree that the doc's statemements on licensing and processors are difficult to understand... That being said, I guess the "not counting" really relates to the fact that a hyperthreading core is counted as one core w.r.t. licensing, see the following quote from the "per seat" license type:

If a core contains multiple threads, all threads of that core might be used.

Your sample machine has 4 cores and is licensed to use all 8 hyperthreads on those cores, so it is also allowed to use all 8 hyperthreads for 8 parallel operators. Since only four cores are officially licensed, you can still use 8 threads, so in my understanding, the phrase should be understood as "the (additional) hyperthreads are not counted".


From a practical point of view: As your machine does use 8 logical processors according to the server properties, why should it not use all of those for parallel tasks (unless you want to limit the max_query_tasks option)...

Answers (0)