arXivDaily arXiv每日学术速递 周一至周五更新
北美退伍军人节(Veterans Day),12 日无更新
arXiv 0912.3510cs.PLcs.DC
收藏

使用低级线程原语的逻辑程序的简单有效的显式并行化

A simple and efficient explicit parallelization of logic programs using low-level threading primitives

Diptikalyan Saha, Paul Fodor

摘要:

在这项工作中,我们提出了一种自动的方式来并行化逻辑程序,以找到所有的答案查询使用转换到低级别的线程原语。虽然十多年前在逻辑编程的并行化方面已经做了很多工作(例如,Aurora,Muse,YapOR),并行化逻辑程序的现状仍然很差。本文提出了一种在良基语义下,XSB Prolog表式逻辑程序并行化的方法。这项工作的一个重要贡献在于合并来自多个子线程的答案表,而不会导致数据结构的复制或完全共享和同步。父子共享答案表的实现在效率上超过了目前使用多线程并行化完成答案所实现的所有其他数据结构。转换及其较低级别的答案合并谓词是作为XSB系统的扩展实现的。

英文摘要:

In this work, we present an automatic way to parallelize logic programs for finding all the answers to queries using a transformation to low level threading primitives. Although much work has been done in parallelization of logic programming more than a decade ago (e.g., Aurora, Muse, YapOR), the current state of parallelizing logic programs is still very poor. This work presents a way for parallelism of tabled logic programs in XSB Prolog under the well founded semantics. An important contribution of this work relies in merging answer-tables from multiple children threads without incurring copying or full-sharing and synchronization of data-structures. The implementation of the parent-children shared answer-tables surpasses in efficiency all the other data-structures currently implemented for completion of answers in parallelization using multi-threading. The transformation and its lower-level answer merging predicates were implemented as an extension to the XSB system.

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

↑