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

JavaによるPRAM
コンパイラの作成
03-1-47-162
神谷 道利
背景
高速化のための手法
 プロセッサ性能の向上
 アルゴリズムの最適化
 並列処理
PRAM
parallel random access machine

仮定
メモリへの読み書きが
1単位時間で可能
各プロセッサでの演算が
1単位時間で可能
P1
P2
P3
P4
共有メモリ
PRAM
parallel random access machine
0
P1
P2
P3
P4
1
2
3
4
5
演算命令
メモリアクセス命令
入出力命令
同期
目的
PRAMの実現は困難
PRAMシミュレータが必要
PRAMコンパイラの作成
PRAMシミュレータ
PRAM用並列言語プログラム
PRAMコンパイラ
並列アセンブラ
PVSM
PRAM用並列言語
K05言語⇒拡張K05言語
parallel(式1,式2)文
 プロセッサ番号式1-式2番を用いて文を並
列に実行
$p
 parallel文中で記述する事でプロセッサ番号
を持つ変数として処理される
並列アセンブラ
VSMアセンブラ⇒拡張VSMアセンブラ
 PARA
 SYNC
 PUSHP
Iseg
Stack
P1
PUSHI 0
PUSHI 0
1
ASSIGN
REMOVE
Stack
P2
PARA
PUSHP
SYNC
2
Stack
3
P3
プログラム実行例
main{
parallel(0,15)
write($p);
}
PVSM
PRAMコンパイラ
PUSH 0
PUSHI 15
PARA
PUSHP
OUTPUT
SYNC
HALT
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
結果
PRAMコンパイラの正当性の確認
 PRAMアルゴリズムの設計
 正当性の実験的証明
 計算量の実験的評価
考察・今後の課題
 未対応のJAVA言語への対応
 parallel中でのparallelの対応