Simultaneous multithreading (also hyperthreading) is a method to improve hardware parallelisation, especially for instruction execution.

The idea is that for two similar tasks (i.e., one thread adding, another multiplying), hyperthreading recognises that one thread’s resources will be idle for some functionality. SMT aims to better use these resources all at once.