インマシン・グリッドコンピューティング

まだまだ足りないCPUパワー

一般的には今日のPCは必要にして十分な計算能力を備えていると思われるが、中にはまだまだCPUパワーの足りていない分野もある。例えば、構造解析、3Dレンダリング、映像編集・符号化、リスク計量などである。

例えば、コンピュータを用いたリスク計量とは、簡単に言うとリスク計量モデルをプログラムで記述し、想定しうる外因要素をそのモデルに与えて損をする確率とその金額を求めるものである。モデルはブラックショールズ式に代表される金融工学の要素を駆使したものから、取引や信用情報を統計的に処理して指標を求めるもの、また、過去に発生した損失を元にモンテカルロシミュレーションを行うものなど、どれも大量のデータと計算量を要するものばかりである。

しかし、リスク計量は幸いなことに並列性がとても高いことが多い。モンテカルロシミュレーションが多用されるが、これは並列性が極めて高い。シミュレーション試行自体が並列なので、並列化の粒度もコントロールしやすい。多くの計算を並列に計算する・・・ そう、グリッド・コンピューティングが大いに活躍する場なのである。

デュアルは当たり前、次はクワッド、オクト

一方、CPUのほうも並列性を上げている。最近ではIntel Core 2 DuoやAMD Athlon X2が主流となり、2つのCPU(コア)を1つにパッケージしたデュアルコアCPUが当たり前になっている。また、Intel Core 2 QuadXeonAMD Quad FX(2CPUなので厳密には違うが)などのクワッドコア(4コア)CPUもそう珍しいものでもなくなってきている。

そして来年にはオクトコア(8コア)CPUが登場すると言われている。実際、今でもクワッドコアXeonを2つ搭載するサーバは存在し、サーバ分野ではオクトコアは一般的である。

もっと将来を見据えると、Intelは32コア以上のCPU(Larrabee)を計画しているとされ、48コアまで拡張可能のようである。AMDも並列計算の得意なGPUをCPUと統合したFusion構想によって、並列計算能力を高めたCPUを計画しているという。

1台のPCでグリッド?

これだけ一つのCPUのなかに多数のコアを集積できるようになっても、おおよそ通常のPCの利用形態では使いこなせないであろう。そこでグリッドの登場であるが、32コアもあれば1台のPCのなかで完結する、インマシン・グリッドコンピューティングができそうである。ネットワークを介して接続されるグリッドの場合は、計算に必要なデータや結果の転送にオーバーヘッドがかかるが、1台のPCで完結してしまえば、内部インターフェース(バス)の制限一杯まで使って高速にデータをやり取りできる。または、ストレージを共有することができ、冗長なデータを作成せずに済む。

そもそもマルチスレッド・アプリケーションにしてしまえば? と思われるかもしれないが、それだと1台のPCのリソースに制限されてしまい、スケールアウトが難しい。インマシン・グリッドの場合は、あくまでもグリッドなのでスケールアウトは元から念頭においてある。実はこのような構成のシステムはちらほらと現れ始めており、我々のグループでも現在作成中のシステムにこのアーキテクチャを採用している。

CPUを初めとするハードウェア、システム構成、アプリケーション設計が並列化に向けて大きく変革しようとしている。これから面白くなりそうだ。