計算工学ナビ

ものづくりにHPCを活用するための ツールとケーススタディー

サイト内検索

RaspberryPiクラスタ製作記 第1回「スパコンを作ろう」

前回は、京を代表とするスーパーコンピュータがその高い性能を活かして科学技術や医療の発展に貢献しているという話をしました。ですがその高い性能はどうやって得られているのでしょうか。今回はその理由に迫り、低価格PCボード”RaspberryPi”を使って実際に小さなスパコンを製作します。

第1回 RaspberryPiでスパコンを作ろう

rpcComic2s

漫画にて先生が「スパコンを作る」と発言していましたが、本当にスパコンを作ることができるのでしょうか。 その秘密をスパコンの性能の理由を調べることで明らかにしていきましょう。

スパコンの主流はクラスタ

TOP500は、スーパコンピュータの性能をTOP500までランキングしているウェブサイトです。 ここを参照することにより、開発国、メーカー、コア数、消費電力など、様々な情報を得ることができます。

我が国の誇るスパコン「京」は、2011年6月のTOP500登場から約1年間トップの座を守りました。登場から3年たった2014年6月では順位は下がりましたが、いまだ4位という記録を保持し続けています。

2014年6月の1位から4位の記録(TOP500より引用)

順位 名前 コア数 Rmax(TFlops/s) Rpeak(TFlops/s) Power(kW)
1 天河二号 中国 3,120,000 33,862.7 54,902.4 17,808
2 Titan アメリカ 560,640 17,590.0 27,112.5 8,209
3 Sequoia アメリカ 1,572,864 17,173.2 20,132.7 7,890
4 日本 705,024 10,510.0 11,280.4 12,660

ここで注目したいのはスパコンのコア数です。これを見てもわかるように、現代のスパコンはその性能を高めるため大量のCPUコアを持ち、それらに並列(Parallel)に処理を行わせることで、計算を非常に高速に処理しています。身近な例をあげると、夏休みの宿題に計算問題を100題だされたとしても、100人が1問ずつ解いて最後に答えを共有すれば一瞬で終わりますよね。これと同じです。

クラスタとは

スパコンは大量のCPUを持つと書きましたが、これは必ずしも1台のコンピュータ内にすべてのCPUが入っているという意味ではありません。 現代のスパコンは、主に複数台のマシンを連結させるクラスタリングと呼ばれる手法で、大量のCPU資源を集めています。

クラスタとはノードと呼ばれるそれぞれがOSをもつ独立したコンピュータを、互いに高速なネットワークで接続したコンピュータ・システムのことです。 スパコンランキングでは1990年代に登場し、その後2000年代になって急激に性能を上げ、普及しました。

例えば京のクラスタは、4個の8コアCPUが乗ったボードを、1ラックに24枚搭載し、これを864台集めて、705,024コアの性能を実現しています。現在トップの天河二号やTitanも同様にクラスタを構築してその膨大なコア数を集めています。

このように現代のスパコンは大量のマシンを接続しクラスタを構築し、作業を分担することで高速化を行っています。 ここに、スパコン自作の鍵があります。

スパコンは作れる?

クラスタは、大雑把には複数台のコンピュータをつなげて高い性能を得るというものでした。つまり、普段わたしたちの使っているパソコンを複数台つなげることによってクラスタを作成し、台数を何百台、何千台と増やせばTOP500に入れるようなマシンが作れるのではないでしょうか。

この推測があながち間違っていないことは、長崎大学の製作したスパコン”DEGIMA”が証明しています。このスパコンはIntel Core i5の乗った「自作パソコン」で作られたクラスタマシンで、2011年6月から2012年6月までTOP500ランキングに登録されていました。

つまりコンピュータを複数台つなげることによって、スパコンは私たちの手でも作ることができるのです。

スパコンをつくろう

手の届かないものと思っていたスパコンが、手の届きそうなところまで近づいてきたのを感じます。しかしあと一歩たりません。クラスタを作ることによりスパコンが作れることはわかりましたが、TOP500に載るような性能を得るためには、少なくとも数十台以上の自作パソコンでクラスタを構築する必要があります。ここで問題となってくるのが金銭面で、現在の自作パソコンは安くても1台10万円近くするため、個人の予算では用意することができません。そこで、少し考え方を変えることにします。

突然ですが”GRAPE-1“というスパコンをご存知でしょうか。天体の時間進化や動力学を数値シミュレーションする目的に特化することで、試作機1台の製作費が20万円という低価格を実現した、非常に有名なスパコンです。このGRAPE-1のように目的を明確にし、それ専用のマシンを作ることにより低価格で高性能なスパコンを作ることも可能です。そこで私たちも目的を明確に設定し、それを達成するため専用のスパコンを作ることにします。

目的を考える

本連載のテーマは、スパコンについて学ぶことです。学習用と考えればTOP500に入るような性能は必要ありません。クラスタ構築による性能上昇と、その過程で遭遇するであろう問題を追体験できればそれで十分なはずです。よって今回の目標は「学習用スパコンをつくる」こととし、それ専用のマシンを作ることにします。

構成部品を考える

目的が決まったので、今度はどのコンピュータを使うかを考えます。ここでこれまでの内容と目的を元に必要事項をまとめたものが以下になります。

・安価である
・複数台の入手が容易である
・コンパクトである
・消費電力が少ない

この必要事項を満たすものとして真っ先に思い当たるのは”Raspberry Pi”です。

Raspberry Piとは2012年から発売されている、小型のシングルボードコンピュータです。このコンピュータは、イギリスのラズベリーパイ財団によって学校での基本的なコンピュータ教育を促進することを意図して作られ、販売されました。価格が非常に安価(現在4000〜5000円ほど)であるにもかかわらず、普通のARM Linuxが動作するという特徴から、幅広い年齢層から大反響を得ています。

前述のとおり、Raspberry Piは安価で、入手が容易で、小型で、非常に消費電力の少なく、今回の目的にピッタリです。 残念ながらCPUは”ARM11″という 初代iPhoneに入っていたCPUと同じシリーズなので、理論最大性能は1台あたり700MFLOPSと少々心もとないです。しかしこれを16台集めてクラスタ化すれば、約11GFLOPSと約20年前のスパコン”Deep Blue“とほぼ互角の性能が見込めるため、結果的には今回の目的にピッタリです。

よって今回はRaspberry Piを16台使ったクラスタを構築し、実験を行うことにします。

RasPi以外に必要なもの

Raspberry Piを利用するためには、本体以外に以下の物が必要です。

・MicroSDカード 8GB以上
・電源供給用USB-MicroBケーブル(50cm程度)
・電源供給用USB充電器
・LANケーブル(50cm程度)
・スイッチングハブ(17ポート以上)
・電源タップ
・Raspberry Pi連結用スペーサーとM2.6ネジ

加えてRaspberry Piを置くラックがあると便利なので、100円ショップで以下のものを購入しました。

・小型メタルラック(高さ30cm、棚2段)
・結束バンド
・ファンシー金網
・金網用フック付き小物いれ

以上の機材を組み立てていきます。

Raspberry Piを連結する

Raspberry Pi(Model B+)を箱から出し、M2.6のスペーサーとネジでつなげていきます。

IMG_2564
IMG_2565

8台ずつのタワーが2練できれば完了です。

IMG_2571

ラックを組み立ててスイッチを入れる

メタルラックを組み立て、結束バンドを使って背面に金網を取り付けます。さらにそこに小物入れを取り付け、スイッチを入れて結束バンドで固定します。

IMG_2593

配線をする

最後にRaspberry Piを載せ、電源とLANケーブルを配線します。 実はこの作業が一番大変で、なるべくメンテナンスしやすく、見栄えの良い配線になるまで何度も試行を繰り返しました。たった16台の配線ですらこれだけ大変なので、1ラックに24台ものシステムボードを搭載し、それを864台も接続している京は一体どのような配線を行っているのか想像もつきません。きっとその配線にも高度な技術が使われているのだと思います。図らずもクラスタ構築の大変さを知ることになりました。

完成

配線が完了すればハードウェアは完成です。ソフトウェアの初期設定については、別のページで詳しく解説します。

OLYMPUS DIGITAL CAMERA

まとめ

今回はスーパコンピュータが作れるということの説明と、 実際にRaspberry Piを使ってスーパコンピュータと同じようにクラスターマシンの制作を行いました。 この内容を以下に簡単にまとめます。

・スーパーコンピュータの主流はクラスタ
・用途を絞れば安価にスパコンを作ることも可能
・たった16台でもケーブルの配線や設定は大変

次回は今回製作したRaspberry Piスパコンを用い、PHASE/0の動作の確認や、性能の評価を行います。

著者プロフィール

西永俊文 1992年生まれの情報系大学生。一人前のエンジニアを目指して日々勉強中。PDA全盛期の影響から、組み込み機器が好き。今欲しい物は、現代の技術で作られた物理キーボード付きで4インチ以下の小さなスマートフォン。著書に『BareMetalで遊ぶ Raspberry Pi』がある。
〈四コママンガ:

OLYMPUS DIGITAL CAMERA
著者近影(手にしているのは今回製作したRasPiクラスター初号機)

連載目次

2014-12-01 RaspberryPiクラスタ製作記 第0回「スパコンって本当にスゴイの?」
2014-12-01 PHASE/0のインストール方法
2014-12-16 RaspberryPiクラスタ製作記 第1回「スパコンを作ろう」
2014-12-16 Raspberry Piの初期設定
2014-12-29 RaspberryPiクラスタ製作記 第2回「スパコンで遊ぼう」
2014-12-29 HPLのインストール方法
2015-02-11 RaspberryPiクラスタ製作記 第3回「並列プログラミング」
2015-02-11 MPIを用いた並列プログラミングの概要
2015-02-11 LU分解アルゴリズムのおさらい
2015-03-01 RaspberryPiクラスタ製作記 第4回「BareMetal並列計算」