Taking Advantage of Hyper-Threading

Ever since we first started benchmarking Intel's Hyper-Threading technology we realized that it's going to be quite some time before the general population sees a performance increase from the technology. As a brief recap, remember that Hyper-Threading allows multiple threads to be executed on a single CPU at the same time by banking on the threads using different execution units on the CPU itself. This works out perfectly if you happen to be running two applications that are dramatically different in the type of operations they're performing or inherently multithreaded apps; for a lot of today's single-threaded (or sequential) applications, what ends up happening the most is a lot of inefficiency introduced as two threads contend for the same execution resources.

We've already seen in our own internal tests that enabling Hyper-Threading can significantly reduce performance in most everyday applications such as Word, Excel or 3D Games by a significant amount (5 - 20%). At the same time we're well aware that Intel will be introducing Hyper-Threading on the desktop before the end of this year, the question remains - how will Intel convince end users to enable the feature if all it does currently is reduce performance?

One potential solution is an idea known as Pseudo-Multithreading; what pseudo-multithreading allows is for a thread to be generated while executing a single threaded application that can be used to speculatively fetch data that will eventually be needed. One of the biggest performance limitations in today's systems is the speed of main memory; if a piece of data is not found in cache then performance clearly suffers as the CPU must go to much slower main memory to get the data it needs. The concept of pseudo-multithreading calls for the creation of a helper thread whose job is to go out and speculatively fetch data that may be needed by the parent thread being executed; that data would then be pulled into the CPU's cache and potentially increase performance by avoiding cache misses.

These helper threads would require some software interaction to be created, their benefit is that they can be integrated into currently available applications - the only question that remains is what is the best way for calling them. All that's necessary is that a small piece of code is inserted into the application that would trigger one of these helper threads; one of the options that Intel is currently considering is releasing an application that would execute during the installation of your applications and insert the appropriate triggers in the applications' executables.

It's good to hear that there's something Intel has up their sleeves but we're still wondering exactly when they'll be introducing these things. We already know when Hyper-Threading is coming to the desktop but unless the feature is able to offer a compelling performance increase initially, it could get a bad rap that would hurt the launch considerably.

The Future of CPUs - Dual Threshold Voltage? More on Multicore CPUs
Comments Locked

0 Comments

View All Comments

Log in

Don't have an account? Sign up now