next up previous
Next: GUIシステムの開発 Up: 研究上の成果 Previous: 汎用並列マシン上の MGTP 並列化

Java-MGTP の試作

Java 言語によりグラウンド版 MGTP を実装した[2]。 最も基本的なデータ構造である項のデザインを重点的に検討し、改良を重ねた。 基本クラス Term において、元来は定数項、変数項、複合項の各サブクラスが 個別に有するはずのフィールド変数に対し、 それらの和集合(共通集合ではない)を取った上、 予めまとめて定義しておくことがポイントとなっている。 これにより、キャスト等のオーバヘッドを最小限に抑え、 実行効率の最適化を図ることができた。 さらに、非ホーン節に対する場合分け実行の逐次化に関して、 データ構造(オブジェクト)の複製を一切避けるようにした点も 高効率化に貢献している。

ベンチマーク集 TPTP からいくつか問題を選び、 Java 版 MGTP と KLIC 版 MGTP (項メモリ不使用) の実行性能を比較評価した。 JIT (Just In Time compiler) を適用した Java 版 MGTP では、 KLIC 版に比べ実質的に最大 10 倍強の高速化を達成している。 JIT を適用しない Java 版 MGTP においても、概ね KLIC 版 MGTP と同等以上の速度で解くことができている。

 
表 1:  Performance of Java-MGTP

Java-MGTP 独自の機能として、 (1) 整数、実数、その他のデータ型の導入、 (2) 入力節からJavaコードを呼び出す機構の導入、 等がすでに一部実装済みで、制約MGTP等への拡張のための配慮が図られたほか、 (3) 平行動作可能な部分のマルチスレッド化、 (4) アプレット化やGUIの充実 等、Java の特長を活かせばさらに利便性が向上する。



next up previous
Next: GUIシステムの開発 Up: 研究上の成果 Previous: 汎用並列マシン上の MGTP 並列化



www-admin@icot.or.jp