Simultaneous Multi-Threading (SMT): Simultaneous Multi-Threading (SMT) allows for maximally efficient use of execution blocks inside a given core for workloads with more than one thread or process. It works by dynamically scheduling each thread to execute on internal resources when the other threads running on the same core would otherwise leave those resources idle, increasing overall processor resource utilization and therefore overall system throughput.
In effect, SMT allows programs that would otherwise be unable to saturate a core (due to internal barriers or inefficient coding) to be combined in order to saturate the core's computing resources. As such, it is mainly useful for compute-heavy tasks that do not already saturate other key metrics of the processor, such as cache bandwidth.
Wikipedia has an excellent article on SMT for those wishing to know more about how it works.