マルチコア、マルチスレッド時代に果たすOSの役割

杉山貴章(オングス)
2008-12-04 20:15:01
  • このエントリーをはてなブックマークに追加

マルチコア、マルチスレッド時代に果たすOSの役割とは

 Hughes氏は、スレッド数の増加は業界全体のトレンドであり、数年後には256スレッドが普通になっていくだろうと語る。問題は、これをどうやって活用するかだ。マルチスレッドを有効に活用するプログラムを作るのは容易なことではない。同氏は次のように語っている。

 「OSがマルチスレッドをアプリケーションで活用するための仲介になるだろう。OSはそのためのツールを提供する。では誰がOSを選ぶのか。アプリケーションに力を与えるためには、開発者が選ばなくてはならない。コンピュータの複雑さはきっと解決できる」

 同氏はOSが提供する機能の例として、OpenSolarisのNUMA(Non-Uniform Memory Access)マネージメント機能や、ZFS、DTraceなどを挙げている。ZFSはOpenSolarisの機能で最も注目されているもののひとつであり、ファイルシステムの増設や切り離し、スナップショットを利用したデータのリカバリなどを極めて容易に行える点が特徴。次のバージョンでは暗号化もサポートされる予定となっている。

ZFSのファイルシステム管理のデモ画面。この例ではMySQLのデータベースをファイルシステムごとロールバックしている ZFSのファイルシステム管理のデモ画面。この例ではMySQLのデータベースをファイルシステムごとロールバックしている

プログラマは何をすればいいか

 ではそのOS上でアプリケーションを開発するプログラマは、どんなことに注目したらいいのだろうか。Hughes氏は、マルチスレッディングを有効に活用するための並列プログラミング技術を身に付けるべきだと指摘している。

 それに加えて、同氏は並列プログラミングをサポートする技術として「OpenMP」や「Cilk」を紹介した。OpenMPは並列プログラミングのための標準APIであり、現在はCおよびC++版とFORTRAN版が公開されている。Cilkは並列性を表現するためのプリミティブを持ったANCI Cベースの言語だ。

 またSunでは昨年、HPC指向の新しいプログラミング言語「Fortress」を公開した。Fortressではプログラマから並列化処理を隠ぺいし、明記しなければ自動的に並列処理される仕様になっている。

 このような新しい技術に対しては、よく「実際にはアプリケーションを拡張する余裕なんてない」という声が挙がる。しかし、Hughes氏はそのような意見に強く反論している。

 「もし今、並列化への対応に手をつけなければ、ライバルに先を越され、後から優位性を確保することが難しくなる。並列化には社運をかける覚悟が必要かもしれない。しかし、それだけの価値はある」

 SunではハードウェアからOS、仮想化技術、プログラミング言語や開発環境に至るまで、包括的なソリューションを提供している。それらのソリューションが顧客のチャレンジを手助けするとHughes氏は語っている。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]