Skip to main content
QUICK REVIEW

[論文レビュー] On Applying Or-Parallelism and Tabling to Logic Programs

Ricardo Rocha, Fernando Silva|ArXiv.org|Aug 4, 2003
Logic, Reasoning, and Knowledge被引用数 6
ひとこと要約

この論文では、論理プログラムのための最初の or-並列テーブル処理エンジンである OPTYap を提示する。OPTYap は、Yap の逐次 Prolog エンジンに SLG-WAM を用いたテーブル処理と、or-並列性のための環境コピーを拡張して実装されており、共有メモリ型マシン上で良好なパフォーマンスを発揮する。特に、高い or-並列性と限られたテーブル化ノード数を有するプログラムにおいて顕著な性能向上を示しており、テーブル処理と or-並列性が、論理プログラミングのスケーラビリティ向上に強く相性が良いことを示している。

ABSTRACT

The past years have seen widening efforts at increasing Prolog's declarativeness and expressiveness. Tabling has proved to be a viable technique to efficiently overcome SLD's susceptibility to infinite loops and redundant subcomputations. Our research demonstrates that implicit or-parallelism is a natural fit for logic programs with tabling. To substantiate this belief, we have designed and implemented an or-parallel tabling engine -- OPTYap -- and we used a shared-memory parallel machine to evaluate its performance. To the best of our knowledge, OPTYap is the first implementation of a parallel tabling engine for logic programming systems. OPTYap builds on Yap's efficient sequential Prolog engine. Its execution model is based on the SLG-WAM for tabling, and on the environment copying for or-parallelism. Preliminary results indicate that the mechanisms proposed to parallelize search in the context of SLD resolution can indeed be effectively and naturally generalized to parallelize tabled computations, and that the resulting systems can achieve good performance on shared-memory parallel machines. More importantly, it emphasizes our belief that through applying or-parallelism and tabling to logic programs the range of applications for Logic Programming can be increased.

研究の動機と目的

  • 論理プログラミングにおける or-並列性とテーブル処理を統合したシステムの設計および実装を行い、パフォーマンスとスケーラビリティを向上させること。
  • SLD 解釈の制限を克服するために、or-並列性がテーブル化計算に効果的に一般化可能かどうかを評価すること。
  • テーブル処理と or-並列性を組み合わせることで、論理プログラミングの実用的応用範囲を拡大できることを示すこと。
  • 結果得られたシステムのパフォーマンスを、共有メモリ型並列マシン上で評価すること。特に、競合状態とデータ構造の制約下での性能を重点的に検証すること。

提案手法

  • OPTYap は、Yap の効率的な逐次 Prolog エンジンを基盤として構築されており、その既存の実行モデルを活用している。
  • テーブル処理の基盤として SLG-WAM を用い、効率的なサブゴールメモ化および否定や非単調的推論の処理を可能としている。
  • or-並列性は環境コピーによって実装されており、代替的な節の実行を並列に実行可能としている。
  • テーブルの基盤データ構造としてトライを用いており、答えのインデックス化と圧縮を効率的に行える。
  • 並列実行はワーカースレッドがサブゴール計算と答えの取得を担当し、共有メモリとフレームベースの調整によって同期が管理されている。
  • パフォーマンス評価は、rgrid/2 や lgrid/2 といったベンチマークを用い、テーブルアクセスとサブゴールフレーム管理における競合ポイントに注目している。

実験結果

リサーチクエスチョン

  • RQ1or-並列性は、テーブル化論理プログラムに効果的に一般化可能であり、両技術の利点を維持できるか?
  • RQ2共有メモリ型システムにおいて、or-並列性とテーブル処理を統合する際のパフォーマンスボトルネックは何か?
  • RQ3テーブルデータ構造の選択(例:トライ)が、並列スケーラビリティと競合状態に与える影響は何か?
  • RQ4OPTYap は、高い or-並列性と多数のテーブル化ノードを持つプログラムで、どの程度のスケールアップ効果を達成できるか?
  • RQ5保留中のサブゴール計算と答えの消費の間の依存関係が、並列性能にどのように影響を与えるか?

主な発見

  • OPTYap は、高い or-並列性と限られた数のテーブル化ノードを持つアプリケーションで良好なスケールアップを達成しており、テーブル処理と or-並列性の有効な統合を示している。
  • 逐次実行においても低オーバーヘッドを維持しており、先端的な逐次テーブル処理システム XSB と比較しても優れた性能を発揮している。
  • サブゴールフレームへの競合と、多数の再開されたサブゴール計算(SCCs)は、特に rgrid/2 のようなベンチマークで顕著なパフォーマンスボトルネックとなっている。
  • 答えのトライノード数が多く、頻繁なテーブル更新が行われても、トライの使用により効率的なインデックス化と圧縮が可能であるが、更新中は並列性が制限される。
  • ワーカー数の増加に対しても、再開された SCC の数は概ね一定のまま維持されるため、答えの発見に内在する順序制約が並列性の制限要因となっていることが示唆される。
  • 現在のワークロードでは、完了アルゴリズムとテーブルアクセスパターンが主なパフォーマンス要因ではないが、非単調的推論における複雑な依存関係は、将来的なアプリケーションでこれらのコンponents を圧迫する可能性がある。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。