並列処理の新展開

トランザクションメモリはマルチコアの救世主となるのか?

2007/07/17

trans.gif

 オランダのコンパイラ専業会社、ACE(Associated Compiler Experts)の国際営業の担当者と話していたら、ヨーロッパでは、並列システム向けの最適化/開発関連のベンチャー起業がずいぶん活発になっているらしい。もちろん背景としてはマルチコアプロセッサのブームがあるわけだが、我々の世代としては過去の「パラレルプロセッサブーム」を知っているだけに違いは何だろうねという話になった。

マルチコア利用のシステム開発は難しい

 さて、CPU間結合が比較的疎な非対称なマルチコア(AMP)を用いた開発は、組み込み系においてはすでに日常化している。背景としてASICの規模が巨大化するにつれ複数のCPUを搭載する余地が生まれたことと、組み込み系開発では目的が明確であるために、機能の分離設計が楽であることが挙げられる。しかし、そうであってもマルチコア開発を実務として行っている人に聞くと「個別プロセッサ向けのモジュールを結合させる時が大変で、動くようになるまでひと苦労」という話を聞く。これに対してOSがスレッド割り当てを行うような対称プロセッサアーキテクチャ(SMP)では、こうした苦労は隠蔽されてしまうわけだが、4プロセッサぐらいを境として、パフォーマンスが上がっていかない。理由は、共有メモリへのアクセスに伴うロック/排他制御が、実行の並列化を妨げているからであると考えられている。

がぜん注目されるトランザクションメモリ

 これに対して、1993年にMaurice Herlihy氏とJ.Eliot B. Moss氏が提案したコンセプトがトランザクションメモリ(Transactional Memory)という考え方だ。これは、基本的に共有リソースに対するロックを事前に行うのではなく、各実行スレッドがそのコピーをローカルに持ち、処理終了時点で参照数値が変更されていないことの確認と、結果の書き込みを一気に行ってしまうというものだ。

 仮に依存数値がほかのスレッドによって書き換えられている場合は処理そのものを廃棄してやり直す必要がある。この点、データベースのトランザクション処理と類似していることからトランザクションメモリと命名されている。本質的に投機的実行モデルである。

 当初のトランザクションメモリは、STM(Software Transactional Memory)の形でプログラミング言語であるHaskellへの実装という形で進行していた。その後、2006年あたりからは、各種ベンチマークが公表されたほか、HTM(Hardware Transactional Memory)、つまりハードでの実装があり、ISCA 2006でのグーグルによる大規模トランザクションへの工夫に関する提案と進展。2006年の年末にはインテルによる論文「Architectural Support for Software Transactional Memory」が発表された。この論文で、HASTM(Hardware Accelerated Software Transactional Memory)を支援するためにインテルアーキテクチャに追加するべき具体的な命令セットと、そのベンチマークシミュレーションへの言及があり、がぜん注目されるようになった。

プロセッサ内部だけで隠蔽しきれない並列性

 今一度、最初のディスカッションに戻る。ハードウェアアーキテクチャ、そして組み込みの視点からみると、かなり前から並列プロセッシングは向き合って対処すべき対象であり続けた。組み込み開発はもとより、CPUの内部では増加するトランジスタによる実行効率への寄与は、ベクトル演算とマイクロコード実行の並列化、投機的実行により達成されてきたのだ。元来、マルチコアブームとは、ハードウェアによる並列化回路が複雑になりすぎたことに起因するといっても良いだろう。過去と現在の違いとは、ムーアの法則により増加したトランジスタ資産を活用するために、そろそろソフトウェア側の介入が不可避な規模に達してきたということなのではないか?

 インテルが実装するのかは不明確な部分もあるが HASTMは、その第一歩としては現実的な解であるように思われる。このトレンドから考えれば、組み込みから始まり、今後、アプリケーションの下位レイヤから順次並列的プログラミングに対するスキルセットが重要になってくるはずだ。果たして技術者の側はその準備ができているのであろうか?

(イグナイトジャパン ジェネラルパートナー 酒井裕司)

[著者略歴]

学生時代からプロエンジニアとしてCG/CADのソフトウェア制作に関わり、その後ロータスデベロップメントにて、1-2-3/Windows、1-2-3/Mac、Approach、Improveの日本語版開発マネージメント、後に本社にてロータスノーツの国際化開発マネージメントを担当後、畑違いのベンチャーキャピタル業界に転職した異色のベンチャーキャピタリスト。2005、2006年度 IPA 未踏ソフトウェア創造事業のプロジェクトマネージャ

情報をお寄せください:



@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)