Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

What is the difference between these two, and under what circumstances would I want to implement them? Are there circumstances when I would only want 1 and not the other?

According to Wikipedia, hyperthreading is a proprietary Intel technology, whereas overclocking seems to apply to any CPU (Intel or other).

But still, they both seem like very similar ways of speeding up processing time on the same machine, and I wonder if they are synonyms or mutually-redundant.

share|improve this question
    
Hyperthreading is just Intel's brand name for Simultaneous Multithreading. Some IBM Power and MIPS family processors also implement it. en.wikipedia.org/wiki/Simultaneous_multithreading –  Dan Neely May 8 '13 at 19:24

2 Answers 2

up vote 7 down vote accepted

Two completely separate approaches to increase performance.

Overclocking is the process of tweaking motherboard (or graphics cards) settings to have the 'clock' run faster than the vendor certified. Can increase performance for single or multiple threaded scenarios. Also has risk because excess heat can be generated which can damage circuitry.

Hyperthreading is a way to present one core to the OS as if it were two cores (see What is hyper-threading and how does it work?). This allows the OS to run two threads on a single core, somewhat simultaneously. In reality the hypervisor causes the core to switch between threads very rapidly. This can increase performance in some multi-threaded scenarios. Also there is no risk to this approach like there is with overclocking. but as noted an Intel only solution.

They are not mutually exclusive. You can overclock a hyperthreaded CPU.

share|improve this answer
    
This sounds a lot like multitasking, except done under the control of a hardware/firmware scheduler, rather than the software scheduler that almost every operating system written in the past 30 years has. I guess the processor core duplicates some resources, like general registers and memory-management registers, to allow task switching to be faster than when done by a software scheduler. Or am I missing something? –  Scott May 8 '13 at 18:56
    
You say, “there is no risk to this approach …” I feel obligated to point out that Wikipedia says, “In May 2005 Colin Percival demonstrated that on the Pentium 4, a malicious thread can use a timing attack to monitor the memory access patterns of another thread with which it shares a cache, allowing the theft of cryptographic information.[ref] –  Scott May 8 '13 at 18:57
    
@Scott I said like there is with overclocking meaning the vendor has certified the chip to function with HT enabled. A failed chip should be covered under warranty unlike overclocking. –  Brad Patton May 8 '13 at 19:08
    
Yeah, I was splitting hairs. –  Scott May 8 '13 at 19:10
1  
Switching between threads is extremely expensive (need to restore entire register state, flush the entire pipeline, etc.) with respect to individual instructions, so I find your explanation hard to believe. My understanding of hyper-threading is that it's a clever way to allow a second thread to make use of a core's unused logical units (idle arithmetic units, etc). Does anyone know whose understanding is correct? –  BlueRaja May 8 '13 at 19:21

Hyperthreading (HT) is more threads. Overclocking is more processor speed.

Overclocking is more useful and practical for gaming applications as opposed to hyperthreading. HT is more useful for editing or rendering of say media files because it allows multiple pieces of software to run at the same processing speed instead of dividing.

Overclocking is better for games because it is one application running as opposed to multiple and can take advantage of the boosted performance of the processor.

share|improve this answer
2  
The "is one application running" is completely wrong. Games are (generally) highly multithreaded, and keep in mind that thread != process. –  Bakuriu May 8 '13 at 17:50
    
@Bakuriu except for graphics code, which is run on the GPU not the CPU, are still fairly lightly threaded. That's why mid range gaming system guides generally recommend buying a $200 quad core non-HT i5 processor instead of the $300 i7 with HT enabled. It's possible that the 8core CPU in the PS4 and XBox 720 (rumors only atm) might change the situation in a few years. –  Dan Neely May 8 '13 at 19:49
    
@Bakuriu: Very few PC games are multi-threaded. Some games (notably, Source Engine) will use a second thread for rendering tasks, but even that is not common. –  BlueRaja May 8 '13 at 21:25
    
@BlueRaja I believe any multiplayer game will have at least a thread listening & communicating with the server/other players and a thread for user's interaction(+ eventually rendering tasks or running AI of opponents). Also the server for such games probably use one thread per client. –  Bakuriu May 8 '13 at 21:41
    
Yes, I should have mentioned that. All networked software will have a listen-thread, but we usually ignore that because it spends so much of its time idle, you will see essentially zero performance improvement when it runs on a second core. –  BlueRaja May 8 '13 at 21:47

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.