Q: What have I achieved through turning on hyperthreading on an old P4? I have an old P4 3ghz with 3gb of ram. Ive rebuilt it with Windows Server 2008 to act as my test and continuous integration machine.
When I went into the BIOS to make it boot from the DVD to install Windows Server I turned on Hyperthreading.
What have I achieved through doing this?
Have I given myself 2 x 1.5ghz "cores" ?
The machine runs..


*

*SQL Server (Express) 

*IIS (inc. PHP5)

*Team City

*MySql

*Visual SVN Server


It is only used by me and a few test users who connect in now and again.
Would the machine run better leaving hyperthreading switched on or turning it off again?
The main priorities are fast compilation times on Team City.

A: The short answer is, "better processor efficiency." Hyperthread CPUs are logical views of the physical CPU. The main advantage to this is that the OS can maintain two instruction queues for the same actual CPU, which in turn provides a bit more thread-level parallelism as the actual CPU switches between servicing both instruction streams. When one logical CPU is busy waiting on some data from memory, the other logical CPU can get a few instruction cycles in. 
The P4-era CPUs had some pretty deep instruction pipelines, which meant that idling for a long data fetch slowed everything down. HT was a step towards improving the efficiency of this architecture by allowing, in essence, two instruction pipelines at certain stages. The newer Core-era processors have a much shorter pipeline so don't benefit as much from hyperthreading.
The actual improvement in overall performance varies widely, and in some cases may actually degrade performance. Server 2008 is HT-aware and also significantly SMP-safe in the critical areas where performance hits can be had by using HT, so you shouldn't see much if any degradation by using it. However, you may not notice any improvement either. In your case, I'd leave it on and see what happens; you can always turn it off again.

A: Basically, it was the forefather of multiple cores. In essence, the CPU would create more virtual CPUs. This only works if the OS supports it. 
Server 2008 R2 does support HT, so in theory, you should see some benefit. If you are running SQL, you could generate a gigantic query, and run it with and without HT and benchmark it from there.
You could also do some builds in Team City w/ HT on and off and see what your results are.
