• 検索結果がありません。

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

N/A
N/A
Protected

Academic year: 2021

シェア "183 Java による PRAM コンパイラの作成"

Copied!
1
0
0

読み込み中.... (全文を見る)

全文

(1)

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

情報論理工学研究室  池田直樹

1.序論

並列アルゴリズムの計算量の評価を行う為には、

PRAM(Parallel Random Access Machine)が必要とさ れる。しかし、実際にPRAMを実現し計算量の評価を 行うことは困難とされる。そこで本研究では、PRAM 上での計算量の評価を実験的に行う為のツールとして、

PRAM シミュレータの一部である PRAM コンパイラ の作成を行う。

2.研究内容

PRAM シミュレータは PRAM アルゴリズムを使用 するための高級言語とアセンブラ、高級言語をアセン ブラに変換するコンパイラ、そしてそのアセンブラを 実行するPVSM(Parallel Virtual Stack Machine)か らなる。本研究は、高級言語にK05言語、アセンブラ VSM アセンブラを用いる。それらを用いて PRAM 用の並列プログラムを記述するために、K05 言語に並 列命令parallel文と特殊記号$pを加え、また、VSM センブラの命令セットにPARA・PUSHP・SYNCを加 えた。さらに、これらを用いて、拡張K05言語から拡 張並列アセンブラを生成するコンパイラを作成する。

parallel文の文法は以下の通りである parallel(式①,式②)文

式①・②は並列計算をする際に使用するプロセッサ 番号であり、式①〜②のプロセッサを用いて以降に続 く文を並列に実行する。さらに、特殊記号$pはその記 号を用いた場所における実行時のプロセッサ番号を表 す。

アセンブラの命令セットに加えたPARA・SYNC・P  USHPについては以下の意味を表す。PARA とはそれ 以降での並列計算の開始を表す。SYNC は各プロセッ サがSYNCを読むまで動作を停止し、全てがその命令 を読むと再び動作を開始する、すなわち各プロセッサ で同期をとる意味を表す。PUSHPは、各プロセッサが プロセッサ番号をスタックトップにつむという意味を 表す。

 

3.結果・考察

図1は拡張K05言語を用いて記述したプログラム例 である。これは、1から15までのプロセッサを使用し 各プロセッサにプロセッサ番号を表示させるプログラ ムである。図1のプログラムを本研究で作成したコン パイラでコンパイルすることにより図2に示す VSM アセンブラが得られる。さらに図3は、図2のアセン ブラをPVSMで実行させたときの出力結果の一部であ り、各プロセッサの出力と実行にかかったステップ数 が出力されている。

図1:並列プログラム        図2:並列アセンブラ

図3:PVSMの実行結果

4.結論

  本研究ではPRAMでの実験的な評価を行う為に、並 列コンパイラとPRAMの動作を記述できる高級言語を 作成した。本研究で作成した高級言語はPRAMアルゴ リズムの動作を記述できる。また本研究で作成したコ ンパイラを用いることでPRAMアルゴリズムの計算量 の実験的な評価を行うことができる。

5.参考文献

1)平成17年度 情報・コンピュータシステム プロジェ クトⅠ指導書

参照

関連したドキュメント

し売上高に比例する歩合給の方式を採用するときは︑報酬の増加をはかるために不正または不当に売上高を増加しよ

この見方とは異なり,飯田隆は,「絵とその絵

2021] .さらに対応するプログラミング言語も作

LLVM から Haskell への変換は、各 LLVM 命令をそれと 同等な処理を行う Haskell のプログラムに変換することに より、実現される。

しかし,物質報酬群と言語報酬群に分けてみると,言語報酬群については,言語報酬を与

 リスク研究の分野では、 「リスク」 を検証する際にその対になる言葉と して 「ベネフ ィッ ト」

注)○のあるものを使用すること。

「海洋の管理」を主たる目的として、海洋に関する人間の活動を律する原則へ転換したと