大規模最適化問題、グラフ探索、機械学習やデジタルツインなど

旧名:最適化問題に対する超高速&安定計算

Cell シミュレータ

Cell プログラミングに関して大変役に立つ Wiki ページがある。Cell シミュレーターが提供され始めたのは約1年前だが、様々な場所でも取り上げられて、PS3の発売や Cell 搭載のスーパーコンピュータの計画発表などによって注目度を増している。Intel の CPU と違ってパソコン専用に開発されたわけではないので家電などにも幅広く使用されていく可能性がある。
Cell シミュレーターを実際に使用しようと思って調べていたら、CellSDK も更新されていて(Fedora Core 4 から 5 になっている)、上記のページあるいは月刊 ASCII 7月号の特集とはインストール方法がやや異なる。いろいろ試してみたが結局この文書の手順に沿って行っていくのが確実だ。こちらのページから cellsdk などのファイルを持っていく必要があるが、これには簡単な登録が必要だ。あとは cellsdkスクリプトを起動すれば BSC から必要なファイルを自動でダウンロードする。場合によっては事前に次のようにする必要がある。

yum install freeglut-devel tk

インストールが終わったら systemsim を起動する。

mkdir sandbox
cd sandbox/
cp /opt/IBM/systemsim-cell/run/cell/linux/.systemsim.tcl .
export PATH=/opt/IBM/systemsim-cell/bin:$PATH
systemsim -g &

確かに Cell 3.2GHz の Dual 構成になっている。

[root@(none) ~]# cat /proc/cpuinfo
processor : 0
cpu : Cell Broadband Engine, altivec supported
clock : 3200.000000MHz
revision : 5.0 (pvr 0070 0500)

processor : 1
cpu : Cell Broadband Engine, altivec supported
clock : 3200.000000MHz
revision : 5.0 (pvr 0070 0500)

timebase : 3200000000
machine : CHRP IBM,CPBW-Mambo, Simulated-System

マンデルブローのプログラムを実行してみると以下のようになった。

Cell 3.2GHz : 1175554 micro sec (1.18秒)
Pentium 4 2.6GHz : 7.76秒
Pentium 4 (64bit) 3.9GHz : 5.79秒

大規模な問題を解くときは SPE のメモリの少なさと DMA 転送のコストなどが気になるのだが。