Cell Broadband Engineを利用したホログラム計算(前編)
ここではマルチコア・プロセッサ向けプログラムの作成手法について解説する.マルチコア・プロセッサの例として,家庭用ゲーム機であるPLAYSTATION3に搭載されている「Cell Broadband Engine」を取り上げる.このプロセッサの上で動作するプログラムの開発手順と,計算機合成ホログラムのプログラムをCell Broadband Engineに移植した例を紹介する. (編集部)
昨今,プロセッサの動作クロック周波数の向上やプロセスの微細化が進んでいます.そして,このことがトランジスタのリーク電流の増大を引き起こし,消費電力量や発熱量の増加という問題を生んでいます.これらの問題を回避しながら性能を引き上げる手法として,プロセッサのマルチコア化や並列処理技術の導入が提唱されています.
このような流れの中で,いくつかのプロセッサ・メーカは同じコアを複数個搭載したホモジニアス(対称)型のマルチコア・プロセッサを発表しています.さらに,異なるタイプのコアを一つのプロセッサ内に搭載するヘテロジニアス(非対称)型のマルチコア・プロセッサについても,アプリケーションに特化した処理機構を有するコアを組み合わせたものがいくつか発表されています.
本稿でとり上げるマルチコア・プロセッサ「Cell Broad-band Engine(以後,CBE)」は,ソニー・コンピュータエンタテインメント,IBM社,東芝の3社が共同開発したヘテロジニアス型マルチコア・プロセッサです.2006年末に発売された家庭用ゲーム機「PLAYSTATION3」に搭載されたプロセッサであることから,皆さんも耳にしたことがあるのではないかと思います.筆者らが開発に使用した機材を写真1に示します.
右上が家庭用ゲーム機「PLAYSTATION3」.
本稿では,まずCBEの構造や特徴を簡単に紹介し,ある処理に対してそれを並列化する作業,および実際のプログラミングについて解説します.また,計算機合成ホログラム(写真2)のプログラムをCBEに移植した例を紹介します(コラム1を参照).
● すべてのプログラムを並列化できるわけではない
並列処理とは,一つの処理を幾つかの小さな処理に分割し,それらを複数の機構で個別に処理することを言います.そして,それら小さな処理を同時並行で行うことにより,全体の実行時間の短縮を目指します.大手プロセッサ・メーカから最近出荷され始めたマルチコア・プロセッサは,その名のとおり複数の処理機構(CPUコア)を利用して並列処理を行っています.
なぜ大手プロセッサ・メーカがシングル・コアからマルチコアへとかじを切ったのかについては,さまざまな理由があるようです.例えばその一つとして,昨今のCPUでは,そのピーク性能で稼働し続けている時間が非常に短くなってきている,ということが挙げられます.多くの場合,CPUで実際に動かそうとしているプログラムはそれほど難しい計算を行っているわけではなく,さらに,そういった単純なプログラムを複数同時に起動していることがほとんどです.そういった場合,一つ一つの処理に多少の手間がかかっても,同時に複数の処理を実行できる方が都合が良い,ということになります.そこに,シングル・コアの性能向上の限界も相まって,「高価な一つのプロセッサよりも(製造歩留まりなどのコストから見て)安価な複数のプロセッサ」という流れが出てきたのだろうと思います.