[论文解读] On Applying Or-Parallelism and Tabling to Logic Programs
本论文提出了 OPTYap,这是首个用于逻辑程序的或行并行表格化引擎,通过在 Yap 的顺序 Prolog 引擎基础上扩展基于 SLG-WAM 的表格化机制和用于或行并行性的环境复制技术,将或行并行性与表格化相结合。该引擎在共享内存机器上表现出良好性能,尤其在具有高或行并行性和有限表格化节点的程序中,证明了表格化与或行并行性在提升逻辑编程可扩展性方面具有强大契合度。
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.
研究动机与目标
- 设计并实现一种将逻辑编程中的或行并行性与表格化相结合的系统,以提升性能与可扩展性。
- 评估或行并行性是否能有效推广至表格化计算,从而克服 SLD 求解的局限性。
- 证明表格化与或行并行性相结合可显著拓展逻辑编程的可行应用范围。
- 评估该系统在共享内存并行机器上的性能表现,尤其在资源竞争与数据结构限制下的表现。
提出的方法
- OPTYap 基于 Yap 高效的顺序 Prolog 引擎构建,利用其既有的执行模型作为基础。
- 采用 SLG-WAM 作为表格化的底层执行模型,支持高效的子目标记忆化,以及对否定和非单调推理的处理。
- 通过环境复制实现或行并行性,支持不同备选子句的独立并行执行。
- 使用前缀树(tries)作为表格的底层数据结构,实现答案的高效索引与压缩。
- 并行执行通过工作线程管理,负责子目标计算与答案获取,通过共享内存与基于帧的协调机制实现同步。
- 在 rgrid/2 和 lgrid/2 等基准测试上评估性能,重点关注表格访问与子目标帧管理中的竞争点。
实验结果
研究问题
- RQ1或行并行性能否被有效推广至表格化逻辑程序中,同时保留两种技术的优势?
- RQ2在共享内存系统中,将或行并行性与表格化结合时,主要性能瓶颈是什么?
- RQ3表格数据结构的选择(如前缀树)如何影响并行可扩展性与竞争程度?
- RQ4OPTYap 在具有高或行并行性和大量表格化节点的程序中,能在多大程度上实现加速?
- RQ5挂起的子目标计算与答案消费之间的依赖关系如何影响并行性能?
主要发现
- OPTYap 在具有高或行并行性和有限表格化节点的应用中实现了良好的加速比,证明了表格化与或行并行性的有效集成。
- 系统在顺序执行中保持了较低的开销,且与领先的顺序表格化系统 XSB 相比表现优异。
- 子目标帧的竞争以及大量恢复的子目标计算(SCCs)是主要性能瓶颈,尤其在 rgrid/2 等基准测试中表现明显。
- 尽管答案前缀树节点数量庞大且表格更新频繁,使用前缀树仍能实现高效的索引与压缩,但更新期间并发受到限制。
- 随着工作线程数量的增加,恢复的 SCC 数量基本保持稳定,表明答案发现过程中存在固有的顺序依赖,限制了并行性。
- 完成算法与表格访问模式在当前工作负载中并非主要性能因素,但未来在非单调推理的复杂依赖场景下,这些组件可能面临压力。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。