Simultaneous multithreading

You can improve the directory server performance if you run the server on a system that can run multiple threads to process an instruction.

Simultaneous multithreading (SMT) is a processor design that combines hardware multithreading with superscalar processor technology. Simultaneous multithreading can use multiple threads to issue instructions each cycle. In certain hardware multithreaded architectures only a single hardware context, or thread, is active on any cycle. SMT supports all thread contexts to simultaneously compete and share processor resources. Unlike conventional superscalar processors, which suffer from a lack of per-thread instruction-level parallelism, simultaneous multithreading uses multiple threads to compensate for low single-thread instruction-level parallelism. Simultaneous multithreading use multiple threads to run different instructions in the same clock cycle by using the process units that the first thread left.

For simultaneous multithreading, the changes that are required to the basic processor architecture are:

  • The ability to fetch instructions from multiple threads in a cycle.
  • A larger register file to hold data from multiple threads.

The performance benefits of a system that can run simultaneous multithreading are:

  • Higher instruction throughput
  • Programs are faster for various workloads that include commercial databases, web servers, and scientific applications in both multi-programmed and parallel environments