踊る大規模解析最前線:MONOistセミナー レポート(2)(2/3 ページ)
アンシスが最新の大規模解析事情、富士通がHPCをめぐるハードウェア事情、そしてIHIが実際の設計現場におけるCAEについて大いに語る
高性能なCPUやメモリを採用すればいいわけではない ――富士通研究所 久門 氏
富士通によるセッション『アプリ特性に合わせるPCクラスタの構成』では、富士通研究所 取締役 久門 耕一氏が登壇し、ハードウェア技術面からのHPCの解説を展開した。
「(これはアメリカの話ですが)1990年代、NASAが事業仕分けに遭い予算削減されたことで、スパコン(スーパーコンピュータ)が自由に使えなくなりました。そこで余剰になったPCをイーサネットでつないで高性能計算(HPC)をさせることはできないか――ということで作られたシステムがPCクラスタの発端。当初は自作アプリケーションを実行するための少人数利用の特別なコンピュータでした。少なくともこの段階では、民間ユーザー向けのものではありませんでした」(久門氏)。日本では、2002年に終了したRWCP(合新情報処理開発機構)がPCクラスタ普及の原動力となったという。
2004年に富士通が理化学研究所に入れた1024ノードのPCクラスタは、特別なコンピュータではなく、不特定多数のユーザが利用するセンターマシンとして作られた初の大規模クラスタである。無論、この時点ではPCクラスタはリサーチの分野でしか使われていなかった。
2005年以降、PCクラスタの持つ高いコストパフォーマンスが世の中で認知されたことで、PCクラスタでHPC計算するユーザーが増加。ソフトウェアベンダも、PCクラスタ用アプリケーションのサポートを積極的に行ったことで、アプリケーションの移植が加速してきた。そして今日のPCクラスタは、ソフトウェアベンダのアプリケーションを実行するHPCとしては一般的なプラットフォームになったという。
PCクラスタの特徴
PCクラスタの高いコストパフォーマンスの理由とは何か。まずハードウェアもソフトウェアも汎用品を利用していることを久門氏は挙げた。Linuxをはじめとするオープンソフトウェアを活用していることもその1つだという。
HPCという名のとおり性能(ハイパフォーマンス)が肝要だが、PCクラスタは、高性能化が著しい市場製品(PC)を取り入れることで高い計算性能を維持できるし、商品提供も途絶えることがないと久門氏は説明する。
「市場に出回るPCは、常に高い性能をキープし続け、かつ年々上がっていくものです。さらに、そういった製品というのは、次々と世代が上がっていきます。例えば、とあるCPUがなくなったからといっても、その次のバージョンのCPUが出てきて、それと等価、あるいはそれ以上の機能があります」(久門氏)。
PCクラスタは、利用用途や予算に応じ、システムの規模を自由に拡大および縮小可能である。そしてPCクラスタが広く使われるようになってきたことで、HPC対応のソフトウェアが豊富であることもその利点だ。
「PCクラスタの適用は、ほとんどのCAEの、ありとあらゆる分野に及びます。衝突解析、流体解析、構造解析……それ以外に金融系、テキストマイニング、創薬、材料開発、コンピュータグラフィックスなど。富士通は、従来、大規模(ハイエンド市場)な顧客をずっと対象にしてきました。しかしこれからは、中・小規模のPCクラスタを民間などの製造業の顧客まで対象を引き延ばしていくことが重要であると考え、2009年末から民間企業でのCAE利用を中心としたサポートを強化し始めました」(久門氏)。
PCクラスタの性能
PCクラスタとは、「単体のPC、PCサーバを複数つないだもの」である。その性能は、単体性能が決め手となる。また、アプリケーションを複数PCで並列実行による性能向上も大きな要素だ。ならば、単体のCPUの性能が向上すれば、トータルのシステム性能は上がるのか? また単にPCクラスタの台数を増やせば、リニアに性能向上するものなのか?
単体のPC性能演算速度については、「1秒間に何回フローティング演算ができるか」(FLOPS)が重要だ。CAEの場合も、そのほとんどがフローティング演算である。その能力(計算速度)は、CPUにおける周波数の高さで決まる。「CPUは演算をするものです。メモリは、演算するデータを供給するものと考えてください。メモリからデータを流し込み、CPUで演算すること――これがHPCでは極めて重要となります。CPUのチップの中に2コアあるということは、自動車で例えるなら、エンジンが2つということです」(久門氏)。
しかし、エンジンに当たるCPUの性能が向上すれば、燃料に当たるデータをどんどん供給しなければならない。その供給が追いつかなければ、演算が滞りがちになる。データ供給量を多くするには、1台のPCの中では「メモリのバンド幅性能」を高くする必要があり、PC間においては、InfiniBandネットワーク等の高性能ネットワークを使い、「通信のバンド幅」を広くすることが大事になる。
中にはバンド幅を必要としないアプリケーションはあるものの、一般的にHPCではバンド幅は広い方がいい(InfiniBandなど)と久門氏はいう。
またマルチコアCPUの場合は、ソフトウェアのコストアップに注意したいという。コア数が増えれば、動かすために必要なソフトウェアライセンスが増えてしまう。HPCにおけるソフトウェアライセンスはシステムコストの50%になる場合もあるとのこと。あえてマルチコアをすべては使わずその代わりにノード数を増せば、トータルのライセンス数を少なく押さえた場合でも、性能向上することがあると久門氏はいう。
CPUの周波数が高くなれば、ソフトウェアライセンスコストは削減できるが、ハードウェアコストや消費電力はかさんでしまう。
小規模になれば、速くなるわけではない
「複数のPCサーバで並列に計算を実行することは、(例えば会社内などで)大きな仕事を1人で解くのではなく、4人あるいは16人に分割して取り組むようなものです。作業は早くなるでしょうが、作業中にお互い連絡し合わないといけません。この状態が、まさにPCクラスタです」(久門氏)。
つまりPCサーバ4台で解くと、問題は小さくなるが、その代わり通信が発生する。そして分割すればするほど、通信の割合が増えていく。逆に、大規模な問題は、通信量が比較的少ない。小さな問題ほど通信(ネットワーク)の能力がネックとなるというわけだ。
「会場にいる皆さんは、地球シミュレータ級の大規模な問題は解かないと思います。『自分たちの取り組むような中〜小規模な問題なら、ネットワークはあまり頑張らなくてもいいんじゃないか』と思われがちですが、逆です。小規模な問題ほど、高性能ネットワークが必要なのです」(久門氏)。
例えば電磁場解析や流体解析は、通信量が多くなる。衝突解析は、それより少ないが、比較的多めである。バイオや金融系など、膨大な量のデータを扱うパラメータスタディ系の解析では、通信量はぐっと少なくなるという。
上記の話をまとめれば、PCクラスタを導入するに当たっては、使うアプリケーションの特徴はどういうものか把握し、最適なシステムの大きさを考えることが最も大事となる。CPUやメモリの性能がとにかく高ければ、とにかく多額を投資すれば、システム性能がぐんぐんよくなるわけではないのである。
- CPU(種類、周波数、コア数)
- メモリ(速度、搭載量)
- ネットワーク(バンド幅、接続トポロジー、通信遅延時間)
- ライセンス数
PCクラスタを構成するコンポーネントは常に進化を続けているので、これらのポイントを考慮しつつ、コストと性能の最適なバランスを取ろう。
Copyright © ITmedia, Inc. All Rights Reserved.