主机名:page-component-8448b6f56d-m8qmq总加载时间:0渲染日期:2024-04-23T13:40:48.224Z有数据问题:falsehasContentIssue为false

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

剑桥大学出版社在线出版:2018年7月27日

移民区
附属:
CRACS&INESC-TEC和波尔图大学科学院,葡萄牙波尔图,1021/1055,4169-007(电子邮件:miguel-arieas@dcc.fc.up.pt, ricroc@dcc.fc.up.pt)
里卡多·罗查
附属:
CRACS&INESC-TEC和波尔图大学科学院,葡萄牙波尔图,1021/1055,4169-007(电子邮件:miguel-arieas@dcc.fc.up.pt, ricroc@dcc.fc.up.pt)
权限和权限 [在新窗口中打开]

摘要

核心共享和HTML视图不可用于此内容。但是,由于您可以访问此内容,因此可以通过“保存PDF”操作按钮获得完整的PDF。

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

类型
原始文章
版权
版权所有©剑桥大学出版社2018

脚注

*这项工作的部分资金由ERDF(欧洲区域发展基金)通过项目9471-RIDTI-Reforçar a Investigaáo,o Desenvolvimento Tecnológico e a Inovaço–通过POCI-01-0145-FEDER-006961项目内的2020年竞争计划,以及作为UID/EEA/50014/2013项目一部分的FCT(Fundaçao para Ci ncia e a Tecnologia)国家基金。Miguel Areias由FCT拨款SFRH/BPD/108018/2015资助。

工具书类

阿尔巴,E.公司。,阿尔梅达,F、。,布莱萨,医学博士。,卡贝扎,J。,科塔,C、。,迪亚兹,M。,多尔塔,一、。,加巴罗,J。,莱昂,C、。,露娜,J。,莫雷诺,L.M.公司。,巴勃罗斯,C、。,佩蒂特,J。,罗哈斯,答:。、和Xhafa公司,F、。 2002.MALLBA:用于组合优化的骨架库(研究注释)。程序。国际Euro-Par会议,LNCS,第2400卷。施普林格,927-932。谷歌学者
阿里,英国。卡尔松,R。 1990.OR-并行序言的缪斯方法.国际并行程序设计杂志 19,2,129162.谷歌学者
阿雷亚斯,M。罗查,R。 2011.基于线性策略的逻辑程序表评估组合研究.逻辑程序设计理论与实践杂志,逻辑程序设计国际会议,专刊 11,4–5,681696.谷歌学者
阿雷亚斯,M。罗查,R。 2012a。用于逻辑程序多线程表计算的高效可扩展内存分配器.英寸并行和分布式系统国际会议.IEEE计算机学会,636643.谷歌学者
阿雷亚斯,M。罗查,R。 2012b。使用公共表空间实现多线程本地制表.逻辑程序设计理论与实践杂志,逻辑程序设计国际会议,专刊 12,4–5,427443.谷歌学者
阿雷亚斯,M。罗查,R。 2013.线性表逻辑程序的批量计算.计算机科学和信息系统杂志,模型驱动工程、语言和代理进展专刊 10,4,17751797.谷歌学者
阿雷亚斯,M。罗查,R。 2014表逻辑程序无锁可扩展尝试的正确性和效率。程序。声明语言实践方面国际研讨会,扁平,M。,高-低。LNCS编辑,第8324卷。美国加利福尼亚州圣地亚哥施普林格,168-183年。谷歌学者
阿雷亚斯,M。罗查,R。 2015.全共享多线程表的批量评估。程序。第四届语言、应用和技术研讨会的后期进展CCIS,第563卷。施普林格,113-124。谷歌学者
阿雷亚斯,M。罗查,R。 2016.并发表逻辑程序的无锁散列trie设计.国际并行程序设计杂志 44,,386406.谷歌学者
阿雷亚斯,M。罗查,R。 2017.用多线程表系统解决动态规划问题.系统与软件杂志 125,417426.谷歌学者
巴格韦尔,第页。 2001。理想哈希树。技术报告.谷歌学者
伯杰,电气工程师。,麦金利,英国标准。,布鲁莫夫,右侧。威尔逊,中华人民共和国。 2000.Hoard:用于多线程应用程序的可扩展内存分配器.ACM SIGPLAN通知 35,11,117128.谷歌学者
布鲁莫夫,钢筋混凝土。,乔格,C.频率。,库兹马尔,公元前。,雷瑟森,C.E.公司。,兰德尔,K.H.公司。、和,年。 1995.Cilk:一个高效的多线程运行时系统.SIGPLAN不是。 30,8,207216.谷歌学者
卡罗,M。埃梅内希尔多,M.V.公司。 1999。序言中使用线程和共享数据库的并发性。程序。国际逻辑程序设计会议麻省理工学院出版社,320-334。谷歌学者
查普曼,B。,乔斯特,G.公司。范德帕斯,R。 2008.使用OpenMP:便携式共享内存并行编程.麻省理工学院出版社.谷歌学者
,西。沃伦,D.S.公司。 1996.带延迟的通用逻辑程序表评估.美国医学会杂志 43,1,2074.谷歌学者
奇科,第页。,卡罗,M。,埃梅内希尔多,M.V.公司。,席尔瓦,C、。罗查,R。 2008。改进了基于连续调用的表实现。程序。声明语言实践方面国际研讨会,LNCS,第4902卷。施普林格,197-213。谷歌学者
科斯塔,J。,雷蒙多,J。罗查,R。 2009.表逻辑程序的基于术语的全局trie。程序。国际逻辑程序设计会议LNCS,第5649卷。斯普林格,205-219。谷歌学者
克鲁兹,F、。罗查,R。 2010.基于可追溯包含的逻辑程序表格评估。程序。欧洲人工智能逻辑会议,LNAI,第6341卷。施普林格,130–142>。.>谷歌学者
除霜器,B。,范杜伦,M。施里杰弗斯,吨。 2015.制表为具有分隔控件的库.逻辑程序设计理论与实践杂志 15,4–5,419433.谷歌学者
埃文斯,J。 2006。FreeBSD的可扩展并发malloc(3)实现。In程序。BSD技术会议.谷歌学者
丰塞卡,不适用。,斯里尼瓦桑,答:。,席尔瓦,财务管理硕士。卡马乔,R。 2009.分布式内存体系结构的并行ILP.机器学习 74,,257279.谷歌学者
弗雷德金,E.公司。 1962.Trie内存.ACM的通信 ,490499.谷歌学者
弗雷尔,J。,斯威夫特,吨。沃伦,D.S.公司。 1996超越深度优先:通过替代调度策略改进表格逻辑程序。程序。编程语言实现与逻辑编程国际研讨会,LNCS,第1140卷。施普林格,243-258。谷歌学者
盖莫沃特,秒。威胁,第页。TCMalloc:螺纹切削Malloc。11月10日访问2014。网址:http://goog-perftools.sourceforge.net/doc/tcmalloc.html[在线]。谷歌学者
吉登斯塔姆,答:。,帕帕特里安塔菲卢,M。Tsigas公司,第页。 2010.malloc公司:以无锁方式分配内存.算法 58,2,304338.谷歌学者
格洛格尔,西。普特马洛克。11月15日访问2014。网址:http://www.malloc.de/en/.谷歌学者
,高-低。古普塔,G.公司。 2001一种基于备选方案的动态重新排序实现表逻辑编程系统的简单方案。程序。国际逻辑程序设计会议LNCS,第2237卷。施普林格,181-196年。谷歌学者
古普塔,G.公司。蓬泰利,E.公司。 1999堆栈拆分:一种在分布式机器上实现或并行的简单技术。程序。国际逻辑程序设计会议麻省理工学院出版社,290-304。谷歌学者
古普塔,G.公司。,蓬泰利,E.公司。,阿里,英国。,卡尔森,M。埃梅内希尔多,M.V.公司。 2001.prolog程序的并行执行:综述.程序设计语言与系统学报 23,4,472602.谷歌学者
赫利希,M。机翼,J·M·。 1987.并发对象的公理。程序。ACM程序设计语言原理研讨会ACM,13–26。谷歌学者
埃梅内希尔多,M.V.公司。格林,英国。 1991.prolog系统:开发独立与平行.新一代计算 9,3–4,233257.谷歌学者
赫尔曼,C.答。伦高(Lengauer),C、。 2000.HDC:一种用于分治的高阶语言.并行处理信件 10,2/3,239250.谷歌学者
约翰逊,E.公司。,拉马克里希南,C.R.公司。,拉马克里希南,I.V.公司。拉奥,第页。 1999一个空间效率高的引擎,用于基于包容的逻辑程序表评估。程序。富士国际函数与逻辑编程研讨会,LNCS,第1722卷。施普林格,284–300。谷歌学者
克努特,D.E.博士。 1998.计算机编程艺术,第3卷:(第2版)排序和搜索.艾迪森·韦斯利·朗曼.谷歌学者
古玛,五、。 2002.并行计算导论,第2版。 出版商.谷歌学者
古玛,五、。,格拉玛,答:。,古普塔,答:。卡里皮斯,G.公司。 1994.并行计算导论:算法设计与分析.本杰明·卡明斯出版公司。谷歌学者
,秒。,福多,第页。,,H。基弗,M。 2009OpenRuleBench:对规则引擎性能的分析。程序。国际万维网会议ACM,601-610。谷歌学者
洛根,R。,奥尔特加购物中心,年。佩尼亚·玛丽亚,R。 2005.Eden中的并行函数编程.函数编程杂志 15,,431475.谷歌学者
Lusk公司,E.公司。,巴特勒,R。,Disz餐厅,吨。,奥尔森,R。,奥弗比克,R。,史蒂文斯,R。,沃伦,D.H.D.博士。,卡尔德伍德,答:。,塞赖迪,第页。,哈里迪,秒。,品牌,第页。,卡尔森,M。,西埃皮莱夫斯基,答:。豪斯曼,B。 1988极光或平行序言系统。程序。第五代计算机系统国际会议新一代计算机技术研究所,819-830。谷歌学者
马尔克斯,R。斯威夫特,吨。 2008.对正常程序进行并发和本地评估。程序。国际逻辑程序设计会议,LNCS,第5366卷。施普林格,206-222。谷歌学者
马尔克斯,R。,斯威夫特,吨。库尼亚,J.C.公司。 2010.并发本地表的简单高效实现。程序。声明语言实践方面国际研讨会,LNCS,第5937卷。施普林格,264-278。谷歌学者
马特罗,秒。托斯,第页。 1990.背包问题:算法和计算机实现.约翰·威利父子公司.谷歌学者
马斯马诺,M。,Ripoll公司,一、。克雷斯波,答:。 2006。实时应用程序内存分配器的比较。程序。第四届实时和嵌入式系统Java技术国际研讨会2006年JTRES。ACM,68–76岁。谷歌学者
莫拉,第页。 2008.ISO/IEC DTR 13211–5:2007 Prolog多线程谓词。谷歌学者
佩莱兹,一、。,阿尔梅达,F、。苏亚雷斯,F、。 2007.DPSKEL:用于并行动态编程的基于骨架的工具。程序。并行处理与应用数学国际会议,LNCS,第4967卷。施普林格,1104-1113年。谷歌学者
蓬泰利,E.公司。古普塔,G.公司。 1997.依赖和平行的实施机制。程序。国际逻辑程序设计会议麻省理工学院出版社,123-137。谷歌学者
拉马克里希南,I.V.公司。,拉奥,第页。,萨戈纳斯,英国。,斯威夫特,吨。沃伦,D.S.公司。 1999.表逻辑程序的高效访问机制.逻辑程序设计杂志 38,1,3154.谷歌学者
拉奥,第页。,拉马克里希南,C.R.公司。拉马克里希南,I.V.公司。 1996.及时线程可节省制表时间。程序。逻辑编程联合国际会议和研讨会麻省理工学院出版社,112-126。谷歌学者
赖因德斯,J。 2007.英特尔线程构件,第1版。 O'Reilly&Associates公司。,塞巴斯托波尔,加利福尼亚州,美国.谷歌学者
罗查,R。,席尔瓦,F、。桑托斯V.科斯塔。V.科斯塔。 1999.表内的或平行主义。程序。声明语言实践方面国际研讨会.LNCS,第1551卷。施普林格,137-151。谷歌学者
罗查,R。,席尔瓦,F、。桑托斯V.科斯塔。V.科斯塔。 2001。在一个可以利用或并行的列表引擎上。程序。国际逻辑程序设计会议,LNCS,第2237卷。施普林格,43-58岁。谷歌学者
罗查,R。,席尔瓦,F、。桑托斯·科斯塔,五、。 2005.论逻辑程序的or-parallelism和tabling.逻辑程序设计理论与实践 5,1–2,161205.谷歌学者
萨戈纳斯,英国。斯威夫特,吨。 1998.固定阶分层逻辑程序表化执行的抽象机.程序设计语言与系统学报 20,,586634.谷歌学者
萨哈,D。 2006.表逻辑程序的增量评估纽约州立大学计算机科学系博士论文。谷歌学者
桑托斯,J。罗查,R。 2013.关于高效实现模式定向表。程序。声明语言实践方面国际研讨会,LNCS,第7752卷。斯普林格,141-156。谷歌学者
桑托斯V.科斯塔。V.科斯塔。,罗查,R。达马斯,L。 2012.YAP prolog系统.逻辑程序设计理论与实践杂志 12,1–2,534.谷歌学者
桑托斯V.科斯塔。科斯塔,V。,沃伦,D.小时D。,R。 1991.Andorra-I:一个并行的prolog系统,它透明地利用和/或并行性。程序。美国计算机学会并行编程原理与实践研讨会ACM,83–93。谷歌学者
,英国。 1992在序言中利用依赖和并行:动态依赖和并行方案(DDAS)。程序。逻辑程序设计联合国际会议和研讨会麻省理工学院出版社,717-731。谷歌学者
绍莫吉,Z.公司。萨戈纳斯,英国。 2006汞表:设计和实施。程序。声明语言实践方面国际研讨会,LNCS,第3819卷。斯普林格,150-167。谷歌学者
斯蒂瓦拉,答:。,斯塔基,第页。,德拉班达,M.G.公司。,埃梅内希尔多,M。沃思,答:。 2010.无锁并行动态编程.并行与分布式计算杂志 70,8,839848.谷歌学者
斯威夫特,吨。沃伦,D.S.公司。 2012.XSB:用表逻辑编程扩展序言.逻辑程序设计理论与实践 12,1–2,157187.谷歌学者
特南鲍姆,上午。,兰萨姆,年。奥根斯坦,医学博士。 1990.使用C的数据结构.普伦蒂斯大厅.谷歌学者
,N.-F.公司。 2012.B-Prolog的语言特点和体系结构.逻辑程序设计理论与实践杂志 12,1–2,189218.谷歌学者
,N.-F.公司。,凯勒斯特兰德,H。弗鲁赫曼,J。 2015.用Picat求解约束和规划.施普林格.谷歌学者