JAVAによるPRAM コンパイラの作成

JAVAによるPRAM
コンパイラの作成
情報学科
03-1-47-171
板東 俊助
あらまし
► 背景
► 本研究の目的
► 本研究の内容
► 動作確認
► 結果・結論
背景
►コンピュータの「
高速化 」
►計算速度の高速化の方法
・ 良性能プロセッサ
・ 並列処理
PRAM
(Parallel Random Access Machine)
共有メモリ
□
P1
P2
□
P3
・・・・・
Pp
PRAM上での動作
P1
演算命令
P2
メモリアクセス命令
P3
P4
入出力命令
同期
► 同期や通信のコスト、データの局所性を無視
► アルゴリズムの設計・解析がし易い
PRAMの利点と欠点
►利点
・ アルゴリズムの設計・解析がし易い
► 欠点
・ PRAMを実際に実現するのは難しい
PRAMシミュレータ
PRAM用並列言語
PRAMコンパイラ
並列アセンブラ
PVSM(Parallel Virtual Stack Machine)
本研究の目的
►PRAMコンパイラ
・ 並列アルゴリズムの実験的評価
・ 並列アルゴリズムの設計とその計算量
の解析の容易化
研究内容
►PRAM用並列言語
・ 並列処理命令
> parallel ( 式① , 式② ) 文
・ プロセッサ番号を表示する特殊記号
> “$p”
PRAM用並列言語
プログラム
main(){
►
逐次状態
parallel
文
$p
文
文
文
文
・・・・・
並列状態
p1 p2 p3 p4 p5 ・・・
}
逐次状態
並列アセンブラ
・ PARA: 並列処理の開始を表す命令
逐次状態から並列状態に移行
・ SYNC: 並列処理の終了とプロセッサ間
の同期を表す命令
・ PUSHP: プロセッサ番号をスタックに入れる
命令
VSMの動き
PUSHI 0
スタック
PUSHI 3
ASSGN
1
REMOVE
PARA
PUSHP
SYNC
2
3
・
・
・
動作確認
► プログラム例
Main () {
Parallel ( 0 , 15)
Write( $p );
}
VSMアセンブラプログラム
PUSHI 0
PUSHI 15
PARA
PUSHP
OUTPUT
SYNC
HALT
結果・結論
► PVSM
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Execution time : 7
ステップ数7
○ PRAMアルゴリズムの実行にかかる時間
を計測できる
○ PRAMコンパイラは正しくコンパイルし、
PVSMにより並列処理された
今後の課題
►“parallel命令”実行中に“parallel命令”
を実行
►並列処理の多様化