Operating System Organization for Manycore Systems

(邦訳:メニーコアシステムにおけるオペレーティングシステムの構成)

下沢 拓
(株)日立製作所 横浜研究所


[背景]メニーコアプロセッサの利用
[問題]OSのスケーラビリティとキャッシュ汚染
[貢献]メニーコアの構成に応じたOSの構成

プロセッサのコア数は増加を続けており,現在広く使われているマルチコアプロセッサよりもコア数の多いメニーコアプロセッサと呼ばれるCPUが出現している.高性能計算やサーバ用途を目的として,このようなプロセッサを備えたクラスタが今後出現すると考えられるが,その上で動作するオペレーティングシステムに着目すると,Linux等の既存のOSカーネルは,以下のような課題を抱えている.

1つは,システムコールのスケーラビリティの問題である.コア数が増加することで,複数のアプリケーションスレッドから同時にシステムコールを発行することが多くなり,カーネル内で共有している構造体へのアクセスが集中し,性能が低下するというものである.2つ目は,キャッシュ汚染の問題である.メニーコアプロセッサでは,コア数を増大させる代わりに,キャッシュメモリの容量を減らしたもの,あるいはキャッシュミスのペナルティが大きいものが存在する.このようなプロセッサで,オペレーティングシステムの処理を行うと,アプリケーションが使用しているキャッシュを上書きしてしまい,結果的にアプリケーションの性能を損なうことになる.

本研究は,メニーコアプロセッサの形態を二分し,それぞれ,現在のマルチコアプロセッサの発展した形としてのスタンドアロン型と,主たるプロセッサとは別にGPUのような拡張ボードの形で存在するアクセラレータ型とし,それぞれに適したオペレーティングシステムの形態を提案した.

スタンドアロン型向けには,上で掲げたうちスケーラビリティの問題を重視し,少数のコアごとに1つのカーネルを割り当て,全体として1プロセッサ上で複数のカーネルを動作させることで解決しようとしたものである.このとき,カーネルの一部を修正することで仮想化といったオーバーヘッドのある手法を用いずに,複数のカーネル動作を実現し,4コアの場合でもカーネルのコンパイルを用いた実験で最大2倍高速化することを示した.

アクセラレータ型向けでは,ホストと呼ばれる主たるCPU側にシステムコールの処理を委譲することによって,メニーコアプロセッサ側ではアプリケーション以外の処理がほとんど動作しないようにして,キャッシュ汚染を低減することを図った.マルチコアプロセッサを用いたアクセラレータの模擬環境での実験では,最大で3.4倍システムコールの実行が高速化することを確認し,ステンシル計算を用いた実験で最大で5%の高速化の効果を確認した.

本研究で提案した手法は,実際のメニーコアプロセッサでは,より大きな効果が現れることが期待される.また,本研究で用いた要素技術は汎用的なものであり,他のOSや異なる種類のハードウェア向けのOSへも応用が可能なものである.


 
 (2012年8月31日受付)
 
取得年月日:2012年3月
学位種別 :博士(情報理工学)
大  学 :東京大学

推薦文:(システムソフトウェアとオペレーティングシステム研究会)


本学位論文は今後の普及が見込まれるメニーコアプロセッサにおいて オペレーティングシステムが直面するであろう課題を定義し,その解決策を提案するものであり,その先進性が高く評価できる.また,実機が存在しない状況下で模擬環境を構築しながら提案ソフトウェアを実装,評価しており,その実装力も評価に値する.

著者からの一言


OSカーネルの研究は,実装やデバッグに多くの時間を必要として苦労することが多かったですが,正しく動作したときの達成感は大変大きなものでした.学位論文にまとめることができたのは,周囲の多くの方のアドバイスや協力があったからであり,改めて皆様に感謝いたします.