Gary Kjos
garykjos at gmail.com
Fri Oct 18 08:12:25 CDT 2013
*Basically Hyperthreading allows your CPU to run two processes at the same time in each core. So you have double the logical processors.* *From the Wikipedia article* *http://en.wikipedia.org/wiki/Hyper-threading* *-----------------------------------------------* *Hyper-threading* (officially *Hyper-Threading Technology* or *HT Technology *, abbreviated *HTT* or *HT*) is Intel's<http://en.wikipedia.org/wiki/Intel> proprietary <http://en.wikipedia.org/wiki/Proprietary_hardware> simultaneous multithreading (SMT)<http://en.wikipedia.org/wiki/Simultaneous_multithreading>implementation used to improve parallelization <http://en.wikipedia.org/wiki/Parallel_computation> of computations (doing multiple tasks at once) performed on PC microprocessors. It first appeared in February 2002 on Xeon<http://en.wikipedia.org/wiki/Xeon>server processors <http://en.wikipedia.org/wiki/Central_processing_unit> and in November 2002 on Pentium 4 <http://en.wikipedia.org/wiki/Pentium_4> desktop CPUs.[1] <http://en.wikipedia.org/wiki/Hyper-threading#cite_note-1> Later, Intel included this technology in Itanium<http://en.wikipedia.org/wiki/Itanium>, Atom <http://en.wikipedia.org/wiki/Intel_Atom>, and Core 'i' Series<http://en.wikipedia.org/wiki/Intel_Core>CPUs, among others. For each processor core <http://en.wikipedia.org/wiki/Multi-core> that is physically present, the operating system<http://en.wikipedia.org/wiki/Operating_system>addresses two virtual or logical cores, and shares the workload between them when possible. The main function of hyper-threading is to decrease the number of dependent instructions on the pipeline. It takes advantage of superscalar <http://en.wikipedia.org/wiki/Superscalar> architecture (multiple instructions operating on separate data in parallel). They appear to the OS as two processors, thus the OS can schedule two processes at once. In addition two or more processes can use the same resources. If one process fails then the resources can be readily re-allocated. Hyper-threading requires not only that the operating system supports SMT<http://en.wikipedia.org/wiki/Simultaneous_multithreading>, but also that it be specifically optimized for HTT,[2]<http://en.wikipedia.org/wiki/Hyper-threading#cite_note-2>and Intel recommends disabling HTT when using operating systems that have not been optimized for this chip feature. Hyper-threading works by duplicating certain sections of the processor— those that store the architectural state<http://en.wikipedia.org/wiki/Architectural_state>— but not duplicating the main execution resources. This allows a hyper-threading processor to appear as the usual "physical" processor and an extra "logical" processor to the host operating system (HTT-unaware operating systems see two "physical" processors), allowing the operating system to schedule two threads or processes simultaneously and appropriately. When execution resources would not be used by the current task in a processor without hyper-threading, and especially when the processor is stalled, a hyper-threading equipped processor can use those execution resources to execute another scheduled task. (The processor may stall due to a cache miss<http://en.wikipedia.org/wiki/CPU_cache#Cache_miss>, branch misprediction <http://en.wikipedia.org/wiki/Branch_misprediction>, or data dependency <http://en.wikipedia.org/wiki/Data_dependency>.) This technology is transparent to operating systems and programs. The minimum that is required to take advantage of hyper-threading is symmetric multiprocessing <http://en.wikipedia.org/wiki/Symmetric_multiprocessing>(SMP) support in the operating system <http://en.wikipedia.org/wiki/Operating_system>, as the logical processors appear as standard separate processors. It is possible to optimize operating system behavior on multi-processor hyper-threading capable systems. For example, consider an SMP system with two physical processors that are both hyper-threaded (for a total of four logical processors). If the operating system's thread scheduler<http://en.wikipedia.org/wiki/Scheduling_%28computing%29>is unaware of hyper-threading it will treat all four logical processors the same. If only two threads are eligible to run, it might choose to schedule those threads on the two logical processors that happen to belong to the same physical processor; that processor would become extremely busy while the other would idle, leading to poorer performance than is possible with better scheduling. This problem can be avoided by improving the scheduler to treat logical processors differently from physical processors; in a sense, this is a limited form of the scheduler changes that are required for NUMA <http://en.wikipedia.org/wiki/Non-Uniform_Memory_Access> systems. On Fri, Oct 18, 2013 at 7:51 AM, Arthur Fuller <fuller.artful at gmail.com>wrote: > Belarc Advisor tells me my laptop contains a 2.5 Gz Intel Core i5-3210M > CPU. Beneath that it says Multi-core (2 total) > Hyper-threaded (4 total) > > Which I take to mean that it's a dual-core chip, but I don't understand > what the Hyper-threaded number means. Can someone clue me in? > > TIA, > > -- > Arthur > _______________________________________________ > dba-Tech mailing list > dba-Tech at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-tech > Website: http://www.databaseadvisors.com > -- Gary Kjos garykjos at gmail.com