次のページ 前のページ 目次へ

2. はじめに

日用品のコンピュータとかネットワークハードウェアの性能が向上し、 安価になるにつれて、非常に高価なスーパーコンピュータの CPU 時間を買うよりも、簡単に入手できる部品で並列計算システムを構築するのが ますます実用的になってきています。実際に、 Beowulf タイプのマシンの価格性能比は、伝統的なスーパーコンピュータよりも 3 倍から 10 倍良好です。 Beowulf アーキテクチャはうまく規模拡大可能で、 構築が容易ですし、殆どのソフトウェアは無料なので、 ハードウェアを買うだけですみます。

2.1 この HOWTO を誰が読むべきか?

この HOWTO は、少なくとも Linux オペレーティングシステム で何かの経験を持つ人の為に書かれています。 Beowulf 技術の知識とか、 もっと複雑なオペレーティングシステムとかネットワーク概念の理解は、 不可欠ではありません。でも、並列計算の何がしかの経験があれば有利です (結局のところ、あなたは本文書を読むべき理由がきっとあるはずです)。 この HOWTO は、 Beowulf についての疑問全部には答えないでしょうが、 あなたにアイデアを示し、 あなたが正しい方向に向かえる道標になることでしょう。 本 HOWTO の目的は、背景情報と、 更に進んだ文書へのリンクと参考文献を提供することです。

2.2 Beowulf って何?

Famed was this Beowulf: far flew the boast of him, son of Scyld, in the Scandian lands. So becomes it a youth to quit him well with his father's friends, by fee and gift, that to aid him, aged, in after days, come warriors willing, should war draw nigh, liegemen loyal: by lauded deeds shall appearl have honor in every clan.

(訳注:この韻文の和訳は以下のとおりです。これは、 「中世イギリス英雄叙事詞 ベーオウルフ」忍足欣四郎訳 岩波文庫からの抜粋ですが、一部漢字は引用の都合で違ってしまいました。)

シェルドの御子ベーオウルフは、 声望あまねく広まり、シェデランドにて その名は隠れなきものであった。 王子たる者、かくのごとく、父君の庇護の下にある時より、 すべからく徳を施し、惜しみなく財宝をわかち与うるべきである。 さすれば、やがて年老いたる後、いざ合戦の時いたるや、 忠義なる郎党は、王を助けつかまつるであろう。 いかなる民にあっても、人は名誉ある 行いをもって栄えるものである。

(訳注: この詞は、古代英詞 ベオウルフの 17 行目から 25 行目までの現代英語訳 であろうと思わますが、「古代英詞 ベオウルフ」鈴木重威編研究社刊の p68 によれば、この部分の Beowulf は詞の主人公の Beowulf と同名の別の王 だ、 としています。しかし、特に本文書のテーマに関係はしません。)

Beowulf は英語で書かれた最古の叙事詩です。この話は、 Grendal と呼ばれた怪物を倒した、偉大な強さと勇気を持った英雄の物語です。この英雄 Beowulf を更に知りたければ History を参照のこと。

多分、 Beowulf の定義の数は、 Beowulf スーパーコンピュータ設備を構築したり使った人の数だけあります。 NASA の元祖のマシンと同じ方法で構築されたものだけが Beowulf と呼べる、 と主張する人もいます。その他にも、もう一方の極端に走って、 ワークステーションのシステムで並列コードを走らせているもの全てを Beowulf と呼ぶ人もいます。私の Beowulf の定義はこの二つの中間のどこかにありまして、 Beowulf メーリングリストへの多数の投稿に基づくものです。

Beowulf は並列計算に使える複数コンピュータのアーキテクチャです。 Beowulf は普通、一つ以上のクライアントノードと、 一つのサーバノードがあり、 それらをイーサネットなどのネットワークで一緒に接続して構成したシステムで す。 Beowulf を構築するのに使う部品は、 Linux が走る任意の PC とか、標準イーサネットアダプタとスイッチなどの、 ありふれたハードウェア部品です。 Beowulf は、特注ハードウェアを全く使わないで簡単に再現できます。 また、Beowulf で使うソフトウェアは、 Linux オペレーティングシステムや PVM(Parallel Virtual Machine) 、 MPI(Message Passing Interface) などの、ありふれたソフトウェアです。 このサーバノードは、 クラスタ全体の制御とクライアントへのファイル提供を行います (訳注:クラスタとは「ひとかたまり」にしたもの、という意味)。 また、サーバノードは、そのクラスタのコンソールであり、 外部世界へのゲートウェイでもあります。 大きな Beowulf マシンは一つ以上のサーバノードを持つかもしれませんし、 コンソールとか、各ステーションのモニタ等の、 特定業務専用のノードもあるかもしれません。殆どの場合、 Beowulf システム中のクライアントノードは何もできません、 できなければできない程良いのです。 クライアントノードはサーバノードによって設定され制御され、 するように言われたことだけを行います。 ディスクレスクライアントの設定では、クライアントは自分の IP アドレスとか名前さえ、サーバーが教えるまでは知りません。 Beowulf と COW (ワークステーションのクラスタ Cluster of Workstations ) との主な違いの一つは、多数のワークステーションとしてよりも、 単一のマシンのように振る舞う方に Beowulf は近い、という事実です。 殆どの場合に、クライアントノードはキーボードとかモニタを持たず、 リモートログイン(シリアル端末かもしれませんが) を介してだけアクセスされます。 Beowulf のノードは、ちょうどマザーボードの中に差し込める CPU とかメモリモジュールのように、そのクラスタに差し込める CPU + メモリのパッケージと考えられます。

Beowulf は、特別なソフトウェアパッケージでも、 新規ネットワークトポロジでも、最新のカーネルハックでもありません。 Beowulf は、複数の Linux コンピュータをクラスタ化して、 並列仮想スーパーコンピュータを形成する技術です。 Beowulf アーキテクチャをもっと高速に、設定をもっと簡単に、 もっと使い易くする、カーネル修正とか、PVM と MPI ライブラリ、 設定ツール等のソフトウェアパッケージは多数あります。 しかし、標準的な Linuxディストリビューションを使って、 何のソフトウェアも追加しないで Beowulf クラスのマシンを構築できます。あなたがネットワーク化された Linux コンピュータを 2 台持っていて、少なくとも NFS を介して /home を共有しており、お互い信用できてリモートシェル (rsh) を実行するのなら、 あなたは単純な 2 ノードの Beowulf マシンを持っている、 と論じられるでしょう。

2.3 分類

Beowulf システムは多様な部品で構築されてきました。 性能のために、ありきたりでない部品(つまり、単一の製造業者の製品) いくつかも採用されてきました。 システムのタイプが何通りかを数え上げるためと、 マシンの議論を少しは簡単にするために、 私たちは次の単純なクラス分けの枠組みを提案します。

CLASS I BEOWULF

このクラスのマシンは、完全にありきたりの「簡単に入手できる」 パーツを使って全部が構築されます。ありきたりの 「簡単に入手できる」パーツを定義するのに、「 Computer Shopper 」 検証テストを使うことにしましょう( Computer Shopper は PC システムとか部品の、 1 インチ厚の月刊雑誌/カタログです)。 このテストは次のようなものです。

CLASS I Beowulf とは、少なくとも 3 つの国で入手できるか、 世界的に入手できる、 というのに丸が付けられた広告カタログで見付かるパーツで 組み立てられるマシンである。

CLASS I システムの利点は

CLASS I システムの欠点は

CLASS II BEOWULF

CLASS II Beowulf は単純に、 Computer Shopper 検証テストをパスしないマシン全てです。 これは悪いことではありません。全くこれはマシンの分類にすぎません。

CLASS II システムの利点は

CLASS II システムの欠点は

一つのクラスが他方のクラスより良好だとは限りません。 全てはあなたのニーズと予算に依存することです。システムをこう分類するの は、 Beowulf システムについての議論を若干実りあるものにさせるためにすぎませ ん。 「システム設計」の節は、 どの種類のシステムがあなたのニーズに一番合うかを判断するのに役立つでしょ う。


次のページ 前のページ 目次へ