Why is hyperthreading useful
Ideally, the programmer should test his or her application on several different microprocessors with several different data sets and with hyperthreading turned on and off. This is a large burden indeed to put on software developers, and very few programmers are willing to spend time and money on testing how hyperthreading affects their application. If it turns out that hyperthreading is not good for a particular application then comes the next problem of how to turn it off.
Telling the user to turn off hyperthreading in the BIOS setup is not an option. The average user may not have the skills to do so; the feature may not be supported in the BIOS; or it may be that hyperthreading is good for one program and bad for another program running on the same computer.
The programmer has to put the "avoid hyperthreading" feature into the program. First the program has to detect whether the computer it is running on has hyperthreading or not. Later versions of Windows have system functions that can give this information. In Linux you have to read a configuration file. If hyperthreading is detected then lock the process to use the even-numbered logical processors only.
This will make one of the two threads in each processor core idle so that there is no contention for resources. Unfortunately, you cannot prevent the operating system from using the idle threads for something else.
There is no way to tell the microprocessor to give one of the two threads in a core higher priority than another. Sometimes it happens that the operating system lets two threads with very different priority run in the same processor core. This has the unfortunate consequence that the low-priority thread steals resources from the high-priority thread.
I have seen this happening even with the new Windows 7. It is the responsibility of the operating system to avoid putting threads with different priority into the same core. But unfortunately, operating system designers haven't fully solved this problem yet. What the application programmer needs is a system call that tells the operating system that "This application wants to run no more than one thread in each core and I don't want to share any core with any other processes".
Unfortunately, current operating systems have no such system call to my knowledge. Other microprocessor vendors use hyperthreading as well. In fact, there are rumors that AMD will use hyperthreading in some of their processors in the future. Hyperthreading does indeed give a measurable advantage that shows in benchmark tests.
This is a strong sales argument that may convince the confused consumer. But the microprocessor designer should also take into account that few applications are able to handle hyperthreading optimally. Today, quad-core CPUs are pretty much the mainstream configuration. It basically means that one CPU core can work on two problems at the same time.
Just that it can ensure all its capacity is used by dealing with multiple simpler problems at once. To your operating system, each real silicon CPU core looks like two, so it feeds each one work as if they were separate.
This is another question that can be a little complicated but is actually pretty simple when you break it down. Given that they are close to each other in single-thread, single core performance. Because the quad-core CPU has more physical processing hardware.
Now our question really has to do with the software that you want to run. Simply because none of the processing capacity is being wasted and the component is working near its full potential as much of the time as possible.
Traditionally operations such as CPU 3D rendering, video encoding, and photo manipulation will create as many threads as your poor CPU can take. In other words, many modern professional applications are thread-hungry. This is why Hyperthreading has been restricted to professional-tier CPUs such as the i7 and up.
Samsung Galaxy S20 Ultra. Xiaomi Mi 10i. Samsung Galaxy Note20 Ultra 5G. Motorola Edge Plus. Samsung Galaxy A Apple iPhone Redmi Note 8. Samsung Galaxy S20 Plus. OPPO F Apple iPhone SE Vivo S1 Pro. Realme 6. Apple iPhone XR. Realme Q3t. Nokia X Vivo Y15s Vivo V23e. ZTE Blade L9. Infinix Note 11s. Oppo A16K.
Tecno Camon 18i. Allow Notifications. You have already subscribed.
0コメント