...
首页> 外文期刊>Theory and Practice of Logic Programming >On applying or-parallelism and tabling to logic programs
【24h】

On applying or-parallelism and tabling to logic programs

机译:在对逻辑程序应用或并行和制表时

获取原文
获取原文并翻译 | 示例
           

摘要

Logic programming languages, such as Prolog, provide a high-level, declarative approach to programming. Logic Programming offers great potential for implicit parallelism, thus allowing parallel systems to often reduce a program's execution time without programmer intervention. We believe that for complex applications that take several hours, if not days, to return an answer, even limited speedups from parallel execution can directly translate to very significant productivity gains. It has been argued that Prolog's evaluation strategy - SLD resolution -often limits the potential of the logic programming paradigm. The past years have therefore 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.
机译:逻辑编程语言(例如Prolog)为编程提供了一种高级的声明式方法。逻辑编程为隐式并行提供了巨大的潜力,因此允许并行系统经常减少程序的执行时间而无需程序员干预。我们认为,对于需要花费数小时(甚至数天)才能返回答案的复杂应用程序,即使并行执行的加速效果有限,也可以直接转化为非常显着的生产率提升。有人认为,Prolog的评估策略-SLD解析-通常会限制逻辑编程范例的潜力。因此,过去几年来,在增加Prolog的声明性和表达性方面进行了广泛的努力。事实证明,制表是一种有效克服SLD对无限循环和冗余子计算的敏感性的可行技术。我们的研究表明,隐式或并行性很自然地适合带有制表的逻辑程序。为了证实这一信念,我们设计并实现了一个或并行的制表引擎OPTYap,并且我们使用了共享内存并行机来评估其性能。据我们所知,OPTYap是用于逻辑编程系统的并行制表引擎的第一个实现。 OPTYap建立在Yap高效的顺序Prolog引擎的基础上。它的执行模型基于SLG-WAM进行制表,而环境复制则基于or-parallelism。初步结果表明,在SLD分辨率的上下文中提出的并行搜索机制确实可以有效地自然推广以并行化表计算,并且所得系统可以在共享内存并行机上实现良好的性能。更重要的是,它强调了我们的信念,即通过对逻辑程序应用或并行和制表,可以扩大逻辑编程的应用范围。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号