SC07の最終日である11月16日の金曜日の朝の8時半から、Exotic Architecturesのパネルディスカッションが行われた。金曜日の朝、帰途につけば、土曜の夕方には日本に帰れて日曜を休めるのであるが、このパネルに出ると日本到着が日曜で、休みなしに出勤になってしまう。従って、日本からのSC07出席者は帰ってしまう人が多いのであるが、スパコンの新しい可能性を探るという観点から、頑張って出席することにした。
パネリストは、Top500やHPCCを主催し、スパコン界では知らぬものの無いTennessee大のJack Dongarra教授、Illinois大のWen-Mei Hwu教授、George Washington大のTarek El-Ghazawi教授、Minnesota大のPaul Woodward教授、そして国防総省のDouglas Post氏という顔ぶれである。
Dongarra教授は、最近、教授が研究を行っている単精度計算の結果を倍精度計算で補正するという計算法について述べた。IntelやAMDのプロセサは単精度であれば2倍の演算性能が得られ、CELLプロセサの場合は、単精度は200GFlops以上の性能であるが、倍精度は14GFlopsと性能が低い。教授の提案する方式は、これらの強力な単精度演算機能を使って計算を行い、その結果の誤差を倍精度で求めて、誤差分を補正する計算を行うというやり方である。
連立一次方程式を解く場合は、通常は、倍精度で1回計算すれば終わりであるが、この方法では単精度の計算で解き、その解を元の方程式に代入して、ここでは倍精度で誤差を計算する。そして、その誤差を打ち消す解の補正分を単精度で計算するという繰り返しで解の精度を改善する。計算回数は多くなるが、CELLで4000元の行列を解く場合では、倍精度でまともにやる場合に比べて8.3倍に性能が向上するという。
そして、4台のPlayStation 3を1GbpsのEthernetで接続したクラスタを作り、行列積の計算をやらせた結果について説明を行った。行列のサイズが16000元程度になると単精度では600GFlops程度の性能が得られる筈であるが、実際には256KBのローカルメモリのサイズが制約となって6000元程度の行列しか扱えず、性能は200GFlops程度に留まるという結果を示した。また、OpteronにNVIDIAのQuadro FX 5600 GPUをつけた構成で、19000元の連立一次方程式の解を求める場合では、50~90GFlopsの性能が得られるという結果を示し、ある種の問題に対しては、強力な単精度演算機能を使う方法が有効であると結んだ。
パネルで発表するDongarra教授。 |
Illinois大のHwu教授は、NVIDIAのDavid Kirk氏を大学に招いて、GPGPUのプログラミングコースを行った事例を紹介した。学生は、1回の講義の後、1~2時間でCUDAを用いて行列積の並列プログラムを書くことができるようになり、汎用プロセサ(1コア)に比較して10倍程度の性能向上が得られたという。しかし、ここで得られた12GFlopsのプログラムから120GFlopsのプログラムに到達するには10回の講義を必要としたという。
各種のプログラムをGPGPUで動かすようにCUDAでのプログラムをやらせた結果、対象とした各アプリケーションのコアとなる計算部分では10倍程度の性能向上が得られるものが多く、上手くはまると100倍以上の性能が得られるものもあるという結果が得られた。
Hwu教授のグループは、現在、64GPUのクラスタを持ち、来年には128GPU、そして2009年には2048GPUクラスタを作り、GPGPUによる計算を研究する予定という。この2048クラスタは単精度では2PFlops、倍精度では0.25PFlopsの性能を持つ予定である。
GPGPUによる計算について発表するHwu教授。 |
George Washington大のTarek El-Ghazawi教授は、FPGAによる計算について発表を行った。2.4GHzクロックのOpteronと比較して、DNAのシーケンシングを行うSmith Waterman法の計算では性能は8723倍で、電力も約1/8。DES、IDEA、RC5といった暗号を破る計算では961倍から38514倍という目覚しい性能向上が得られたという。そして、FPGAはFlops/Wの点でも汎用プロセサより効率が良いのであるが、前記のような高い性能が得られるのはごく一部のアプリケーションで、現状では、大部分のアプリケーションでは性能が出ていない。これはプログラミングモデルが確立しておらず、使いにくいことが問題であり、短期的には性能が出るものをライブラリ化して提供し、容易に高い性能が得られるようにすると同時に、ツールの改良やCPUとのデータ転送速度の向上などを継続することが重要である。そして、長期的には、一般的なヘテロジニアスなメニーコアが上手く使えるプログラミングモデルの確立やヘテロジニアスメニーコア用のOSやリアルタイムシステムの研究が重要であると述べた。
Minnesota大のPaul Woodward教授は、CELLプロセサにPPMという流体解析コードを移植した経験について述べた。CELLの256KBのローカルメモリにプログラムとデータを収めるためにプログラム構造の大きな変更が必要になったが、最終的には、2個のCELLプロセサを搭載するブレードで83.7GFlopsが得られ、良好な並列化が行えたと述べた。また、データを小さい単位に分割したことの副作用で、Strong Scaling(問題規模一定で、プロセサ数を増やすというやり方で、処理時間を短縮できる)が出来るようになったと述べた。
国防総省のHPC Modernization ProgramのPost氏は、学者ではなく、現実的なユーザの立場で述べると前置きし、Exotic Architectureが理想郷になるのか、あるいは手に負えない怪物になるのかは、プログラムが作れるかどうかが重要と述べた。大規模な実用アプリケーションの開発には5~10年程度の年月がかかり、その後、20~30年は使用し続けられる。これに対してハードウェアは3~4年で更新されてしまう。
PetaからExa Flopsになると汎用プロセサでは1億~100億コアのシステムとなり、このような超並列化されたプログラムの開発の困難さは膨大である。これがヘテロジニアスなコアのシステムとなると、困難さは膨大のN乗になってしまう。このようなExoticなアーキテクチャが使用されるためには、殆ど全ての複雑さをプログラマーから隠すことが出来なければならない。このための、具体的な方法としてはライブラリ化を行うとか、コンパイラがハードの違いを吸収するとかの方法が考えられると述べた。
最終日にも拘わらず、満員状態の出席者であった。 |
これらの発表後、会場からの質問に答えたが、CELLやGPGPUは、如何にしてソフトウェア開発者から容易に使えるように出来るかが鍵という感じであった。また、FPGAも同様であるが、実用的な問題で高い性能が得られるケースは更に範囲が狭く、まだ、使い方を模索しているという印象であった。