paint-brush
What is Hyperthreading and How Do You Enable It?by@khunshan
6,011 reads
6,011 reads

What is Hyperthreading and How Do You Enable It?

by Khunshan AhmadJune 27th, 2021
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

Hyperthreading is Intel’s proprietary technology where a single processor-core can work on not one, but multiple, sequences of instructions in parallel. Intel claims that hyperthreading increases CPU throughput by up to 30%. Multi-core processors like Intel i9 and Xeon are so fast that they have ample idle time when they are doing nothing but waiting for the next set of instructions. With more cores, chipmakers have added more cores to improve the multithreading experience. At the software level, software can provide multitasking experiences to the users.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - What is Hyperthreading and How Do You Enable It?
Khunshan Ahmad HackerNoon profile picture

Hyperthreading is Intel’s proprietary technology where a single processor-core can work on not one, but multiple, sequences of instructions in parallel. It is a hardware-level feature done by efficiently dividing the tasks by the processor so it can execute multiple threads simultaneously in each core. 

In other words, hyperthreading will create logical/virtual cores for the operating system. So a quad-core will be perceived as an 8 core processor by the operating system. Each core can independently interrupt or execute the instructions. 

Hyperthreading can efficiently divide a physical into two logical cores by the time of writing, and the processing is performed on two threads at the same time. However, hyperthreading is only beneficial for performing certain tasks. 

Image: Intel

Hyperthreading vs Multithreading vs Multitasking vs Multicore

Intel introduced hyperthreading back in 2002 but it has recently gained popularity because of the changing demands of customers. High-end processors like Intel i9 and Xeon are so fast that they have ample idle time when they are doing nothing but waiting for the next set of instructions.

Think about a warehouse, where a lifter needs 2 minutes to pick up and drop packages to the conveyor belt. On the other hand, the receiver needs 1 minute to pick up the goods and send them off. The receiver sits idle for 1 minute until the next package arrives. The idle time could be reduced if we double the number of lifters.

The modern processors are sometimes even faster than an OS can perform a context switch, increasing idle time of cores. With cores becoming more efficient they can do more. That is why the idea of a further level of split in the shape of hyperthreading has become a need. By adding logical cores the idle time of a core could be reduced.

Hyperthreading under the hood are hardware threads, and the goal is to increase performance of the CPU by reducing waste time. In the case of multithreading, which is done at software level, multiple sequences of instructions are given to the CPU to process. With multithreading capabilities, modern operating systems can provide multitasking experiences to the users at the software level.

Here, it is important to know that we perceive multitasking on a computer as our processor performing multiple tasks at the same time, like running multiple Chrome tabs with VLC playing in the background. However, it is actually the processor jumping between all the tasks so quickly that it feels like it is performing them at the same time. So a single-core processor can provide multithreading and multitasking if the operating system allows just like a multi-core processor. 

Furthermore, for a processor to not get blocked on a one big task, the operating system takes the responsibility to split tasks into multiple subtasks and feed them as instructions in a timely fashion known as context switching

An operating system, aka OS, can create threads at OS level, regardless if the hardware is single-core, multicore or hyperthreaded. At the hardware level to improve the multithreading experience, chipmakers have added more cores, which can execute multiple instructions in parallel on different cores. A multi-core processor like quad-core can simultaneously perform 4x processing in general than a single-core processor - many other factors can affect the actual performance. With hyperthreading, the OS would see 8 logical cores but in actual the power will stay at 4x. 

How can I benefit from it?

It is not straightforward to define who benefits from hyperthreading because when it divides the power of a core for two tasks, it certainly slows down the speed for one. It is not very useful if you are someone who has everyday tasks relying on basic single-threaded apps. If you are a streamer or a multitasker, then hyperthreading is a huge plus for you. Intel claims that hyperthreading increases CPU throughput by up to 30%. 

Some processes that require multiple threads to run at the same time include 3D rendering, video encoding, photo manipulation, etc. These are some highly professional tasks therefore performed on stronger systems with an i7 processor or better. Therefore, hyperthreading is beneficial if done on such a strong system. Intel is now supporting hyperthreading technology for the latest Intel Core vPro processors, the Intel Core processors, the Intel Core M processors, and the Intel Xeon processors

Should I choose Hyperthreading over more Cores?

The number of cores in your CPU defines the hardware processing power of the system. You should always prioritize having more cores in your system instead of the option for hyperthreading. However, if you are stuck between two systems with the same number of cores but only one of them offers hyperthreading, then go with the one that does offer hyperthreading. 

The Intel Core i9 processor offers hyperthreading and it is one of the fastest processors to do so. Hyperthreading is a technology that only benefits people in a specific domain. Intel also maintains a list of hyperthreading supported processors.

Traditionally, gamers and video editors used to increase the clock speeds that could make the processor execute more instructions in a given time. But as we now have high frequency and multiple cores, hyperthreading can process a much larger set of data. A hyperthreaded computer can handle a live Twitch broadcast and a multi-player online game simultaneously better than a non-hyperthreaded processor.

Hyperthreading: How to enable or disable it?

It’s a hardware-level feature so you cannot do much from the OS or some app. In order to access the option for switching the hyperthreading on or off on your PC, you need to enter the BIOS settings. BIOS refers to the Basic Input/Output System, a set of settings where you can work on connections of physical components. 

To access the BIOS settings, start your system you’ll find the option to enter your BIOS settings by pressing the F2, F11, Del, Esc, or any other button, it may vary depending on the manufacturer like Lenovo, HP, or Dell. The key name is often displayed during the boot process.

Once you have entered your BIOS settings you will now find a menu with a lot of options. In this menu choose the option that says “Processors” and in that toggle “Hyper-Threading” to Enable or Disable using arrow keys. A dialog box will open up offering you to turn hyperthreading on or off. 

Image: IBM

We hope this article can certainly help you decide whether or not you should be looking for a processor that supports Hyperthreading. If you still have complications, Share your views in the HackerNoon Community

Want to keep up with all the latest tech topics? Subscribe to our newsletter in the footer below.