目次
これは何?
この本は,PS3 Linuxなどで利用可能な
SPEプログラム実行環境である『MARS』について解説した技術系同人誌です.
MARSは,SPEプログラムそのものを書く上で必要なものというわけではありませんが,
MARSを利用すると,
規模の大きなプログラムをSPE上で動かしたり,
プログラム中で様々な種別の処理をSPEに行わせる場合に,
SPEの管理が非常に楽になります.
はたして,この本を手に取るような人に,
そんなものを開発するような機会のある人がどれだけいるのかという感じですが,
何となくネタに困った面白そうだったので書いてみました.
本の目次
この本は,完結編の『外伝』ということもあって, かなり軽めの内容となっています (B5判/76ページ). 目次は以下のようになっています.
- 第1章 はじめに
- 1.1 この本は何?
- 1.2 この本を読み進めるには何が必要?
- 1.3 本書の流れ
- 第2章 MARSのモデル
- 2.1 MARSの構成
- 2.2 MARSカーネル
- 2.3 libspe2を用いた場合との違い
- 第3章 MARSのインストール
- 3.1 ダウンロード
- 3.2 RPMパッケージによるインストール (32bit環境向け)
- 3.3 ソースコードからのインストール (64bit環境向け)
- 第4章 MARSによるタスクの実行・管理
- 4.1 MARSを利用したプログラムの処理の流れ
- 4.2 MARSコンテキスト・タスク管理の基本的なAPI関数
- 4.3 MARSでHello World
- 4.4 タスクからタスクをスケジュール
- 4.5 タスクに関するその他のAPI関数
- 4.6 MARSの中身を見てみる
- 第5章 MARSにおけるタスク間の連携
- 5.1 バリア同期
- 5.2 イベントフラグ
- 5.3 キュー
- 5.4 セマフォ
- 5.5 シグナル
- 第6章 MARSの性能
- 6.1 コンテキストスイッチによるSPEの利用効率の向上
- 6.2 PPEの負荷の軽減
なお,今回も表紙は しら「」氏 の趣味全開で,非常に萌え萌えな感じに仕上がっていますが, 中は完結編と同様に, ガチガチのてふてふです. くれぐれもお間違えのないよう,よろしくお願いします. 内容の雰囲気は,内容の紹介をご参照ください.
誰得?
こんな人にお勧め・・・かもしれない
- MARSが何か知らないけど,ちょっと興味がある人
- MARSの中身を詳しく知りたいけど,ソースコードを読むのが面倒な人
- MARSには興味がないけど, MARSの提供するような機能がSPEの機能をどのように利用して実現しているのか知りたい人
うーん,割と普通ですね.
なお,この本はあくまで外伝です. SPEプログラミングそのものに関する話題は, 完結編の方をご覧ください.
入手方法
内容の紹介
第2章から第6章までの各章で, どんな感じのことが書かれているのかを簡単に紹介します. 適当に抜き出した章のページの画像もあわせて掲載しますので, 雰囲気を感じ取ってください. なお,繰り返しになりますが, 完結編と同じく,こちらの本も中身は全編通してこんな具合です. (ごく一部の人を除いて) ちっとも萌えない ガチガチのてふてふな本ので,くれぐれもご注意ください.
まず,第2章では, タスクの概念やMARSカーネルといった, MARSを知る上で覚えておくべきキーワードを色々と紹介しながら, MARSがどのようにしてSPEプログラムを実行・ 管理しているのかといった話題について取り上げます. 次の第3章では, MARSのインストール方法をごく簡単に紹介します.
第4章ではMARSのタスクの実行・管理について深く掘り下げます. 前半では,MARSを用いたプログラムの雰囲気を知るために, 基本的なAPI関数を紹介しつつ, Hello Worldを動かしてみたりします. また,後半では,MARSのタスクの実行や管理を裏で支えている様々な仕組みがどのように実現されているのかについて, 簡単に解説します.
第5章では,タスク間の連携などで活躍する5種類の機構について紹介します. それぞれ,機能やAPI関数について紹介しています. また,同時に,どのように実装されているのかについても, 簡単に解説しています (字ばっかりですが).
最後に,第6章で, MARSが長所としているところが実際に有効に機能するのか検証しています. あ,もちろん今回も巻末には索引がついています.
サポート情報
ソースコード
この本に掲載されているソースコードおよびソースコード片のうち, 筆者オリジナルのものについては修正BSDライセンスに従うものとします.
- 第4章 MARSによるタスクの実行・管理
- リスト4.2・4.3: hello.tar.bz2
- リスト4.4・4.5: schedmpu.tar.bz2
- 第5章 MARSにおけるタスク間の連携
- リスト5.1・5.2: barrier.tar.bz2
- リスト5.4・5.5: event_flag.tar.bz2
- リスト5.7・5.8: queue.tar.bz2
- リスト5.10・5.11: semaphore.tar.bz2
- リスト5.13・5.14: signal.tar.bz2
訂正表
- C78頒布版 (初版第1刷)
- p.24 mars_task_idの戻り値の型「mars_task_get_id」→「mars_task_id」
- p.60 SPEプログラムのPPEの実行ファイルへの埋め込み 「ELFイメージ」の左右にゴミがついている
- p.62 「libpse2」→「libspe2」
更新情報
- 2024.08.18 入手方法を更新
- 2012.02.04 入手方法を更新
- 2011.01.03 入手方法を更新
- 2010.12.20 サポート情報更新
- 2010.12.19 入手方法更新
- 2010.08.15 入手方法更新
- 2010.08.07 ページ設置
nosuke: <sasugaanijaのgmail.com> (ここでいう「の」は「@」みたいなものです)
Copyright© 2003-2024 nosuke All rights reserved.