Intel® oneAPI HPC Toolkit
Get help with building, analyzing, optimizing, and scaling high-performance computing (HPC) applications.
The Intel sign-in experience has changed to support enhanced security controls. If you sign in, click here for more information.
2020 Discussions

What is hyperthreading? Is it related to SMP?


This question was asked during the webcast, An Introduction to High Performance Computing: Parallel Computing Issues. The presenter, Tom Lehmann, is theAdvanced Projects Manager for the Enterprise Systems Group training organization at Intel. Here is Tom's answer to the question.

Hyper-Threading Technologyon Intel processors allowsyou to use resources of the processors that aren't being used by the current thread of execution. In some respects it is symmetric multiprocessing, because you've got a virtual processor that's on the same bus as the "real" processor that's hosting it, and if you were to look at, for instance, a dual processor system that has hyperthreaded processors, in most cases programs will look at that and see four processors total. Sothe dual physical processor system becomes a four-processor system virtually. For most of the high-performance computing, hyperthreading may or may not be useful. It's strictly application-dependent, and under those circumstances you may find that for a given application, because of the way that the threads of execution hit the processors, that hyperthreading will actually give you the benefit that it does in many other applications such as just standalone desktop processing. In other cases, if it's a very fine-grained application and the threads of execution that are hitting the processor are almost identical, well, they're going after the same resources, so we don't get the benefits of hyperthreading. It's strictly an application-by-application situation, and you really do have to test it to see whether it's going to give you any significant increase.

0 Kudos
1 Reply

What is an SMP system?
SMP stands for symmetric multiprocessing. This is one form of building a multiprocessor computer where you have multiple processors that are on the same processor bus. This is often found in dual processors or quad-processor systems. If you have a sufficient number of engineering resources you can get upwards of 64 and sometimes even more processors in what is effectively the same bus. This can be an extremely good machine for the fine-grained applications because the communications time between processors is very, very small. In most cases, all the processors need to do to communicate with each other is to just pass a pointer to a common chunk of memory.