世界のスーパーコンピュータとそれを動かす人々


12月 27, 2013

信頼性の低いハードウェアのためのプログラミング

HPCwire Japan

Tiffany Trader

トランジスタが原子サイズ以下に近づくとともに、信頼性はますます危険にさらされる。チップメーカーは、小型化問題の技術的な回避策を解き続けるが、しかし、現在の製造技術は遅かれ早かれ、動力を失うだろう。そして、およそ50年間の半導体性能の巨大な増加をもたらした予測のムーアの法則は、終わりを迎える。

コンピュータ技術者は、シリコンベースのCMOSに代わる方法を考え出そうと先を争っているが、一部の科学者は別の可能性を示唆している。コンピュータに間違いをおこさせよう。

それは、些か異端である。コンピュータは、精度と確度の要塞と思われていないだろうか? MITのコンピュータ科学と人工知能研究所の研究者は、最近公開された論文で、多くの高性能アーキテクチャが既に静かに計算を破壊するソフトエラーに繋がる信頼性の低いコンポーネントを含むと主張する。これらのエラーの完全な検出は、時間とエネルギーの観点から課題であるが、一部のアプリケーションは若干のエラーに耐えることができる。例えば、マルチメディア処理、機械学習やビッグデータ分析のような大体のコンピューティングアプリケーションは、当然のことながらソフトエラーへ寛容である。高精細ビデオフレームの若干のピクセルが不正に復号されたとしても、視聴体験に影響を与えることは無いが、しかしプロセスをより速くより少ないエネルギーで実行することを可能にする完璧な復号のための要件が緩められる。

Martin C. Rinardの指揮のもと、研究グループは、開発者がエラーの許容状況を指定可能なRelyと呼ばれる新しいプログラミング言語を開発した。そのシステムは、その後、ソフトウェアが信頼性の低いハードウェア上で実行される時に正しい結果を生成する確率を計算する。

「もし、ハードウェアが本当に動作を停止するとしたら、これはコンピュータ科学にとってかなり大きなことです。」と電気工学およびコンピュータ科学の教授、Rinardは言う。「それを問題とすることではなく、私たちは、それをチャンスとしたい。私たちがここにあるもの・・・あなたのプログラムのこの潜在的な信頼性の低さによる影響について、あなたを納得させるシステムです。」

信頼性の低いハードウェアの利点を活用するには、開発者はコードの適切な行に「dot(.)」を追加する。例えば、命令で「total = total + new_value」は、「total = total +. new_value」となる。その「dot」が指定されている故障率を使用してプログラム実行を評価するためRelayに命令する。Relay(sans dot)のデフォルトバージョンは、長めの実行時間と高めの電力消費を招くようなオペレーションの非障害モードと仮定する。

コンパイル段階で、Relayは、各命令がプログラム出力の全体的な変異性の推定に正しい答えをもたらす確率に変える。

「プログラムに持つことができる1つのものは、条件のための異なるパスです。」とこのプロジェクトに従事し、論文の共著者でもある大学院生、Sasa Misailovicは言う。「プログラムを静的に分析したとき、私たちは、すべての基礎を網羅していることを確認します。関数の変異性を見るとき、これは最小限の信頼性パスの変異性になるでしょう。」

成功の全体的な確率が許容できないほど低い場合、プログラマーは、最適信頼性レベルが達成されるまで、dotを削除・追加し、コードを再編成することができる。研究者によると、このプロセスは一般的に数秒程度かかると言う。

開発者は、さらに使い易くするためRelayの別のバージョンに取り組んでいる。プログラマーは、コードの全体ブロックについての許容された故障率をちょうど指定するだろう。そして、システムは、それらの要件を満たし、かつ電力節約または実行速度を最大化するためにどのようにコードを修正するか自動的に決定するだろう。

著者らは、新興のハードウェアアーキテクチャが付加的なエネルギーまたは性能の節約のための信頼性を犠牲にする傾向にあることを認識していた。研究者の活動の一部では、確率論的CMOSチップ、推計学的プロセッサ、エラー回復性アーキテクチャ、および不信頼性メモリなどを探求している。アプリケーション(マルチメディア処理や機械学習など)の特定のクラスは、このようなコンポーネントを利用する十分な用意があり、そして著者の言葉で、「Relayは、開発者がこのようなプラットフォーム上でアプリケーションの振る舞いをよりよく理解し、
制御することを支援することを目的としています。」

ワシントン大学のコンピュータ科学と工学の准教授、Dan Grossmanによると「ハードウェアの効率性の向上は、非常に魅力的です。私たちは、ハードウェアがソフトウェア開発者にとって使い易くなるようにするこの仕事のようなソフトウェア作業が必要です。」