Skip to main content
QUICK REVIEW

[논문 리뷰] Global Trie for Subterms

João Raimundo, Ricardo Rocha|arXiv (Cornell University)|2011. 12. 16.
Logic, programming, and type systems참고 문헌 8인용 수 4
한 줄 요약

이 논문은 Prolog 테이블링 시스템의 Global Trie(GT) 테이블 공간 구성 방식을 확장한 Global Trie for Subterms(GT-ST)를 제안한다. 이는 복합 서브텀을 모든 term 간 유일하게 표현하여 메모리 중복을 줄이는 기법이다. YapTab에서의 실험 결과, 고차수 복합 서브텀에 대해 메모리 사용량을 최대 51%까지 감소시켰으며, 실행 시간에 영향을 주지 않아, 특히 인자 내 반복 서브텀이 많은 프로그램에서 유의미한 성능 향상을 보였다.

ABSTRACT

A critical component in the implementation of an efficient tabling system is the design of the table space. The most popular and successful data structure for representing tables is based on a two-level trie data structure, where one trie level stores the tabled subgoal calls and the other stores the computed answers. The Global Trie (GT) is an alternative table space organization designed with the intent to reduce the tables's memory usage, namely by storing terms in a global trie, thus preventing repeated representations of the same term in different trie data structures. In this paper, we propose an extension to the GT organization, named Global Trie for Subterms (GT-ST), where compound subterms in term arguments are represented as unique entries in the GT. Experiments results using the YapTab tabling system show that GT-ST support has potential to achieve significant reductions on memory usage, for programs with increasing compound subterms in term arguments, without compromising the execution time for other programs.

연구 동기 및 목표

  • 같은 복합 서브텀이 term 인자들 사이에 반복적으로 표현되면서 발생하는 Prolog 테이블링 시스템의 메모리 과잉 문제를 해결하기 위해.
  • Global Trie(GT) 설계를 확장하여, 단순히 term 수준이 아닌 서브텀 수준에서 서브텀을 공유함으로써 메모리 사용량을 최적화하기 위해.
  • GT-ST에서 서브텀 수준 공유가 실행 성능에 영향을 주지 않으면서 메모리 효율성을 향상시키는지 평가하기 위해.
  • 다양한 프로그램 구조에서 서브텀 색인의 메모리 절감 효과와 오버헤드 간의 트레이드오프를 평가하기 위해.

제안 방법

  • Global Trie(GT) 데이터 구조를 확장하여 복합 서브텀(예: g/1, g/3, g/5)을 전역 서브텀 트라이에 공유 항목으로 인덱싱하고 유일하게 표현하도록 한다.
  • YapTab 테이블링 시스템을 수정하여 GT-ST를 통합함으로써, 테이블 삽입 및 검색 시 서브텀 수준의 캐논리컬라이제이션을 가능하게 한다.
  • 이중 트라이 아키텍처를 사용: 하나는 서브목표 호출을 위한 것이고, 다른 하나는 답변을 위한 것이며, 서브텀은 전역 서브텀 트라이에 저장되어 중복을 제거한다.
  • 구조적으로 동일한 복합 서브텀에 대해 전역적으로 고유 식별자를 할당하는 캐논리컬 표현 메커니즘을 구현한다.
  • 컴파일된 및 비컴파일된 트라이를 모두 지원하여 서브텀 색인 및 검색에서의 성능 트레이드오프를 평가한다.
  • 서브텀 복잡도와 차수의 다양성을 가진 여러 테스트 프로그램을 대상으로 메모리 사용량과 실행 시간을 측정한다.

실험 결과

연구 질문

  • RQ1Global Trie에서 서브텀 수준 공유가 term 수준 공유 대비 Prolog 테이블링 시스템의 메모리 사용량을 줄일 수 있는가?
  • RQ2GT-ST에서 복합 서브텀의 색인 및 해결 처리에 따른 성능 오버헤드는 GT-T 대비 얼마나 되는가?
  • RQ3서브텀의 차수와 반복 횟수가 증가함에 따라 GT-ST의 메모리 및 시간 비용은 어떻게 변화하는가?
  • RQ4서브텀 중복이 최소한인 프로그램에 대해 GT-ST는 실행 시간을 유지하거나 향상시키는가?
  • RQ5고서브텀 반복 프로그램에서 GT-ST는 GT-T에 비해 얼마나 더 뛰어난 메모리 효율성을 보이는가?

주요 결과

  • g/5 서브텀이 500,000개 포함된 f/3 term에 대해, GT-ST는 GT-T 대비 총 메모리 사용량을 49% 감소시켰다(139.24 MB 대비 280.00 MB).
  • g/5 서브텀이 포함된 f/3 케이스에서, GT-ST는 GT 전용 메모리 사용량을 53% 감소시켰다(129.7 MB 대비 275.5 MB).
  • g/5 서브텀이 포함된 f/2 term에 대해, GT-ST는 총 메모리 사용량을 36% 감소시켰다(93.46 MB 대비 146.00 MB).
  • 저차수 서브텀(예: f/1에 g/1)의 경우, 색인 오버헤드로 인해 GT-ST의 테이블 저장 실행 시간이 증가했지만, 고중복 케이스에서는 메모리 절감 효과로 인해 이 오버헤드가 상쇄되었다.
  • 고서브텀 중복 프로그램(예: g/5)에 대해, GT-ST는 메모리 사용량을 최대 51%까지 감소시키며, 시도 및 컴파일 트라이 로딩 시간을 유지하거나 향상시켰다.
  • 서브텀의 차수가 증가함에 따라 GT-ST의 성능 이점이 점점 더 두드러지게 되었으며, 이는 더 많은 노드에 걸쳐 색인 비용을 분산시키기 때문이었다.

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

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

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

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