PS3でLinux

最近は色んな鳥でPS3対応のがあるらしい。
どうやらPS3のCPUは64bitのPPCとベースのPPEというのと、SPEという石が8つあるらしいです。どうやら実数計算はSPEでやるらしい。

Cell はマルチコアCPUで、1つのCPUの中に9個のプロセッサコアをもつ。1個の汎用的なプロセッサコアと、8個のシンプルなプロセッサコアを組み合わせたヘテロジニアスマルチコア(ヘテロジニアス : Heterogeneous、非対称、異種混合)。汎用プロセッサコアはPowerPC Processor Element (PPE) と呼ばれ、8個のコアはSynergistic Processor Element (SPE) と呼ばれる。オペレーティングシステム (OS) はLinuxなどをサポートする。
http://ja.wikipedia.org/wiki/Cell

で、OSはPPCベースのPPEというのが動かすらしいので、PPCをサポートしてる鳥なら行けるみたいです。

http://wiki.cellfan.info/index.php/PS3_Linux

大概の鳥でいけるみたいです。Ubuntuが安直だけど、Fedraでもいいのかも。デブ系と赤帽系っていうことですかね。Cent OSはないのかなあ。前使ってた。Vineが一番使いいいと思うんだけど、ねーんだろうな。しょうがないや。

コンパイラ

で、コンパイラPPCコンパイラgccな訳だけど、どうやら最適化された動作をさせるためにSPEのコンパイラをどこかのサイトから引っ張って来る必要があるらしいです。それはいいんだけど、SPEとPPEってあってだな、プログラムを書いてて実行ファイルをあてる方を選ぶにはどうしたら良いのかね。
それともPPEはもっぱらOS占有で、細かい計算はSPEでやれってことなんでしょうか。その辺の並列計算のあれが良く分からん。どうにもこれまで普通のマルチコアプロセッサでしか並列計算したことがないので勝手が分かりません。
親分をSPEにして、残りをPPEにするとか、考えそう。
ただ、最近のMPIの流行からすると、全部PPEでやるのが良さげ。悩ましいけど、これも調べるかな。取り敢えずだ、プログラムの組み方が藁かないことには何もできない。

  • PPEプログラミング環境
    • Cellに含まれる2種類のコアの1つであるPPEを使った開発環境や実行環境は、普通のLinux環境と全く変わらない。PPEは殆ど普通のPowerPCなので、gccコンパイルしたPowerPC用バイナリがそのまま動く。
  • SPE プログラミング環境
    • 一方、もう1つのコアであるSPEは、従来のプロセッサとは異質のものなので、開発環境や実行環境は整備してやる必要がある。

http://wiki.cellfan.info/index.php/PS3_Linuxのプログラム開発環境

MPI環境

なんかOSが入って、コンパイラがあればもうそれでおkみたいだ。あとは普通にMPIの作法に則って書けば良いっぽい。Fortranコンパイラはあるのかな。
でもMPI使うときはFortranは封印する予定なので、Cだけあればそれでいい。
MPICHだとミーハーな感じがするので、OpenMPIを使おうと思います。
まあインスコ先をきちんと整理すれば両方使えるんですけどね。
あとは金の計算かなあ。面倒臭いなあ。

http://moss.csc.ncsu.edu/~mueller/cluster/ps3/
http://d.hatena.ne.jp/hoehoe2nd/searchdiary?word=%2a%5bPS3%5d