Spectrum Software
spacer
Industrial Strength Simulation
select:

divider

 

 

divider

 

Micro-Cap and Hyperthread Technology

 

Intel has recently incorporated a new technology called hyperthreading into their latest CPU offerings. It was initially introduced for the 3.1GHz Pentium 4 processor and will probably become fairly standard for business computers in the future.

Hyperthreading technology acts much like a multiple processor system. In fact, as far as the Windows operating system is concerned, there are two processors in the computer. Each application loaded is assigned a thread through the processor. The advantage to this technique is that multiple programs can be running at the same time without as much system degradation since one application isn't dominating the CPU's processing time. This can be quite useful if you have programs running in the background such as a virus scanner or when Micro-Cap is performing a long simulation.

While this technology will improve the stability and performance of the system when more than one program is running, only applications that have been written to take advantage of hyperthreading will see their individual performance improve when compared to a single processor computer.

The main disadvantage of the hyperthreading technology is that it still has only a single floating point unit. Applications that use highly intensive floating point operations such as Micro-Cap would see little to no benefit from optimizing for hyperthreading due to the floating point unit bottleneck. If two applications are running that both use the floating point unit extensively then much of the benefit of hyperthreading is lost. The optimum situation is to have an application such as Micro-Cap running along with an application such as Microsoft Word so that the floating point unit can be devoted entirely to Micro-Cap. The hyperthreading benefit will still be available when running Word at the same time.

A question that arises from all this is if Micro-Cap is running by itself, does hyperthreading help or hinder the speed of a simulation? With hyperthreading enabled, when you go to the Windows Task Manager and view the Processes that are running, the MC7.EXE process will appear to be taking up only 50% of the CPU time even though the other 50% is only being used by the System Idle Process. On a standard single processor, when Micro-Cap is running an analysis, it will typically take up to 99% of the CPU time when running by itself. At first instance, this would seem to be a large detriment to running Micro-Cap with hyperthreading as it appears to use only half of the resources of the CPU then it would if hyperthreading was disabled.

In order to test this, we ran a section of our trusty benchmarks on a new Dell Dimension 8300 which contains the hyperthreading technology. The benchmarks were run twice, once with hyperthreading enabled and a second time when hyperthreading was disabled. Hyperthreading can be enabled/disabled in the BIOS screen of the system. This is the screen that can be accessed usually by hitting either the F2 or Delete key when the system first boots up. The following table shows a comparison of a sample of the circuits in the benchmarks along with the time it took for this entire section of the benchmarks to run. Note that the circuits shown in this sampling have been modified so that they are not a direct time comparison with the circuits of the same name that are distributed with Micro-Cap.

Circuit Disabled Enabled
UC1845_BOOST.CIR 10.657s 10.719s
S_BOOST_VM.CIR 1.234s 1.234s
CORE2.CIR 3.203s 3.187s
S_BUCK_VM.CIR 11.938s 11.469s
S_BUCK_SYN.CIR 1.141s 1.156s
S_BUCK_SYN2.CIR 5.391s 5.453s
APC.CIR 4.015s 4.156s
S_BUCKBOOST_.CIR 1.656s 1.593s
S_FLYBACK_CM.CIR 2.844s 2.937s
S_FLYBACK_VM.CIR 2.531s 2.532s
THERMAL1.CIR 5.437s 5.406s
S_FORWARD_VM.CIR 3.719s 3.735s
S_FULL_CM.CIR 8.484s 8.532s
S_FULL_VM.CIR 2.813s 2.750s
S_FULL_XFMR.CIR 1.906s 1.891s
S_HALF_VM.CIR 2.344s 2.391s
S_PUSH_VM.CIR 3.172s 3.079s
S_PUSH_CM.CIR 1.360s 1.343s
S_2FOR_CM.CIR 2.906s 2.937s
S_2FLY_CM.CIR 1.329s 1.328s
     
All 227.966s 231.429s
 
As can be seen in the above table, having hyperthreading enabled or disabled makes very little difference in the time of the runs. The Disabled column displays the run time of the circuit when hyperthreading is off, and the Enabled column displays the run time when hyperthreading is on. The difference between the total benchmark run times of the two states is about 1.5%. This falls within the error tolerance when running the benchmark on the same system from one day to the next.

Our recommendation is to leave the hyperthreading enabled. There is very little, if any, penalty in having it enabled, and it is a useful feature when running multiple applications.

 
Return to the main Newsletter page