Skip to main content
QUICK REVIEW

[논문 리뷰] On Applying Or-Parallelism and Tabling to Logic Programs

Ricardo Rocha, Fernando Silva|ArXiv.org|2003. 08. 04.
Logic, Reasoning, and Knowledge인용 수 6
한 줄 요약

이 논문은 로직 프로그램을 위한 첫 번째 or-병렬 테이블링 엔진인 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 수는 약 일정하게 유지되며, 이는 답변 탐색 과정에 내재된 순서 제약이 병행성의 한계를 정의한다는 것을 시사한다.
  • 현재 워크로드에서는 완료 알고리즘과 테이블 접근 패턴이 주요 성능 요소는 아니지만, 향후 비단조성 추론에서 복잡한 종속성이 이 구성 요소에 부담을 줄 수 있다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.