arXivDaily arXiv每日学术速递 周一至周五更新
arXiv周末暂无论文更新,休息一下吧,周末愉快~~
arXiv 1806.00441cs.PL
收藏

隐式和显式并发表计算的表空间设计

Table Space Designs For Implicit and Explicit Concurrent Tabled Evaluation

Miguel Areias, Ricardo Rocha

摘要:

Prolog的主要优点之一是它的潜在的隐式开发的并行性,作为一种高级语言,Prolog也经常被用作一种手段,显式地控制并发任务。表是一种强大的实现技术,它克服了传统Prolog系统在处理递归和冗余子计算方面的局限性。鉴于这些优点,出现的问题是,如果制表也有并发/并行开发的潜力。一方面,制表仍然利用传统Prolog的搜索空间,但另一方面,制表的并发模型必然要复杂得多,因为它还引入了对表的访问的并发性。在本文中,我们总结了Yap的主要贡献,并发表评估,我们描述了几种替代表空间设计的设计和实现的挑战,隐式和显式并发表评估代表不同的并发性和内存使用之间的权衡。我们还激励使用固定大小和无锁的数据结构的优势,详细说明引擎的内存分配器在这样的环境中发挥的关键作用,并讨论如何Yap的模式导向制表支持可以扩展到并发评估。最后,我们提出了我们未来的观点,一个高效的和新颖的并发框架,它集成了隐式和显式的并发表评估在一个单一的Prolog引擎。逻辑程序设计理论与实践(TPLP)

英文摘要:

One of the main advantages of Prolog is its potential for the implicit exploitation of parallelism and, as a high-level language, Prolog is also often used as a means to explicitly control concurrent tasks. Tabling is a powerful implementation technique that overcomes some limitations of traditional Prolog systems in dealing with recursion and redundant sub-computations. Given these advantages, the question that arises is if tabling has also the potential for the exploitation of concurrency/parallelism. On one hand, tabling still exploits a search space as traditional Prolog but, on the other hand, the concurrent model of tabling is necessarily far more complex since it also introduces concurrency on the access to the tables. In this paper, we summarize Yap's main contributions to concurrent tabled evaluation and we describe the design and implementation challenges of several alternative table space designs for implicit and explicit concurrent tabled evaluation which represent different trade-offs between concurrency and memory usage. We also motivate for the advantages of using fixed-size and lock-free data structures, elaborate on the key role that the engine's memory allocator plays on such environments, and discuss how Yap's mode-directed tabling support can be extended to concurrent evaluation. Finally, we present our future perspectives towards an efficient and novel concurrent framework which integrates both implicit and explicit concurrent tabled evaluation in a single Prolog engine. Under consideration in Theory and Practice of Logic Programming (TPLP).

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑