Quitada ブログ HAX

Hatena Blog でも Quitada ブログ

Play Station 3 に Platform Symphony インストールしてみた

ちょっと前に、プレステ3に Linux をインストールしてみたのですが、その最大の理由は、プラットフォームコンピューティング社の金融系グリッドミドルウェアである Platform Symphony が IBM BladeCenter の QS シリーズ対応した一方で、実は PS3 でも動くことをききつけたからです。

QS シリーズは高くて買えませんが、プレイステーション3は買うことができるので、ひとまず Platform Symphony で Cell のパワーを実感してみたく、インストールに挑戦してみました。

結論からすると動きましたが、メーカーのサポートとか一切うけられないのでご注意ください。

以下、インストールメモを書きますが、メーカーへの直接のお問い合わせは避けてください。また、これをみてインストールに挑戦し、失敗したり故障が発生したりした場合の責任は、当方負いかねますのであらかじめご了承くださいませ。

まず、Platform Symphony 4.0 でグリッドを構築します。プレステ3で Platform Symphony 4.0 が動くとはいえ、計算ホストだけなので、一通り動作するグリッド環境を構築し、それにプレステ3を計算ホストとして追加するということになるためです。

#ちなみに、quitada の x86_64 Linux 版のインストールメモはこちら

また、プレステ3には Fedora 7 あたりと Cell SDK 3.0 がインストールされていることが前提です。こちらは、フィックスターズさんのサイトのこちらとか参照願います。

#最新の Fedora 9 でも動くはずで、細かい問題がある Fedora 7 よりも OS の導入は楽なはず。ただ、Cell SDK 3.0 でサポートされているのが Fedora 7 どまりなので、今回は Fedora 7 で(Fixstars さんのサイトによると、インストール時にいろいろと怒られるようですが Fedora 9 でも Cell SDK 3.0 の導入は可能なようですが)。

さて、準備が整ったところで Platform Symphony 4.0 を PS3 にインストールしてみましょう。

#ここまでくるのが大変という噂も…

まず、QS22 とかに RHEL 5.2 とかインストールして、Platform Symphony 4.0 をインストールする通常の手順を Fedora 7 + PS3 でやってみます。以下のとおりです。

# export CLUSTERADMIN=[クラスタ管理 OS ユーザー名]
# cd /path/to/installer
# chmod u+x ./symcomputehostSetup4.0.0_linux2.6-glibc2.5-ppc64_CellBE-106980.bin
# ./symcomputehostSetup4.0.0_linux2.6-glibc2.5-ppc64_CellBE-106980.bin --prefix=/path/to/Symphony

で、これをやるといきなり以下のように怒られてインストールが先すすみません。

Cannot detect the binary type of this host.
This distribution is for linux2.6-glibc2.5-ppc64_CellBE. It is not compatible with your environment. You need the distribution for your system architecture.
Exiting...

で、エディタでこの bin ファイルの中身を見てみると、先頭がシェルスクリプトでその後にバイナリがくっついている構成で、dd コマンドでバイナリから tar ボールを抽出、tar ボールを解凍して 2 つの rpm ファイルができるのでそれでインストールがはじまるようで。でも、上述のとおり、dd コマンドのところまですすまないので、ここではまず dd コマンドを手動で実行して tar ボールを抽出してみましょう。中身のスクリプトを紹介するのもアレなんでここは何も考えずに以下の dd コマンドを bin ファイルと同じディレクトリで実行しましょう(改行されてますが、1 行で入力してください)。

dd if=./symcomputehostSetup4.0.0_linux2.6-glibc2.5-ppc64_CellBE-106980.bin of=./symphony_cell_40.tar.gz skip=1 bs=1048576 count=201

#バージョンとか異なったら、オフセット値とか微妙に異なると思うので、その場合はご自身でハックしてみてください。

そうすると、同一ディレクトリに symphony_cell_40.tar.gz という名前の tar ボールが生成されるので、これを解凍してやると、以下の 2 つの rpm ファイルが抽出されます。

egocomputehost-linux2.6-glibc2.5-ppc64_CellBE-1.2.3-106980.rpm
symphony-linux2.6-glibc2.5-ppc64_CellBE-4.0.0-106980.rpm

ためしに、rpm -ivh でインストールしようとすると、bin ファイルを実行した場合と同様「Cannot detect the binary type...」というエラーがでてきてやはり先にすすみません。ここでもまた、rpm ファイルをエディタで開いてやって、「linux2.6-glibc2.5-ppc64_CellBE」というキーワードでサーチしてみると、OS の glibc のバージョンの小数点以下が 5 で、CPU タイプが Cell Broadband Engine であれば、バイナリタイプに linux2.6-glibc2.5-ppc64_CellBE を設定するという条件式がみつかります(ま、そのままスクリプトを掲載するのもあれなので文字で説明)。つまり、Cell 用の Symphony は、glibc が 2.5 の LinuxRHEL 5.x)でのインストールを前提としているんですね。今回ターゲットとしている Fedora 7 は、glibc が 2.6 なので、ここでひっかかっています。なので、スクリプトを変更して、「OS の glibc のバージョンの小数点以下が 6 で…」としてやります。また、rpm ファイルを変更したので、そのままインストールしようとすると、ダイジェストチェックにひっかかるので、--nodigest をつけてチェックを行わないようにします。また、Symphony の制約の一環で「ego...」の方を先にインストールします。ということで、以下のコマンドラインでインストールします。

# export CLUSTERADMIN=[クラスタ管理 OS ユーザー名]
# cd /path/to/installer
# rpm --prefix /path/to/Symphony --nodigest -ivh egocomputehost-linux2.6-glibc2.5-ppc64_CellBE-1.2.3-106980.rpm
#rpm --prefix /path/to/Symphony --nodigest -ivh symphony-linux2.6-glibc2.5-ppc64_CellBE-4.0.0-106980.rpm

インストール後も、以下の、Symphony の環境変数を設定するスクリプトで、rpm ファイル同様、glibc のバージョンチェックをしているので、CellBE とか検索して付近の 5 を 6 に変更します。

$PATH_TO_SYMPHONY/kernel/conf/profile.ego
$PATH_TO_SYMPHONY/soam/conf/profile.soam

ここらへんのインストールテクニックは、たとえば、x86 Linux 用の Symphony を glibc が 2.8 な Fedora 9 にインストールする、といったシチュエーションでも使えます。ただし、メーカーのサポートはうけられないのであくまでも、自己責任でお願いします。

ちなみに、プレステ3を Symphony のグリッドに参加させると、CPU 数 1 個、コア数 6 個と認識されます。どうやら、コア数は SPE の数が認識されるようですね。