[Route 153]

Reconfigurable Supercomputing

あ、これは、研究の話。

最近は、Reconfigurable Computing を生物屋さん向けに、 応用しようという研究をしています (いや、もっと最近は、 職業としてはソフトウェア屋さんで、 Reconfigurable Computing 関係は副業として細々とやっている感じですが)。 小さなボード一枚でパソコンの100倍の性能! とかを目指しているわけで、以前の僕の研究の、 重厚長大路線とは完全に正反対なわけですが。

でも、こう、高性能コンピューティングな世界でも、 そろそろまた、機材のサイズとか、消費電力とか、 ゴミになったときのこととか、考える時期だと思うのです。 ちょうど10年くらい前に、RISC プロセッサが一気に盛り上がって、 大型計算機からワークステーションへ、 大きなシフトが起きた頃のように。

時代はエコロジー。どんなに速くても、 電気食いまくりだったらかっこわるいでしょ。

問題意識とか

PC クラスタでいいのか!

近年、生物学の分野でも計算機を使った分析やシミュレーションが 大々的に行われるようになってきました。 DNA の配列解析だとか、タンパク質の構造解析だとか、 あるいは代謝回路のシミュレーションだとか、 大きな計算能力を必要とするアプリケーションが次々に開発され、 多くの研究機関に PC クラスタが導入されています。

PC クラスタというのは要するに、1000 台とかそういう、 たくさんの PC を高速なネットワークで接続して、 計算を分担して一気に終わらせよう、というシステムですが、 価格はもちろん設置面積や消費電力や、そう遠くない将来には粗大ゴミ、 という問題を抱えています。 もちろん、研究者個人では導入できませんし、 研究施設でも共有資源ですから、好きな時に使えるとも限りません。

個人で使えるようなスーパーコンピューティング環境として、 デスクの脇に置けるような小型のベクトルマシン (NECの SX-6i など) も発売されていますが、こちらも当然、価格的な問題があります。

従来のスーパーコンピューティング

PC Cluster 複雑な計算処理を高速に行うための方法はいろいろありますが、

といったところが一般的な解決法です。前者には、 速い PC からクラスタ、 あるいはスーパーコンピュータが含まれます。 後者は、いわゆる専用計算機で、多体問題を解くための GRAPE などが挙げられます。

専用計算機は、うまく設計できれば比類ない性能を発揮できますが、 開発にかかるコストと、それに見合う成果が得られるか、 という点が問題になります。 スーパーコンピューティングにおいて、 価格性能比は非常に重要なファクタであり、 たとえば、PC の 100 倍速いシステムが、 10000 倍の価格で実現できるとした場合に、 世の中で使われるのは PC クラスタになってしまうでしょう。 一方、汎用計算機の一番の強みは、汎用なので R&D のためのコストが、 比較的容易に回収でき、常に性能向上を続けていくことができる、 という点にあります。専用機の場合は、 それなりに広い市場が見込めないと、 現実的な成功は困難でしょう。

FPGA を利用したアクセラレータ

ReCSiP board 工場から出荷される時点で機能が決まっている通常のLSIと異なり、 FPGA (Field Programmable Gate Array) は、 ユーザが回路を自由に構成できる汎用のチップです。 回路の構成情報は通常、FPGA 上のメモリに格納されており、 これを書き換えることによって、 長くても数秒から数十秒のうちに FPGA 上の回路を書き換えられます。

当然、専用 LSI に比べて、回路の動作速度面では不利になりますが、 対象の問題を直接ハードウェア処理することができるという点では、 専用計算機と同じメリットを享受することが可能になります。 コストの点から言えば、FPGA は汎用デバイスですから、 量産出荷されるわけで、市場の拡大とともに価格も低下してきています。

この FPGA を、 Bioinformatics 向けのスーパーコンピューティングエンジンとして、 普通の PC やワークステーションにプラグインすることにより、 細胞シミュレータなどのアプリケーションを高速化する、 というのが現在の研究の目標です。

ReCSiP

ReCSiP (a ReConfigurable Cell Simulation Platform) は、 研究室で開発している、 FPGA を積んだボードとソフトウェア基盤です。 FPGA とメモリ、というごく当り前の基板に、 ごく普通のドライバや API がついているだけですが、 これを使っていろいろなアプリケーションを開発中です。

ReCSiP の目指すもの

いままで、ReCSiP の開発は、FPGA を用いて生化学シミュレーションを行うための、 基本的な方式の確立を中心に行われてきました。 数多くの物質がさまざまに反応しあう機構をどのようにして表現し、 FPGA 上で効率良く実行するか、あるいは、 シミュレーション対象となる反応系内に存在する、 さまざまな種類の反応の反応速度式を効率良く扱うか、 といった問題です。

複雑な反応経路をシンプルに記述するという問題は、 FPGA 上に配置されたメモリブロックを効率良く利用し、 反応系を記述するためのメモリ、 反応系を構成する各反応のパラメータを格納するためのメモリ、 反応系内の各物質の濃度やその変化を格納するためのメモリなど、 いくつものメモリを並列にアクセスしながら処理を進める方式によって、 非常にうまくまとまることがわかりました。FPGA 上のメモリは、 数キロバイトの単位で分割されており、 多数の小さなメモリを同時に、独立にアクセスすることが可能です。 ディスクリート部品で構成するシステムでは、 メモリアクセスの並列性はメモリチップの数で規定されてしまうため、 この方式は FPGA ならではのメリットを活かした方式であるといえます。

反応経路を解釈して反応速度式を解くモジュール (solver) を複数並べれば、 それぞれに異なった反応速度式を処理することが可能になり、 多くの種類の反応から構成される反応系のシミュレーションも可能です。 この場合に、各 solver 間での通信も必要になりますが、 これは solver 間をクロスバスイッチによって結合することで解決されました。通常、 並列計算機のプロセッサ・メモリ結合網などで用いられる通信機構では、 なんらかの形で動的なスケジューリングが必要とされますが、 solver の動作は静的にスケジューリングされていますので、 この場合にはスイッチの動作も静的にスケジューリング可能であり、 したがって、スイッチの必要とする資源も、小さく抑えることが可能です。

現在、ReCSiP プロジェクトは、SBML (Systems Biology Markup Language) と呼ばれる、 標準化されたモデル記述言語を用いたシミュレータの開発を目指しています。 SBML に対応したモデリングツールやシミュレータは、 既に数多く発表されており、ReCSiP が SBML に対応することで、 より容易に FPGA による高速化の恩恵を享受することができるようになります。 この SBML ベースでのシミュレータでは、SBML の入力を元に、 最適な solver の構成と、その演算スケジュールを自動的に決定し、 FPGA 上の演算資源を最大限に活用して高いスループットを実現します。

現在は、基本的な SBML による記述だけをサポートしていますが、 今後、ハードウェア側の仕様拡張などを徐々に行ってゆき、 より柔軟性の高いシミュレーション環境を実現していく予定です。 JST ERATO-SORST 北野共生プロジェクト のスタッフや、 長崎大学工学部 のスタッフも共同で開発に当たっています。

派生アプリケーション

ReCSiP の FPGA ボードは、ふつうの FPGA をふつうの PCI バスに接続した、汎用品です。したがって、FPGA を用いたアプリケーションを幅広く実装して動作させることが可能です。

現在のところこのボードを用いて実装されているシステムとしては、

などがあります。これからも増えていく予定です。

資料など

このページには日本語の資料のみ掲載しています。

Yasunori Osana
Last modified at: