普通のパソコンをスパコン並みに――ある高校生たちの挑戦(1/2 ページ)

広島国泰寺高校科学部物理班は、KNOPPIXを利用し、学校の情報教室のPCでMPI並列処理が可能なPCクラスタシステムを開発した。64台の並列で最高9476MFLOPSという高性能が求められた経緯などを追った。

» 2004年11月08日 13時43分 公開
[西尾泰三,ITmedia]

 広島国泰寺高校科学部物理班は、情報教室のパソコンを使ってプログラミングなどの活動を行っている。体育会系の部活動とは異なり、その成果を外部と競う機会になかなか恵まれないが、高校生のためのプログラミングの大会はいくつか存在する。その中でも、東京工業大学の主催するスーパーコンピュータコンテスト(通称SuperCon)が高いレベルとされる。この本選で憧れのスパコンを駆使して優勝することは全国のプログラミング好きの高校生の夢だが、後述するMPI(Message Passing Interface)の学習にはMPI並列処理の環境が欠かせない。

 しかし、スパコンのリース料は最低でも数百万円単位で、部活動の予算をはるかに超える。また、コストパフォーマンスに優れるとされるPCクラスタでさえ、専用のシステムは数百万円の購入費がかかるといわれている。

 こうした状況で科学部物理班が考えたのは、MPI並列処理の環境として、情報教室のパソコンを利用したPCクラスタが構築できないかということだった。

しかし、情報教室のPCは普段は授業でWindowsマシンとして使用する。クラブ活動の時間だけ、一時的にPCクラスタとして使用するために別のOSをインストールするということも困難な状況で彼らが目をつけたのが、CDブート型のKNOPPIXだった。同校3年の作田晴朗氏、箱崎亮太氏を中心にこの夢のような取り組みが動き出した。以下、同校でまとめられた資料を紹介していく。

JSEC2004の最終発表の準備をする二人。背後にはKNOPPIXが動作するPCが並ぶ

導入までの道のり

 並列処理は、与えられた処理を複数のプロセッサで分割して処理し、時間の短縮を図る方法である。最近の主流としては、プロセッサ間でメッセージを交信しながら並列処理を実現するメッセージパッシング方式の人気が高い。

 このメッセージパッシング方式を実現するためのインタフェースとしてMPIがある。MPIは非常に移植性が高く、現時点で並列処理の事実上の標準となっている。MPIの実装でフリーなものとしては、MPICHLAMという2つのライブラリがよく知られている。

 また、PCクラスタで並列処理を行うには、全てのPCが実行ファイルを持つ必要があるが、各ノードに手作業で実行ファイルを転送するのは手間がかかる。また、NFSやNISなどのサービスを利用するのも荷が重い作業だった。

 RWCP(RealWorld Computing Partnership:新情報処理開発機構)が開発した並列処理クラスタソフトウェア「SCore」上でMPICHを動かすことも検討したが、SCoreはRed Hat系Linuxディストリビューションでの利用を前提としており、KNOPPIXをベースとする一時的なシステムへの応用は難しいと判断、この案を見送った。

 一方LAMは実行ファイルの転送機能なども備えており、NFSやNISのサービスを利用しなくとも目的を果たせることが分かり、MPIの実装にはLAMが採用された。

ネットワーク周りの調整

 そのほか、PCクラスタでは、PC間の通信や命令実行のためにリモートコンピュータを制御する必要がある。これらはrshやsshを利用すればよいが、rshは速度面で有利だがセキュリティが考慮されていないのに対し、sshはセキュリティ面で優れるものの、暗号化処理のために速度面で劣っている。

 KNOPPIXでは、ユーザーがroot権限を持つため、セキュリティポリシーを理由にrshをサポートしていない。しかし、情報教室ではファイアウォールの内側にあるため、セキュリティ面にはそれほど神経質になる必要はないと判断、パフォーマンスを重視してrshが採用された。

 さらに、PC間で通信するために必要なIPアドレスの名前解決も解決すべき問題の一つだった。同校ではDHCPサーバからIPアドレスを動的に割り当てていたため、ノードとなるパソコンの名前とIPアドレスを対応させることは困難だった。この問題は、IPエイリアスをつけることで解決された。各ノードのIPエイリアスは10.0.1.1から10.0.1.64までの領域に固定された。

 PCクラスタの構築に必要な条件がほぼ固まったことで、同校ではKNOPPIX 3.3日本語版と、KNOPPIX再構成ツールである「Yakbuilder」を使用し、LAM関連パッケージおよび、rsh関連のdebパッケージをインストールし、さらにPCクラスタの構築に必要なスクリプトや設定ファイルを組み込んで再構成したKNOPPIXのISOイメージを作成した。ちなみに、同校は今後、この作成したISOイメージを公開予定である。

 なお、異機種のPCが混在するクラスタでは、もっとも遅いPCに全体の性能が左右される。このため、同一機種でクラスタを構築するのが望ましいとされる。同校では、3つの情報教室に設置された計64台のPCが2003年9月に同一機種に更新された。CPUはPentium4 2.4GHz、メモリ528MB、ネットワークはRealtek RTL8139/810x Fast Ethernet(内蔵NIC 100Base-TX)が搭載されたPCを、CentreComのスイッチ6台、同じくCentreComのレイヤ2スイッチ1台で接続した。各教室には約20台のPCが配置されていたが、これを10台ずつスイッチで接続、さらにこれらのスイッチをレイヤ2スイッチで接続するという構成だ。

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ