学ぶ喜び、やり遂げる達成感を皆様と共に デジタルの仕事を通じてに人々に幸せを
12/06/2025 4-2-3.用語(RAID,ストレージ設計)
11/06/2025 4-2.2. 最近のCPU、コア、スレッド
04/06/2025 6-2-2.コミュ力を学ぶ2(AIと人との違い)
04/06/2025 6-2-1.コミュ力を学ぶ1(AIと人の違い)
03/06/2025 1-3-3.昔、スループットといえば・・・
03/06/2025 1-3-1.“スループット”の意味するものは1つ?
03/06/2025 1-3-2.誤解されやすい言葉・多義的な用語
05/02/2025 5-1-7.「生成AI」の進化(つづき2)
18/02/2025 1-2-5.PMOの未来とPMTools
18/02/2025 1-2-4.戦略的PMO
18/02/2025 1-2-3.QMSの変遷から学ぶこと
18/02/2025 1-2-2.PMOの役割と誤解
18/02/2025 1-2-1.PMとPMOの違い
06/02/2025 1-1-3.「アジャイル開発」のドキュメント
05/02/2025 5-1-6.「生成AI」の進化(つづき1)
05/02/2025 5-1-5.「生成AI」の進化
24/12/2024 5-1-4.AIは道具ではなくパートナー
03/12/2024 4-1-2.Linuxあれこれ
19/12/2024 4-1-1.ITインフラの変遷
04/02/2025 4-2-1.コンピュータの基本構造
19/12/2024 7-1-2.令和の働き方と人事評価の未来
19/12/2024 7-1-1.人材管理の変遷と現代の課題
19/12/2024 6-1-2.AIと倫理について
19/12/2024 6-1-1.倫理感について
24/12/2024 5-1-3.ChatGPTとClaudeの違い
03/12/2024 5-1-2.機械学習と深層学習の違い
03/12/2024 5-1-1.AI(人工知能)とは?
19/12/2024 3-1-2.1990年頃の話(プログラム基本2)
19/12/2024 3-1-1.1990年頃の話(プログラム基本)
19/12/2024 2-1-2.PMToolsについて
19/12/2024 2-1-1.PMToolBoxとは
19/12/2024 1-1-2.初めてのプロジェクト計画書
19/12/2024 1-1-1.知らぬ間にPMになっていた日
4.ITインフラ編 / 4-2.コンピュータの基本構造 / 4-2.2. 最近のCPU、コア、スレッド
2025-06-11
最近のパソコンやサーバに搭載されているCPUを見ると、「12コア24スレッド」 「8コア16スレッド」 などといった表記をよく見かけます。
この 「コア」 や 「スレッド」 とは何なのか?そして、なぜスレッド数がコア数の2倍になっているのか?ここでは、CPU設計の観点に加え、Linux OSのスケジューリングの仕組みも少し交えながら、これらの用語の違いや意味をわかりやすく解説してみたいと思います。
昔のCPUは、ひとつのチップに演算ユニット(ALUやFPUなど)を1つだけ持っていました。いわゆる「シングルコアCPU」です。
その後、「デュアルコア」「クアッドコア」という言葉が登場し、1つのCPUチップに複数の演算ユニット(≒コア)を持つ設計が一般的になりました。つまり「12コアCPU」というのは、CPUチップ内に12個の物理的な演算ユニットが入っているという意味です。これらは、それぞれが完全に独立した処理を同時に行うことができます。
最近のCPUでは 「ハイパースレッディング(HT)」 「Simultaneous Multi-Threading(SMT)」 という技術が使われていることが多く、1つのコアで2つのスレッドを同時に実行できる仕組みを採用しています。
たとえば:
この 「スレッド」 は、CPU内部の命令デコーダやレジスタなどの一部を複製することで、1つのコアが2つの処理を同時に捌けるようにする技術です。ただし、2つのスレッドが使えるとはいえ、演算器(ALUなど)は共有のため、処理能力が ちょうど 2倍 になるわけではありません。
Linux上で cat /proc/cpuinfo を実行すると、「processor: 0」 「processor: 1」… という風に、CPUの一覧が表示されます。
ここに表示されているのは 「論理CPU(≒スレッド数)」 です。つまり、上記の12コア24スレッドのCPUなら、24個のCPUがあるように見えるわけです。この数は、OSにとっての 「同時実行可能なスケジューリング対象の単位」 となります。
ここで混乱しがちなのが、 「OSのスレッド(ユーザースレッド)」 と 「CPUのスレッド(ハードウェアスレッド)」 は別物という点です。
Linuxのスケジューラは、OSスレッドを「どの論理CPUで動かすか?」を判断しながら、各スレッドを時間で区切って順番に割り当てていきます(プリエンプティブ・スケジューリング)。
たとえば、CPUが24スレッドまで同時処理できる環境で、OSが100スレッドを同時に走らせようとすれば、当然ながら取り合いが発生してオーバーヘッドが増えます。逆に、スレッド数が少なすぎると、せっかくのCPUのマルチスレッド能力を持て余してしまうことも。そのため、多くのシステムでは「OSスレッド数 ≒ 論理CPU数」に近づけることで、CPU資源を最も効率よく使える設計がされます。これは、Webサーバ(nginxなど)やDBサーバなどでよく見られる最適化手法です。
ハードウェアスレッド数と、ユーザープロセスのスレッド数を上手にバランスさせることで、OSとCPUの協調動作が最大限に活かされるのです。
今後、ますますCPUの 「並列性」 は進んでいくと予想されます。コア数だけでなくスレッド数の意味を正しく理解しておくことで、システム設計やチューニングにも役立つはずです。
ぜひ一度、お使いのLinux環境で cat /proc/cpuinfo を実行してみてください。あなたの CPU が、実はどれくらいの並列処理能力を持っているのかが、数字で見えてくるはずです。
~ 皆さまにとって、有意義な時間でありますように ~
ご意見、ご要望、業務委託 に関するご相談は、お問い合わせより ご連絡ください。
著作権については、著作権に関するご案内 をご確認ください。
所在地 : 〒573-1134 大阪府 枚方市 養父丘