Q. With hyper-threading is there a main thread and a smaller thread?
A. Hyper-threading enables two streams of execution on a single processor core and you often hear numbers such as a 30% performance improvement which leads to the belief that there is the main thread on the core and then a little "mini-me" thread which has a smaller capability. This is not true. With hyper-threading a single core has some components duplicated enabling two sets of logical state per core. Typically during a thread of execution the core is not fully utilized for various reasons such as a particular instruction stream only uses specific types of ALU leaving others unused and more commonly a cache miss which causes the thread execution to stall while data is fetched. With hyper-threading and the two sets of logical state if one thread is stalled because of a cache miss the chances are good the other thread can execute. This therefore keeps the core better utilized and improves the overall performance and this is where the 30% performance gain comes from. Notice that both threads are equal and which does more work just depends on how busy they are kept, the type of computations, frequency of cache misses etc.