【レポート】

カーネル旅譚 - FreeBSDの新スケジューラ「ULE」

1 マルチプロセッサ - SMP、SMT、NUMA、マルチコア

後藤大地  [2005/01/01]

Intel CPUが搭載しているHyper-Threadingテクノロジや、2005年には登場するパソコン向けのマルチコアCPUなど、今後パソコンのプロセッサはマルチプロセッサが主流になると考えられている。これらマルチプロセッサの性能を発揮するには、OS側でのマルチプロセッサ対応が欠かせない。

マルチプロセッサ:SMP、SMT、NUMA、マルチコア

マルチプロセッサアーキテクチャにはいくつか種類がある。パソコンに関係が深いものをあげれば、SMP、SMT、NUMAになるだろう。

SMP(Symmetric Multi-Processors)は、これまでパソコンのマルチプロセッサとしては主流だったアーキテクチャだ。複数のプロセッサがシステムバスとメモリを共有している。複数のプロセッサで同一のメモリアドレス空間を持っているため、特別な並列プログラミングが必要なく、従来のOSから扱いやすい。

SMT(Symmetric Multi-Threading, Simultaneous Multi-Threading)は、スレッドレベルの並列処理を、プロセッサの命令レベルの並列処理に変換して実行するものだ。Intel CPUのHyper-Threadingテクノロジがそれにあたる。たとえばHyper-Threadingでは、プロセッサコアは1つなのに、OSからは複数プロセッサがあるように見える。

NUMA(Non-Uniform Memory Access)は、複数のプロセッサが、それぞれ個別にシステムバスとメモリを持ち、かつ、全体で同一のメモリアドレス空間をもっているアーキテクチャだ。SMPはプロセッサ数を増やすと性能のボトルネックが出やすい。NUMAはこの問題を解決したアーキテクチャの1つといえる。

マルチコアは、物理的に1つのソケットに接続するCPUに、複数のプロセッサコアを搭載したものをいう。複数のプロセッサを、見た目1つのプロセッサにまとめたようなものだ。

マルチプロセッサの今後

これまでマルチプロセッサとしてはSMPアーキテクチャが主流だった。しかも、SMPパソコンは、パソコン全体の出荷数から比べると極めて少なかった。

それが、今後パソコンではマルチコア+SMTが主流になるとみられている。よりハイエンドのモデルでは、さらにNUMAと組み合わせたモデルがリリースされるだろう。これは、これまで行ってきたクロック数向上によるプロセッサ性能の向上が難しくなってきたことに原因がある。クロック数を向上させることが難しくなっているため、かわりにマルチプロセッサ化することで、性能を向上させようとしているのだ。このため、今後パソコンの性能を十分に活かそうとした場合、必然的にOS側でのマルチプロセッサ対応が欠かせないことになる。

OSにおいて変更するべき要所:スケジューラ

マルチプロセッサ対応のために、OSで対応するべきもっとも要となる部分がスケジューラだ。もちろん、実行の単位をプロセスからスレッドに変更するなど、関連する多くの部分を書き換える必要はある。しかし、本質的に重要なのは、スケジューラだ。これまで1つのプロセッサだけ扱えば良かった状況と違い、OSは今後マルチプロセッサに対応しなければならない。

これまでのスケジューラは、1つのプロセッサで動作することを前提に作成されているため、マルチプロセッサではその性能を十分に発揮することができない。マルチプロセッサの性能を発揮するために、マルチプロセッサに適したスケジューラが求められているのだ。

それに、スケジューラはそれ単体ですでに性能において重要だ。たとえば高負荷時では、1秒間に何千回というスケジューリングが行われている。どのようにスケジューリングを行うかということが、そのままシステム全体の性能に関与しているのだ。

    新着記事

    特設サイトの情報

    求人情報

    人気記事

    一覧

    イチオシ記事

    新着記事

    特別企画

    一覧

    転職ノウハウ

    あなたの仕事適性診断

    4つの診断で、自分の適性を見つめなおそう!

    Heroes File ~挑戦者たち~

    働くこと・挑戦し続けることへの思いを綴ったインタビュー

    はじめての転職診断

    あなたにピッタリのアドバイスを読むことができます。

    転職Q&A

    転職に必要な情報が収集できます

    スカウト転職する

    企業からアプローチのメッセージが届きます。