本サイトは、Cell トータルソリューションカンパニー -フィックスターズの技術者有志が運営するサイトです。

MARS

出典: PS3 Linux Information Site / Cell/B.E.のパワーを体験しよう

目次

What is MARS(Multicore Application Runtime System)

MARSは2008年7月10日にソニーからリリースされた、SPE主導でプログラムを実行するための実行環境ライブラリ群です。

従来のLibspeを用いたプログラム実行では、PPEのプログラムでSPEのプログラムの実行順番や何スレッドで実行するか等をあらかじめ考えなければならず、同じプログラムを並列に動作させたり、小さなプログラムをSPEでパイプライン的に処理させたい場合には、プログラマがその制御ルーチンを書く必要がありました。MARSを利用すると、タスクと呼ばれる単位で実行したいプログラム群を管理したり同期をとったりする機構がライブラリ化されており、Libspeを利用してプログラマが制御ルーチンを書くよりも効率よくSPEプログラムを実行することが可能になります。

  • 2008年11月11日 MARS 1.0.1がリリースされました
  • 1.0.0のバグ修正版になります。
  • 2008年10月24日 MARS 1.0.0がリリースされました
  • 2008年9月12日 MARS 0.9.2がリリースされました
  • サンプルとして提供されていたOpenSSLがバージョンアップされ、新たなサンプルとしてzlibが追加されました



MARSの情報

  • 公式サイト:ソースおよび発表資料、ドキュメント等がまとまっています
  • 上記サイトのライブラリリファレンスへのリンク
  • MARSで実装されているサンプル
mars-src.1.0.0.tgzには機能別に豊富なサンプルが付属しています。MARSを理解するにはこのサンプル群のソースを見るのがいいでしょう。
他にも以下のMARSを使ったサンプルがあります。
  • OpenSSL
  • zlib


MARSのビルド方法

  • tarballを展開します
% tar xvzf mars-src-1.0.0.tar.gz
  • 展開してできた'mars-src/core'へ移動して、次の手順でソースをビルドしてインストールします
% cd mars-src/core
% ./bootstrap
(32bit版)
% ./configure --with-mars-platform=cell PPU_EMBEDSPU=ppu-embedspu PPU_CC=ppu-gcc PPU_CFLAGS="-O3 -funroll-loops -m32" SPU_CC=spu-gcc SPU_CFLAGS="-O3 -funroll-loops"
% make
# su
# make install
(64bit版)
% ./configure --libdir="/usr/lib64" --with-mars-platform=cell PPU_EMBEDSPU=ppu-embedspu PPU_CC=ppu-gcc PPU_CFLAGS="-O3 -funroll-loops -m64" SPU_CC=spu-gcc SPU_CFLAGS="-O3 -funroll-loops"
% make
% su
# make install

RPMのインストール方法

  • バージョン1.0.1からRPMが用意されました。RPMを使うことで簡単にインストールすることができます
  • MARSサイトから
  • mars-1.0.1-1.ppc.rpm
  • mars-devel-1.0.1-1.ppc.rpm
  • mars-doc-1.0.1-1.ppc.rpm
  • を取得し、次の手順でインストールします
% rpm -Uvh mars-1.0.1-1.ppc.rpm mars-devel-1.0.1-1.ppc.rpm mars-doc-1.0.1-1.ppc.rpm
  • RPMはFedora 9でCellSDK 3.1を使っている人向けに用意されています。それ以外のディストリビューションや他のバージョンのCellSDKを使っている人は、ソースからビルドすることをお勧めします。
表示
個人用ツール
Open Source Projects
ツールボックス