The threads you create with a threading package are
which map onto the
of the hardware. For computations
that do not wait on external devices, highest efficiency usually occurs
when there is exactly one running logical thread per physical thread.
Otherwise, there can be inefficiencies from the mismatch
occurs when there are not enough running logical
threads to keep the physical threads working.
when there are more running logical threads than physical threads.
Oversubscription usually leads to
execution of logical
threads, which incurs overheads as discussed in Appendix A,
. The scheduler tries to avoid oversubscription, by having
one logical thread per physical thread, and mapping tasks to logical
threads, in a way that tolerates interference by other threads from the
same or other processes.