Hyperthreading question for CPU intensive tasks

Page 2 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.

Lorne

Senior member
Feb 5, 2001
873
1
76
HT can add more threading but also add more traffic across the memory bandwidth, If your just moving data fast over processing then a system can choke also, This is why the LinEx testing gives lower scores in HT then non HT.

In some cases you can also dellegate with your licensor if the licened agreement is miss advised due to ether technoligy changes or bad wording.

We had a peace of old software that license for one CPU, They did alow for HT but when we upgraded the system to a 4core CPU and HT it wouldnt run correctly, We got the extra license from them for free because we were only running one CPU which is what there contract agreement.
I belive some people went through this with MS with earlyer versions of server software.
 

Ratman6161

Senior member
Mar 21, 2008
616
75
91
What kind of licensing system would you have them institute? The UNICEF kind?

With Microsoft server products, they count sockets.If you put Sql server
On a dual socket system with 6 core cups it counts as two. Same model with VMware.
 

Idontcare

Elite Member
Oct 10, 1999
21,110
64
91
With Microsoft server products, they count sockets.If you put Sql server
On a dual socket system with 6 core cups it counts as two. Same model with VMware.
I'm guessing that is a legacy set by virtue of the core count equalling the socket count way back when? So whether you specified two cores or two sockets, it meant the same thing?

Then along came multi-core CPUs and the MS licensing guys probably wish they could change that to a "per core" model now :D
 

386DX

Member
Feb 11, 2010
197
0
0
With Microsoft server products, they count sockets.If you put Sql server
On a dual socket system with 6 core cups it counts as two. Same model with VMware.

You're partially correct. Microsoft has changed there licensing structure depending on what version of the products you are running. If you are talking about running SQL 2012 server on a Windows Server 2008 machine you actually have to pay for multiple licenses, one for the Operating System and one for SQL.

Windows Server 2008 you pay per Processor. A dual socket system with 6 core CPU would require two licenses.

Ontop of that SQL Server also requires a licenses. SQL you have a choice between licensing "per core" or CAL (Client Access Licenses). In your example if you license per core you'll need to pay for 12 licenses. Per Core price is around $7,000.

CAL is a different form of licensing where you pay per user. This is only available for internal use servers (non internet) where you know how many people may use the software, typically MS bases that on the number of employees at the site. A CAL licenses typically runs between $250-$300 per license so depending on how many employees its sometimes cheaper then paying "per core".
 

BrightCandle

Diamond Member
Mar 15, 2007
4,762
0
76
When windows schedules threads it will do so first to already awake cores and then to other primary cores by default. If you look into performance monitor with low threaded activities you will see every other core asleep. So in summary don't worry about it, your os already knows about ht and you need to do nothing to make it perform optimally.
 

Blastman

Golden Member
Oct 21, 1999
1,758
0
76
When windows schedules threads it will do so first to already awake cores and then to other primary cores by default. If you look into performance monitor with low threaded activities you will see every other core asleep. So in summary don't worry about it, your os already knows about ht and you need to do nothing to make it perform optimally.

This.^

On an i3 (2C/4T) processor, if a program is using 2 CPU’s, the OS (since XP) will allocate the processes to the 2 cores first and not 1C/2T. So HT (hyperthreading) will go unused even if it is enabled. You shouldn’t have to disable HT or have to set the affinity of the program to the 2 cores.
 

IntelUser2000

Elite Member
Oct 14, 2003
8,686
3,787
136
If I only have a license for 2 CPUs at a certain time, would I have a performance benefit from disabling hyperthreading? If so, would I get the same or a similar benefit by somehow setting the CPU affinity to only use the two real cores vs the hyperthreading cores?

Are you sure the licensing is based on threads, not cores? Because if its based on the latter, it won't matter whether you run it at 2 cores only or 2 cores with Hyperthreading. The latter is what most software licenses use I think.
 
Dec 30, 2004
12,553
2
76
I'm guessing that is a legacy set by virtue of the core count equalling the socket count way back when? So whether you specified two cores or two sockets, it meant the same thing?

Then along came multi-core CPUs and the MS licensing guys probably wish they could change that to a "per core" model now :D

From what I understand they chose per-socket, looked at changing it to per-core, but kept it on purpose, because going per-core would have meant everyone with a dual core CPU (such as home users and entry-level developers) would have had to buy enterprise level, and they didn't want that. Per-socket is an effective means of getting the "serious guys" to shell out.