エクサスケールの電力問題を操る
Osman Sarood, Laxmikant Kale & Esteban Meneses

電力、エネルギーそして信頼性は大規模マシンを構築する努力の中で、HPC研究者達の主要な課題である。エクサスケール時代に近づくにつれて、ハードウェアとソフトウェアの両方の設計者達は、性能を最適にしながら、これらの課題を考慮する必要がある。イリノイ大学アーバナ・シャンペーン校(UIUC)の並列プログラミング研究所(PPL)は、Chram++プログラミング・モデルの適応型ランタイムシステムを活用して、これらの課題に積極的に取り組んでいる。
現在のペタスケールマシンは平均故障間隔(MTBF)が数時間から数日の間のどこかである。あるレポートでは、エクサスケールマシンはMTBFが35-40分程度であるだろうと予測している。興味深いことに過去の研究では、プロセッサ温度と信頼性の関係について説明している:故障率は温度が10度上昇する毎に2倍になる。我々の研究は、プロセッサ温度と信頼性の関係を適用し、プロセッサ温度を抑制することによって故障の頻度を低減し、結果的に故障し易い環境においてアプリケーションの性能を改善することにある。動的電圧・周波数制御(DVFS)により温度制御することで信頼性を改善することにはコストとメリットがある。信頼性の向上は障害を直接的に低減させるだけではない。それはコードがチェックポイントする間隔を広げ、オーバヘッドを減らすことができるようになるのだ。しかし、プロセッサの速度が遅くなり、ロードの不平衡状態を増やすこととなる。
プロセッサ温度を抑制することによって、温度を可能な範囲に調整することで、我々はシステムの予測故障率を設定できるようにランタイムシステムに機能を与えることができる。我々の制御戦略は、各プロセッサの温度があるスレッシュホールド以下である限り、最大周波数で動かす。プロセッサ温度が最大スレッシュホールドを超えたら、DVFSで電圧と周波数を下げるように制御する。電圧と周波数が減ると電力消費量は落ち、ゆえに、プロセッサ温度が下がるのだ。
クラスタ内のコアを個々にDVFSで周波数を調整すると、コア上のワークロードは互いに対して変化することとなる。これは密結合の並列アプリケーションにおいてはプロセッサが次のステップに移る前にステップ毎に同期をとるために、かなり性能が低下することとなる。我々は、異なるプロセッサの速度差を意識したロードバランシング戦略で、この結果となるタイミングのペナルティを軽減している。
我々のロードバランシング戦略では、過度分解とオブジェクト移行を基に、使用率を増加させるCharm++適応型ランタイムシステムを使っている。これは、変更した周波数による各プロセッサの現在の負荷を解析し、過負荷か低負荷かを判別する。一旦決定されると、我々のスキームは知的に過負荷(hot)なプロセッサから低負荷(cold)なプロセッサにオブジェクトを移行し、負荷のバランスをとる。温度監視と対応するロードバランシングはユーザ定義の間隔で実行される。
この作業におけるひとつのねじれは、異なるアプリケーションでは、与えられた周波数でどの程度プロセッサに負荷がかかるのか、そして異なる周波数が性能にどのように影響するのかの両方が変化することだ。これは異なるアプリケーションが実際には同じマシン上でも違ったMTBFを経験することを意味することに注意!したがって、我々は異なる状態を表現する3つのアプリケーションを使っている。
MTBFにおける温度制御の効果を測るために、
アプリケーションの合計実行時間を信頼性と温度抑制に関連する低速化に関連付けるモデルを公式化している。このモデルは、異なる周波数における異なる実行速度、MTBFに応じたチェックポイントのオーバーヘッドとリカバリ時間、そして負荷の不均衡の対応に関するさらなるオーバーヘッドを捕えている。我々は小規模のテストベッドを使って、各アプリケーションにおける我々のモデルの精度を検証している。
より大規模なマシンに対して我々のスキームの利点を示すために検証されたモデルを使っている。我々の結果は、信頼性における向上と関連する温度制御の実施コストのトレードオフを指し示している。このトレードオフは、与えられたアプリケーションとマシンサイズに最適な温度スレッシュホールドを決定するのだ。
次の図は温度制御がないベースライン実行の場合と温度スレッシュホールドを摂氏48度に設定した抑制実行の場合の2次元ステンシルアプリケーションにおけるマシン効率の比較を示している。3万2千ソケット以下の場合、ベースラインより低い効率を得たが、3万2千ソケットを超えた場合には、我々のスキームはベースラインより優れ始めている。参考として、NCSAのBlue Watersシステムはおおよそ5万ソケットを搭載している。25万6千ソケットでは、我々のスキームはベースラインが0.08に対して、0.29の効率でマシンを運用すると予測される。最後に、34万ソケットでは、ベースラインでの効率は0.01に落ち、ほぼマシンが運用できない状態になるが、我々のスキームではそれでも効率0.22で運用することができる。
これらの有望な結果は、もっと詳細なモデル、より大規模な実験システム、そしてメッセージのロギングや並列復旧のようなもっと先進的な耐故障プロトコルを調べるように我々の研究を継続することを助長している。
この研究はグループの研究テーマの一部である:洗練されたアプリケーションとハードウェアの複雑性で示される課題を扱うための適応型ランタイム制御を使用すること。並列プログラミング研究所は過去20年間、ゴードンベル賞を受賞した生体分子シミュレーションプログラムNAMDを含む多くのCSEアプリーションを使って、プロダクションレベルの品質を持った並列プログラム言語としてCharm++を開発してきた。
著者略歴:
Osman SaroodはUIUC計算科学学部の博士課程最終年度の学生である。彼の研究は温度および電力抑制下での性能最適化に焦点を当てている。
Esteban Menesesはピッツバーグ大学のシミュレーション・モデリングセンターに勤務するリサーチ・アシスタント・プロフェッサーである。彼の研究は大規模並列アプリケーションにおける負荷分散と耐故障技術に焦点を当てている。UIUCで計算科学の博士号を取得している。
Laxmikant Kaleは1985年にニューヨーク州立大学ストーニーブルック校で計算科学の博士号を授与れている。1985年にUIUCの計算科学学部の准教授、現在は教授となっている。彼の研究は、並列プログラミング概念、スケーラビリティ、自動負荷平衡、通信最適化、および耐故障性を含む並列コンピューティングに広がっている。彼はいくつかのスケーラブルなCSEアプリケーションの開発に協力している。