2016年12月26日に追記:
この記事は2008年4月に書いたものです。当時はまだ32ビットのPCが使われていた時代で、このような方法で複数台PCによる並列処理システムを構築することができました。現在は64ビットPCの時代です。この記事で紹介している「SCore Cluster System Software」も2011年にリリースされたVersion 7を最後に更新リリースされていません。(64ビットに対応していません。)ですので「過去記事」としてお読みいただきますようお願いします。
スーパーコンピュータも個人で作れる時代になってきた。
掲載画像は4~5年前のモデルのパソコンで、今では中古ショップで1万5千円~2万円くらいで買えてしまう。スペックとしてはCPUがPentium4 2.8GHzでメモリー512MB、ハードディスク40GB、OSなし、コンボドライブくらいの機種。(参考:価格.comで中古検索)
このようなパソコンを5台から10台くらい揃えて1台のコンピュータとして動かせれば量販店で市販されているデュアルCPUの最上位機種のパソコンよりもずっと高速なコンピュータを作ることができる。
自分だけのスーパーコンピュータの誕生だ!
今日紹介するものはWindowsではなくLinuxを使うことになる。複数のコンピュータをネットワークでつなげて使うのいが「クラスタリング」と呼ばれている技術で、それをするためのソフトウェアはSCoreという名前で公開されていて、無料でダウンロードして使うことができるのだ。
スーパーコンピュータを作るために必要なもの:
中古パソコン数台:
1台はサーバーPCで他のPCをコントロールするためのもの。残りは計算ホストPCで台数が多いほど全体の性能が上がる。サーバーPCのほうは計算ホストPCの役割を兼ねさせることもできる。中古パソコンは「OSなし」のモデルを買えば安上がりだ。ただしScoreやLinuxをインストールするためにDVDが読めるコンボドライブ以上であること。同じ機種で揃えたほうがドライバソフトなど同じものが使えるので設定作業が楽になるし問題が生じたときも同じ手順で解決できるので都合がよい。
ギガビットLANカード:
PC同士は高速通信する必要があるため、中古パソコンについている100メガビットのLANカードでは不十分。ギガビットLANカードは1800円くらいで手に入るので、PCの台数分揃える。欲をいえば10ギガビットLANカードがほしいところなのだが、ヨドバシカメラなどの量販店では手に入らない。これを取り扱っている代理店から買うと1枚10万円以上するので個人では無理だ。
作り方の詳細:
「PCクラスタコンソーシアム」のサイトや「Linuxで並列処理をしよう 第2版―SCore Version6で作るスーパーコンピュータ」などの書籍を参考にする。
現在公開されている最新版はSCore 6.0.2.1で、これと一緒にインストールされるのはCentOS 4.4というLinuxだ。
個人では無理だが数千台のパソコンをSCoreを使ってクラスタリングして、1テラフロップスもの計算能力があるスーパーコンピュータを構成することも可能だ。現在世界最速のスーパーコンピュータはIBMのBlue Geneで計算能力は478テラフロップス、およそ21万個のCPUコアを並列処理さている。(2007年11月現在)
さて、スーパーコンピュータを作ったとしても何に使うかが問題だ。計算時間のかかる物理シミュレーションや動画ファイルの変換に使ってもいいかもしれない。夢は膨らむばかりだが電気代がかかりそうだ。。。
注意:「スーパーコンピュータ」として今日の記事では紹介したが、これはPCクラスタである。ビジネス用では各社から「なんとかサーバー」のような名前で売られているので、企業の情報システム担当者にすれば目新しいことではない。ただ、ビジネス向けのサーバーは個人で買える価格ではないので、中古パソコンを使っても同じような高性能サーバーが実現可能なことを紹介させていただいた。
ブログ執筆のはげみになりますので、1つずつ応援クリックをお願いします。
関連リンク:
スーパーコンピュータ・ランキング (2007):
http://www.itmedia.co.jp/news/articles/0706/27/news099.html
the GRAPE Project:
http://grape.mtk.nao.ac.jp/grape/
スーパーコンピュータ技術史:
https://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%BC%E3%83%91%E3%83%BC%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E6%8A%80%E8%A1%93%E5%8F%B2
自作スーパーコンピュータ製作秘話:
http://www.itmedia.co.jp/news/articles/0404/13/news028.html
エヴァンゲリオンのスーパーコンピューター「MAGIシステム」は実在する:
http://gigazine.net/index.php?/news/comments/20070804_magi_system/
ファイヤープロジェクト
http://www.fireproject.jp/./index.html
クラスター システムソフトウェア SCore (エスコア)
http://tridentcomputer.jp/sft_score_01.html
失敗しない並列プログラミング
http://japan.zdnet.com/video/whiteboard/story/0,2000083665,20356240,00.htm
SCore操作マニュアル:
http://www.gsic.titech.ac.jp/TITechGrid/SCore-manual.htm
テキトーな備忘録:
http://tekitobibouroku.blog42.fc2.com/?all
Tiger (Java2 SE 1.5) で追加された並列プログラミング機能
http://www.nminoru.jp/~nminoru/java/j2se15_concurrent.html
いまの会社にはこんな技術をビジネスに使おうなんて人はおらんようだねw
コメントありがとうございます!
会社の中の人さんはRACシステムの経験者なのですね。僕自身は業務でもその経験がないので、17GFLOPSを体感してみたい気がします。やはりチューニングは。。。ということですね。
個人の趣味でするには、目的がないと確かに大げさすぎましたかね。(笑)専用のソフトも組みなおさなければいけないようですし。
つまり、たった数年でFLOPSあたりの消費電力がガンガンさがってる状態で半端なグリッドをこさえても余り意味は無いということです。2万円でポンコツPC8台買ってきてグリッド組むよりクアッドコアの新品マシンのほうが早いんですほんと。
まあそこをあえて趣味で、というなら、物理サーバじゃなくて仮想サーバでやってみたらどうでしょう。速度は全然出ませんが、グリッドのなんたるかはわかります。
そういったプラットフォームの動向を考慮すると、何に使うかの前にグリッドを構築することそのものに疑問を持ったりして、モチベーションがあがりません。今のところSETIのような緩いものなら、数億台のPCをクラスタリングできて良いんじゃないか、ぐらいしか思い浮かばないわけです。
ご返事ありがとうございます。
> 今ならQUAD COREx2のマシン1台
> で17GFLOPSが簡単に出る、というところが
> 問題です。
そういうことでしたか。なるほど。
ドスパラのHPを見てみましたが、QUAD COREのPCも10万円そこそこまで下がってきましたしね。まったくすごいです。
そういう中で確かに3~4台でPCクラスタを構成するのはおっしゃるとおりモチベーションあがらないですね。