HyperSMPOn This PageOverviewHow It Works Measurements Downloads OverviewSmall tool for measuring efficiency of hyperthreaded CPUs. It was not designed for comparing different machines, the purpose of this tool is to show that efficiency of using hyperthreading depends significantly on program executed. In general, accessing shared resources in parallel may significantly slow down system performance. For example, reading 2 files from single non-SSD physical volume (shared resource) gives time even larger then time required to read these files in series. How It WorksAs hyperthreaded CPU is not the same as CPU with several cores, threads have more things they must share when running on different virtual CPUs. By executing tasks with different load patterns HyperSMP shows that on hyperthreaded systems speed of one virtual CPU depends not only on load, but also on load pattern of another virtual CPU. Effect, which is less applicable for CPUs with several separated cores. MeasurementsTwo dll modules available for measuring - float.dll and int.dll. These modules represent different load patterns: floating point operations and integer operations correspodningly. Launching HyperSMP console (from command prompt): > hypersmp.exe float.dll int.dll
Intel Atom N280 (hyperthreading enabled) @ 1.66 GHz, Windows 7 Professional As we can see, CPU with 2 separate cores behaves almost like 2 different CPUs for memory-free task patterns (our tasks are only do calculations without referencing memory). And for hyperthreading, speedup is not only much less than number of virtual CPUs but also depends significantly on task pattern. DownloadsArchives below are free for personal non-commercial use.Source code (DDK) src.zip 10 Kb. Windows XP (i386, 32-bit): fre_wxp_x86_en.zip 25 Kb. Copyright © 2006-2010 Vasily Tarasov.
| ||||||||||