|
|
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.
|
|
|
|
|