スレッド数 【number of threads】 論理プロセッサ数 / 論理コア数
概要
スレッド数(number of threads)とは、一つのCPU(MPU/マイクロプロセッサ)が同時に実行状態に置くことができるプログラムの数。最大でこの数だけ並行してプログラムを稼働させることができる。コア数と同数の製品と2倍の製品がある。「スレッド」(thread)は独立した一本の命令の流れで、一つのプログラムが一つのスレッドとなる場合と、プログラム内部で複数のスレッドが枝分かれして並列に実行される場合がある。CPUが複数のスレッドを同時に実行することができることを「マルチスレッド」(multi-threading)という。
CPUが命令を実行する際、一つの命令が使用する回路は限られているため、使われていない回路を利用してもう一つの別の命令を並行して実行する高速化テクニックがある。これにより、一つのプロセッサあるいはプロセッサコアが同時に2つの命令列を並行して実行することができるようになる。
これを一般的には「同時マルチスレッディング」(SMT:Simultaneous Multi-Threading)というが、米インテル(Intel)社は自社製品に内蔵された同様の技術を「ハイパースレッディング」(HT:Hyper-Threading)と呼んでいる。
SMTに対応したプロセッサコアは同時に2つの命令の流れを実行できるため、プロセッサ全体が実行できるスレッド数はコア数の2倍となる。ただし、SMTによる命令実行は完全に並列に行うことはできない(どちらの命令も使用したい回路で待ち時間が生じる)ため、実効的な性能向上は最大で2~3割程度と言われる。
x86/x64系プロセッサの場合、HT非対応製品では2コアなら2スレッド、4コアなら4スレッドを実行できるが、対応製品では2コアで4スレッド、4コアで8スレッドの実行が可能となる。HT機能はBIOS/UEFI設定でオフにすることもでき、その場合は非対応製品と同様にコア数とスレッド数は等しくなる。
(2021.12.7更新)