跳到主要内容
研究论文
开放式访问

空间效率高的并行函数编程

出版:2021年1月4日 出版历史
  • 获取引文提醒
  • 摘要

    由于函数式编程具有许多可取的特性,例如控制效果的能力以及潜在的灾难性竞争条件,因此它为现代多核计算机编程提供了一种可行的方法。在过去十年中,开发了几种并行函数语言,通常基于ML和Haskell的方言。然而,这些语言传统上表现不如过程语言(如C和Java)。这主要是因为他们对内存的渴求,而内存只会随着并行度的增加而增长,这会导致传统的内存管理技术在内存需求增加的情况下崩溃。最近的工作通过识别无确定路径并行程序的内存属性(称为解缠结),对这个问题提出了一个新的攻击角度,这限制了并发计算对彼此内存分配的了解。这项工作在提供良好的时间可伸缩性方面显示出了一些希望。
    在本文中,我们提出了可证明的空间效率高的自动内存管理技术,用于确定无路径功能并行程序,允许在内存可能被破坏性更新的纯程序和命令式程序中使用。我们证明了对于一个序列实时内存为R(右)*,任何P(P)-处理器垃圾收集并行运行最多需要O(运行)(R(右)*·P(P))内存。我们还证明了O(运行)(W公司+R(右)*P(P))的P(P)-处理器执行,也会考虑垃圾收集的成本。为了实现这些结果,我们将线程调度与内存管理集成在一起。其思想是将内存分配和垃圾收集与线程调度决策相协调,以便每个处理器可以在不进行同步的情况下分配内存,并通过参考我们制定的收集策略独立收集部分内存。收集策略是完全分布式的,不需要与其他处理器通信。通过将其作为MPL编译器的一个扩展来实现并行ML,我们证明了该方法的实用性。我们的实验结果证实了我们的理论界,并表明这些技术的性能和可扩展性都很好。

    工具书类

    [1]
    2011年,Finagle:协议认知RPC系统。https://twitter.github.io/finagle/。
    [2]
    2015.愚蠢:脸书开源库。https://github.com/facebook/fully。
    [3]
    Umut A.Acar、Guy Blelloch、Matthew Fluet、Stefan K.Muller和Ram Raghunathan。2015年,用于位置管理的耦合内存和计算。在编程语言进步峰会(SNAPL)上。
    [4]
    Umut A.Acar、Guy E.Blelloch和Robert D.Blumofe。2002年,《工作盗窃的数据本地化》。计算系统理论35,3(2002),321-347。
    [5]
    Umut A.Acar、Arthur Charguéraud、Adrien Guatto、Mike Rainey和Filip Sieczkowski。2018.心跳调度:嵌套并行的可证明效率。第39届ACM SIGPLAN编程语言设计与实现会议记录(美国宾夕法尼亚州费城)(PLDI 2018)。769-782.
    [6]
    Umut A.Acar、Arthur Charguéraud和Mike Rainey。2013年,通过利用私人代币偷窃工作安排并行项目。在第19届ACM SIGPLAN并行编程原理与实践研讨会(PPoPP’13)的会议记录中。
    [7]
    Umut A.Acar、Arthur Charguéraud和Mike Rainey。2016年a。在隐式并行语言中控制粒度的Oracle-guided调度。《函数编程杂志》(JFP)26(2016),e23。
    [8]
    Umut A.Acar、Arthur Charguéraud、Mike Rainey和Filip Sieczkowski。2016年b。达格微积分:一种并行计算的微积分。在第21届ACM SIGPLAN功能编程国际会议(ICFP 2016)的会议记录中。18-32.
    [9]
    Sarita V.广告。2010年,数据竞赛毫无例外地是邪恶的:技术角度。Commun公司。ACM 53,11(2010),84。
    [10]
    Shivali Agarwal、Rajkishore Barik、Dan Bonachea、Vivek Sarkar、R.K.Shyamasundar和Katherine A.Yelick。2007.有限资源下X10计算的无死锁调度。SPAA 2007:第19届ACM算法与架构并行性年度研讨会论文集,美国加利福尼亚州圣地亚哥,2007年6月9日至11日。229-240.
    [11]
    T.R.Allen和D.A.Padua。1987.在共享内存机器上调试Fortran。1987年并行处理国际会议记录。721-727.
    [12]
    B.Alpern、L.Carter和E.Feig。1990.统一的内存层次结构。第31届计算机科学基础年会论文集。600-608第2卷。https://doi.org/10.109/FSCS。1990.89581
    [13]
    托德·安德森。2010年。基于私人苗圃的垃圾收集器中的优化。2010年6月5日至6日,加拿大安大略省多伦多市,第九届记忆管理国际研讨会论文集,ISMM 2010。21-30.
    [14]
    安德鲁·W·阿佩尔。1989.简单的世代垃圾收集和快速分配。软件实践。经验19,2(1989),171-183。网址:http://www.cs.princeton.edu/fac/~appel/papers/143.ps
    [15]
    Andrew W.Appel和Zhong Shao。1996.使用闭包的语言的堆栈与堆成本的实证和分析研究。函数编程杂志6,1(1996年1月),47-74。ftp://dafy.cs.yale.edu/pub/papers/shao/stack.ps
    [16]
    尼玛·S·阿罗拉(Nimar S.Arora)、罗伯特·D·布鲁莫夫(Robert D.Blumofe)和C·格雷格·普拉克斯顿(C.Greg Plaxton)。1998.多道程序多处理机的线程调度。第十届年度ACM并行算法和架构研讨会论文集(墨西哥瓦拉塔港)(SPAA'98)。ACM出版社,119-129。
    [17]
    尼玛·S·阿罗拉(Nimar S.Arora)、罗伯特·D·布鲁莫夫(Robert D.Blumofe)和C·格雷格·普拉克斯顿(C.Greg Plaxton)。2001.多程序多处理器的线程调度。计算系统理论34,2(2001),115-144。
    [18]
    Arvind、Rishiyur S.Nikhil和Keshav K.Pingali。1989.I结构:并行计算的数据结构。ACM事务处理。程序。语言系统。11,4(1989年10月),598-632。
    [19]
    Sven Auhagen、Lars Bergstrom、Matthew Fluet和John H.Reppy。2011.多核NUMA机器的垃圾收集。在2011年ACM SIGPLAN内存系统性能和正确性(MSPC)研讨会的会议记录中。51-57.
    [20]
    Shai Avidan和Ariel Shamir。2007.用于调整内容软件图像大小的接缝雕刻。在ACM SIGGRAPH 2007论文中。10秒。
    [21]
    David F.Bacon、Perry Cheng和V.T.Rajan。2003年,一个低开销和一致利用率的实时垃圾收集器。第三十届ACM编程语言原理研讨会会议记录(ACM SIGPLAN通告)。洛杉矶新奥尔良ACM出版社。
    [22]
    M.Bauer、S.Treichler、E.Slaughter和A.Aiken。2012.军团:用逻辑区域表达地方性和独立性。SC'12:高性能计算、网络、存储和分析国际会议论文集。1-11. https://doi.org/10.109/SC。2012.71
    [23]
    Ales Bizjak、Daniel Gratzer、Robert Krebbers和Lars Birkedal。2019.铁:以高阶并发分离逻辑管理义务。PACMPL 3,POPL(2019),65:1-65:30。
    [24]
    盖伊·布莱洛奇和约翰·格雷纳。顺序函数语言中的并行性。在《第七届函数式程序设计语言与计算机体系结构国际会议论文集》(FPCA'95)中。美国医学会,226-237。
    [25]
    盖伊·布莱洛赫。1996.编程并行算法。Commun公司。ACM 39,3(1996),85-97。
    [26]
    Guy E.Blelloch和Perry Cheng。1999.关于多处理器垃圾收集的时间和空间限制。SIGPLAN’99编程语言设计与实现会议记录(ACM SIGPLAN通知)。亚特兰大ACM出版社,104-117。
    [27]
    盖伊·布莱洛赫、杰里米·芬曼、菲利普·吉本斯和朱利安·顺。2012.内部确定性并行算法可以很快实现。2012年PPoPP(美国路易斯安那州新奥尔良)。181-192.
    [28]
    Guy E.Blelloch、Jeremy T.Fineman、Phillip B.Gibbons和Harsha Vardhan Simhadri,2011年。在分层缓存上调度不规则并行计算。第23届ACM算法与架构并行性研讨会论文集(美国加利福尼亚州圣何塞)(SPAA'11)。355-366.
    [29]
    盖伊·布莱洛赫和菲利普·吉本斯。2004.在线程之间有效共享缓存。SPAA(西班牙巴塞罗那)。
    [30]
    盖伊·布莱洛赫(Guy E.Blelloch)、菲利普·吉本斯(Phillip B.Gibbons)和尤西·马蒂亚斯(Yossi Matias)。1999.对于具有细粒度并行性的语言,调度明显不足。J.ACM 46(1999年3月),第281-321页。第2版。
    [31]
    盖伊·布莱洛赫(Guy E.Blelloch)、菲利普·吉本斯(Phillip B.Gibbons)、尤西·马蒂亚斯(Yossi Matias)和吉里娅·纳利卡尔(Girija J.Narlikar)。1997.具有同步变量的并行性空间效率调度。第九届ACM并行算法和架构年会论文集(美国罗德岛纽波特)(SPAA'97)。12-23.
    [32]
    盖伊·布莱洛赫(Guy E Blelloch)、菲利普·吉本斯(Phillip B Gibbons)和哈莎·瓦尔丹·西哈德里(Harsha Vardhan Simhadri),2010年。低深度缓存可用算法。在第二十二届ACM算法和体系结构并行性研讨会的会议记录中。189-199.
    [33]
    盖伊·布莱洛赫和约翰·格雷纳。1996年,NESL在时间和空间上的有效实施。在第一届ACM SIGPLAN函数编程国际会议的会议记录中。美国医学会,213-225。
    [34]
    盖伊·布莱洛赫(Guy E.Blelloch)、乔纳森·哈德威克(Jonathan C.Hardwick)、杰伊·西伯斯坦(Jay Sipelstein)、马可·扎加(Marco Zagha)和悉达多·查特吉(Siddhartha Chatterjee)。1994年,可移植嵌套数据并行语言的实现。J.平行分布计算。21, 1 ( 1994 ), 4-14.
    [35]
    Robert D.Blumofe、Christopher F.Joerg、Bradley C.Kuszmaul、Charles E.Leiserson、Keith H.Randall和Yuli Zhou。1995.Cilk:高效多线程运行时系统。第五届ACM SIGPLAN并行编程原理与实践研讨会论文集。加利福尼亚州圣巴巴拉,207-216。
    [36]
    Robert D.Blumofe、Christopher F.Joerg、Bradley C.Kuszmaul、Charles E.Leiserson、Keith H.Randall和Yuli Zhou。1996.Cilk:高效多线程运行时系统。J.并行和分布式计算。37, 1 ( 1996 ), 55-69.
    [37]
    罗伯特·布鲁莫夫(Robert D.Blumofe)和查尔斯·雷瑟森(Charles E.Leiserson)。1998.多线程计算的空间效率调度。SIAM J.计算。27, 1 ( 1998 ), 202-229.
    [38]
    罗伯特·布鲁莫夫(Robert D.Blumofe)和查尔斯·雷瑟森(Charles E.Leiserson)。1999.通过窃取工作来调度多线程计算。J.ACM 46(1999年9月),720-748。第5版。
    [39]
    Robert L.Bocchino、Stephen Heumann、Nima Honarmand、Sarita V.Adve、Vikram S.Adve、Adam Welc和Tatiana Shpeisman。2011.确定性默认并行语言中的安全不确定性。在ACM POPL中。
    [40]
    小罗伯特·L·博基诺(Robert L.Bocchino,Jr.)、维克拉姆·S·阿德(Vikram S.Adve)、丹尼·迪格(Danny Dig)、萨里塔·阿德(Sarita V.Adve。2009.确定性并行Java的类型和功能系统。第24届ACM SIGPLAN面向对象编程系统语言和应用会议论文集(美国佛罗里达州奥兰多)(OOPSLA’09)。97-116.
    [41]
    小罗伯特·L·博基诺(Robert L Bocchino,Jr.)、维克拉姆·S·阿芙(Vikram S.Adve)、莎莉塔·V·阿芙尔(Sarita V.Adve,)和马克·斯尼尔(Marc Snir)。2009.默认情况下,并行编程必须是确定性的。在第一届USENIX平行论热点会议上。
    [42]
    汉斯·尤根·博姆(Hans-Juergen Boehm)。2011.如何用“良性”数据竞赛错误编译程序。2011年5月26日至27日,在美国加利福尼亚州伯克利市HotPar'11举行的第三届USENIX并行性热点研讨会上。
    [43]
    理查德·布伦特(Richard P.Brent)。1974.通用算术表达式的并行计算。J.ACM 21,2(1974),201-206。
    [44]
    Deepayan Chakrabarti、Yiping Zhan和Christos Faloutsos。2004.R-MAT:一个用于图挖掘的递归模型。在SIAM SDM中。
    [45]
    Manuel M.T.Chakravarty、Roman Leshchinskiy、Simon L.Peyton Jones、Gabriele Keller和Simon Marlow。2007.数据并行Haskell:状态报告。2007年1月16日,法国尼斯,2007年DAMP,POPL 2007多核编程声明性方面研讨会论文集。10-18.
    [46]
    菲利普·查尔斯(Philippe Charles)、克里斯蒂安·格罗托夫(Christian Grothof)、维杰·萨拉斯瓦特(Vijay Saraswat)、克里斯托弗·多纳瓦(Christopher Donawa)、阿兰·基尔斯特拉(Allan Kielstra)、凯末尔·埃比奥格鲁(Kemal Ebcioglu。X10:非均匀集群计算的面向对象方法。在第20届ACM SIGPLAN面向对象编程、系统、语言和应用年度会议的会议记录中(美国加利福尼亚州圣地亚哥)(OOPSLA’05)。美国医学会,519-538。
    [47]
    郑光年、冯明东、查尔斯·雷瑟森、基思·兰德尔和安德鲁·斯塔克,1998年。检测使用锁的Cilk程序中的数据竞争。第十届ACM并行算法和体系结构研讨会论文集(SPAA'98)。
    [48]
    Perry Cheng和Guy Blelloch。2001.并行实时垃圾收集器。2001年SIGPLAN编程语言设计与实现会议记录(ACM SIGPLAN通知)。犹他州雪鸟ACM出版社,125-136。
    [49]
    Rezaul Alam Chowdhury和Vijaya Ramachandran。2008.多核缓存高效动态编程算法。程序中。第20届ACM算法与架构并行研讨会(德国慕尼黑)。美国纽约州纽约市ACM,207-216。
    [50]
    英特尔公司2017。骑士登陆(KNL):第二代Intel Xeon Phi处理器。在Intel Xeon处理器E7 v4系列规范中。https://ark.intel.com/products/series/93797/Intel-Xeon处理器-E7-v4-系列。
    [51]
    达米安·多利盖兹和乔治·冈瑟。1994.多处理器系统的便携式、无干扰垃圾收集。第二十届ACM编程语言原理研讨会会议记录(ACM SIGPLAN通知)。俄勒冈州波特兰ACM出版社。ftp://ftp.inia.fr/inria/Projects/para/doligez/DoligezGonthier94.ps.gz
    [52]
    达米安·多利盖兹和泽维尔·勒罗伊。1993年,多线程实现ML的并发代垃圾收集器。第二十届ACM编程语言原理研讨会会议记录(ACM SIGPLAN通知)。ACM出版社,113-123。文件://ftp.inria.fr/inria/Projects/cristal/Xavier.Leroy/publications/concurrentgc.ps.gz
    [53]
    塔玛尔·多马尼(Tamar Domani)、埃利奥特·科洛德纳(Elliot K.Kolodner)、伊桑·刘易斯(Ethan Lewis)、埃雷斯·彼得兰克(Erez Petrank)和达夫娜·谢恩沃尔德(Dafna Sheinwald。2002.Java的线程本地堆。在ISMM’02第三届记忆管理国际研讨会(ACM SIGPLAN通知)的会议记录中,David Detlefs(编辑)。ACM出版社,柏林,76-87。网址:http://www.cs.technion.ac.il/~erez/publications.html
    [54]
    德里克·伊格尔(Derek L.Eager)、约翰·扎霍尔扬(John Zahorjan)和爱德华·拉佐夫斯卡(Edward D.Lazowska)。1989.并行系统中的加速与效率。IEEE计算汇刊38,3(1989),408-423。
    [55]
    Perry A.Emrath、Sanjoy Ghosh和David A.Padua。1991.调试并行程序的事件同步分析。在91年的超级计算中。580-588.
    [56]
    凯文·法塔哈里安、丹尼尔·雷特·霍恩、蒂莫西·奈特、拉克洪·利姆、迈克·休斯顿、纪扬·帕克、马坦·埃雷斯、曼曼·伦、亚历克斯·艾肯、威廉·戴利和帕特·汉拉罕。2006.红杉:内存层次编程。2006年ACM/IEEE超级计算会议记录(佛罗里达州坦帕)(SC'06)。ACM,美国纽约州纽约市,第83条。
    [57]
    冯明东(Mingdong Feng)和查尔斯·雷瑟森(Charles E.Leiserson)。1997年,Cilk项目中确定性种族的有效检测。第九届ACM并行算法和体系结构(SPAA)年会论文集。1-11.
    [58]
    冯明东(Mingdong Feng)和查尔斯·雷瑟森(Charles E.Leiserson)。1999.Cilk项目中确定性种族的有效检测。计算系统理论32,3(1999),301-326。
    [59]
    科马克·弗拉纳根和斯蒂芬·N·弗洛伊德。2009年,FastTrack:高效准确的动态比赛检测。SIGPLAN不是。44,6(2009年6月),121-133。https://doi.org/10.1145/1543135.1542490
    [60]
    科马克·弗拉纳根(Cormac Flanagan)、斯蒂芬·弗伦德(Stephen N.Freund)、玛丽娜·利夫申(Marina Lifshin)和沙兹·卡迪尔(Shaz Qadeer)。原子性类型:Java的静态检查和推理。ACM事务处理。程序。语言系统。30, 4 ( 2008 ), 20 : 1-20 : 53.
    [61]
    马修·福莱特(Matthew Fluet)、格雷格·莫里西特(Greg Morrisett)和阿马尔·艾哈迈德(Amal J.Ahmed)。2006.线性区域就是你所需要的。在第15届欧洲规划研讨会(ESOP)的会议记录中。
    [62]
    马修·弗莱特、迈克·雷尼和约翰·雷皮。2008年。通用并行语言的调度框架。在ACM SIGPLAN国际函数编程会议(ICFP)上。
    [63]
    马修·弗莱特、迈克·雷尼、约翰·雷皮和亚当·肖。2011.Manticore中的隐式线程并行。《功能编程杂志》20,5-6(2011),1-40。
    [64]
    马特奥·弗里戈(Matteo Frigo)、巴勃罗·哈尔珀(Pablo Halpern)、查尔斯·雷瑟森(Charles E.Leiserson)和斯蒂芬·莱温·伯林(Stephen Lewin-Berlin)。2009.减速器和其他Cilk++超对象。在第21届ACM算法和体系结构并行性研讨会上。79-90.
    [65]
    Matteo Frigo、Charles E.Leiserson和Keith H.Randall。1998年,Cilk-5多线程语言的实现。在PLDI中。212-223.
    [66]
    David K.Giford和John M.Lucassen。1986年,整合功能性和强制性编程。在ACM Lisp和函数编程(LFP)研讨会的会议记录中。ACM出版社,22-38。
    [67]
    马塞洛·J·R·冈萨尔维斯(Marcelo J.R.Gonçalves)。1995.具有密集堆分配和分代垃圾收集的程序的缓存性能。博士论文。普林斯顿大学计算机科学系。
    [68]
    马塞洛·J·R·冈萨尔维斯和安德鲁·W·阿佩尔。1995.快速分配程序的缓存性能。1995年功能编程和计算机体系结构会议记录。
    [69]
    Dan Grossman、Greg Morrisett、Trevor Jim、Michael Hicks、Yanning Wang和James Cheney。2002.旋风中基于区域的内存管理。在2002年SIGPLAN程序设计与实现会议论文集(ACM SIGPLAN通知)中。ACM出版社,柏林,282-293。
    [70]
    Adrien Guatto、Sam Westrick、Ram Raghunathan、Umut A.Acar和Matthew Fluet。2018.可变状态的分层内存管理。2018年2月24日至28日,奥地利维也纳,2018年PPoPP,第23届ACM SIGPLAN并行编程原理与实践研讨会论文集。81-93.
    [71]
    罗伯特·霍尔斯特德,Jr.1984。Multilisp的实现:多处理器上的Lisp。1984年ACM LISP和函数编程研讨会论文集(美国德克萨斯州奥斯汀)(LFP'84)。美国医学会,9-17。
    [72]
    凯文·哈蒙德。2011.为什么并行函数编程很重要:小组声明。2011年6月20日至24日,在英国爱丁堡举行的第2011-16届Ada-Europe可靠软件技术国际会议上,发表于《可靠软件技术》。诉讼程序。201-205.
    [73]
    大卫·R·汉森。1990.基于对象生存期的内存快速分配和释放。软件实践。经验20,1(1990年1月),5-12。
    [74]
    Shams Mahmood Imam和Vivek Sarkar。2014.Habanero-Java库:用于多核编程的Java 8框架。2014年Java平台虚拟机、语言和工具编程原则和实践国际会议,PPPJ’14。75-86.
    [75]
    英特尔。2011.英特尔线程构建块。https://www.threadingbuildingblocks.org/。
    [76]
    英特尔公司2009a。英特尔Cilk++SDK程序员指南。英特尔公司。文件编号:322581-001US。
    [77]
    英特尔公司2009b。英特尔(R)线程构建块。英特尔公司。可从以下位置获得网址://www。线程buildingblocks.org/documentation.php。
    [78]
    理查德·琼斯、安东尼·霍斯金和艾略特·莫斯。2011年,垃圾收集手册:自动内存管理的艺术。查普曼和霍尔/CRC。
    [79]
    拉尔夫·荣格(Ralf Jung)、雅克·亨利·朱丹(Jacques-Henri Jourdan)、罗伯特·克雷伯斯(Robbert Krebbers)和德里克·德雷尔(Derek Dreyer)。2018年a。RustBelt:保护rust编程语言的基础。PACMPL 2,POPL(2018),66:1-66:34。https://doi.org/10.1145/3158154
    [80]
    拉尔夫·荣格、罗伯特·克雷伯斯、雅克·亨利·茹尔丹、阿莱斯·比兹亚克、拉尔斯·伯克达尔和德里克·德雷尔。2018年b月。从头开始的Iris:高阶并发分离逻辑的模块化基础。J.功能。程序。28(2018),e20。
    [81]
    加布里埃尔·凯勒(Gabriele Keller)、曼努埃尔·M.T.查克拉瓦蒂(Manuel M.T.Chakravarty)、罗曼·莱斯钦斯基(Roman Leshchinskiy)、西蒙·佩顿·琼斯(Simon Peyton Jones)和本·利普梅耶。2010年,Haskell中的常规形状多态并行阵列。第15届ACM SIGPLAN功能编程国际会议(美国马里兰州巴尔的摩)会议记录(ICFP’10)。261-272.
    [82]
    A.Krishnamurthy、D.E.Culler、A.Dusseau、S.C.Goldstein、S.Lumetta、T.von Eicken和K.Yelick。1993年。Split-C并行编程。1993年ACM/IEEE超级计算会议论文集(美国俄勒冈州波特兰)(超级计算'93)。美国纽约州纽约市ACM,262-273。https://doi.org/10.1145/169627.169724
    [83]
    米林德·库尔卡尼、凯沙夫·平加里、布鲁斯·沃尔特、加内什·拉马纳拉亚南、卡维塔·巴拉和L.保罗·周。2007.乐观的平行性需要抽象。第28届ACM SIGPLAN编程语言设计与实现会议记录(美国加利福尼亚州圣地亚哥)(PLDI’07)。211-222.
    [84]
    林赛·库珀(Lindsey Kuper)和瑞恩·牛顿(Ryan R Newton)。2013.LVars:用于确定性并行的基于格的数据结构。在第二届ACM SIGPLAN功能性高性能计算研讨会论文集上。美国医学会,71-84。
    [85]
    林赛·库珀(Lindsey Kuper)、亚伦·托德(Aaron Todd)、萨姆·托宾·霍奇斯塔特(Sam Tobin-Hochstadt)和瑞恩·牛顿(Ryan R.Newton)。2014年a。驯服平行动物园:与LVish的可扩展确定性平行性。第35届ACM SIGPLAN编程语言设计与实现会议论文集(英国爱丁堡)(PLDI’14)。美国纽约州纽约市ACM,2-14。https://doi.org/10。 1145/2594291.2594312
    [86]
    林赛·库珀(Lindsey Kuper)、亚伦·图伦(Aaron Turon)、内拉坎坦·R·克里斯纳斯瓦米(Neelakantan R.Krishnaswami)和瑞恩·牛顿(Ryan R.Newton)。2014年b。写后冻结:使用LVar的准确定性并行编程。第41届ACM SIGPLAN-SIGACT编程语言原理研讨会会议记录(美国加利福尼亚州圣地亚哥)(POPL’14)。美国纽约州纽约市ACM,257-270。
    [87]
    John Launchbury和Simon L.Peyton Jones。1994.惰性功能状态线程。1994年6月20日至24日,美国佛罗里达州奥兰多,ACM SIGPLAN’94编程语言设计与实现(PLDI)会议记录。24-35.
    [88]
    马修·勒和马修·弗莱特。2015年,通过一级连续交易部分中止。第20届ACM SIGPLAN功能编程国际会议(加拿大不列颠哥伦比亚省温哥华)会议记录(ICFP 2015)。230-242.
    [89]
    道格·利亚。2000年。Java fork/join框架。《关于Java Grande的ACM 2000会议记录》(Java’00)。36-43.
    [90]
    安吉丽娜·李(I-Ting Angelina Lee)、查尔斯·雷瑟森(Charles E.Leiserson)、陶·沙德尔(Tao B.Schardl)、张准平(Zhunping Zhang)和吉姆·苏卡(Jim Sukha)。2015.现场管道并行性。TOPC 2,3(2015),17:1-17:42。
    [91]
    Daan Leijen、Wolfram Schulte和Sebastian Burckhardt。2009.任务并行库的设计。第24届ACM SIGPLAN面向对象编程系统语言和应用会议论文集(美国佛罗里达州奥兰多)(OOPSLA’09)。227-242.
    [92]
    李鹏、西蒙·马洛、西蒙·佩顿·琼斯和安德鲁·托尔马赫。2007.GHC的轻量级并发原语。《ACM SIGPLAN Haskell研讨会论文集》,Haskell2007,德国弗莱堡,2007年9月30日。107-118.
    [93]
    J.M.Lucassen和D.K.Giford。1988年,多形效应系统。第15届ACM SIGPLAN-SIGACT编程语言原理研讨会会议记录(美国加利福尼亚州圣地亚哥)(POPL'88)。ACM,美国纽约州纽约市,47-57。
    [94]
    西蒙·马洛和西蒙·佩顿·琼斯。2011.使用本地堆进行多核垃圾收集。2011年6月4日至5日,美国加利福尼亚州圣何塞市,第十届记忆管理国际研讨会论文集,Hans-Juergen Boehm和David F.Bacon(编辑)。美国医学会,21-32。
    [95]
    约翰·梅勒·克鲁米。1991.使用嵌套分叉连接并行性的程序的实时数据竞争检测。91年《超级计算学报》。24-33.
    [96]
    Stefan Muller、Kyle Singer、Noah Goldstein、Umut A.Acar、Kunal Agrawal和I-Ting Angelina Lee。2020年,与未来和国家的应对平行性。在ACM编程语言设计与实现(PLDI)会议记录中。
    [97]
    Stefan K.Muller和Umut A.Acar。2016.潜在隐藏工作窃取:计划并行计算与工作窃取的交互。2016年7月11日至13日,在美国加利福尼亚州阿西洛玛州立海滩/太平洋格罗夫举行的第28届ACM算法和架构并行性研讨会论文集上。71-82.
    [98]
    斯特凡·穆勒(Stefan K.Muller)、乌穆特·阿卡尔(Umut A.Acar)和罗伯特·哈珀(Robert Harper)。2017.响应式并行计算:架起竞争与合作线程的桥梁。第38届ACM SIGPLAN编程语言设计与实现会议记录(西班牙巴塞罗那)(PLDI 2017)。美国纽约州纽约市ACM,677-692。
    [99]
    斯特凡·穆勒(Stefan K.Muller)、乌穆特·阿卡尔(Umut A.Acar)和罗伯特·哈珀(Robert Harper)。2018年a。竞争并行:正确处理您的优先级。程序。ACM计划。Lang.2,ICFP,第95条(2018年7月),30页。
    [100]
    斯特凡·穆勒(Stefan K.Muller)、乌穆特·阿卡尔(Umut A.Acar)和罗伯特·哈珀(Robert Harper)。2018年b月。响应并行的类型和成本模型。在第14届ACM SIGPLAN函数编程国际会议(ICFP’18)的会议记录中。
    [101]
    Girija J.Narlikar和Guy E.Blelloch。1999.嵌套并行的空间效率调度。《美国计算机学会程序设计语言与系统汇刊》21(1999)。
    [102]
    Robert H.B.Netzer和Barton P.Miller。1992.什么是比赛条件?ACM编程语言和系统快报1,1(1992年3月),74-88。
    [103]
    Robert W.Numrich和John Reid。1998年,并行编程的Co-array Fortran。SIGPLAN Fortran论坛17,2(1998年8月),1-31。https://doi.org/10.1145/289918.289920
    [104]
    Atsushi Ohori、Kenjiro Taura和Katsuhiro Ueno。2018年,使SML成为通用高性能语言。未出版手稿。
    [105]
    OpenMP 5.0 2018。OpenMP应用程序编程接口,5.0版。2018年7月访问。
    [106]
    Sungwoo Park、Frank Pfenning和Sebastian Thrun。2008.一种基于采样函数的概率语言。ACM事务处理。程序。语言系统。31,1,第4条(2008年12月),46页。
    [107]
    西蒙·佩顿·琼斯(Simon L.Peyton Jones)、罗曼·莱斯钦斯基(Roman Leshchinskiy)、加布里埃尔·凯勒(Gabriele Keller)和曼纽尔·查克拉瓦蒂(Manuel M.T.Chakravarty)。2008.利用多核:Haskell中的嵌套数据并行性。在FSTTCS中。383-414.
    [108]
    西蒙·佩顿·琼斯(Simon L.Peyton Jones)和菲利普·沃德勒(Philip Wadler)。1993年。强制函数编程。第20届ACM SIGPLAN-SIGACT编程语言原理研讨会会议记录(美国南卡罗来纳州查尔斯顿)(POPL'93)。71-84.
    [109]
    Keshav Pingali、Donald Nguyen、Milind Kulkarni、Martin Burtscher、Muhammad Amber Hassaan、Rashid Kaleem、Tsungxien Lee、Andrew Lenharth、Roman Manevich、Mario Méndez-Lojo、Dimitrios Prountzos和Xin Sui。2011.算法中的并行之道。2011年6月4日至8日,美国加利福尼亚州圣何塞市,2011年PLDI第32届ACM SIGPLAN编程语言设计与实现会议记录。12-25.
    [110]
    菲利普·皮兹洛(Filip Pizlo)、埃雷斯·彼得兰克(Erez Petrank)和比亚恩·斯滕斯加德(Bjarne Steensgaard)。2008.对并发实时垃圾收集器的研究。ACM SIGPLAN通知43、6(2008)、33-44。
    [111]
    Ram Raghunathan、Stefan K.Muller、Umut A.Acar和Guy Blelloch。2016.并行程序的分层内存管理。《第21届ACM SIGPLAN功能编程国际会议论文集》(日本奈良)(ICFP 2016)。美国纽约州纽约市ACM,392-406。
    [112]
    Raghavan Raman、Jisheng Zhao、Vivek Sarkar、Martin T.Vechev和Eran Yahav。2012.结构化并行的可扩展且精确的动态数据竞赛检测。2012年6月11日至16日,在中国北京举行的ACM SIGPLAN编程语言设计与实现会议上,PLDI’12。531-542.
    [113]
    约翰·雷诺兹(John C.Reynolds)。1978.干扰的句法控制。第五届ACM SIGACT-SIGPLAN编程语言原理研讨会会议记录(亚利桑那州图森市)(POPL’78)。美国纽约州纽约市ACM,39-46。
    [114]
    约翰·雷诺兹(John C.Reynolds)。2002.分离逻辑:共享可变数据结构的逻辑。2002年7月22日至25日,第17届IEEE计算机科学逻辑研讨会(LICS 2002),丹麦哥本哈根,会议记录。55-74.
    [115]
    丹·罗宾逊。2017年,HPE展示了拥有160TB共享内存的机器。数据中心动态(2017年5月)。
    [116]
    疯狂的罗森达尔。1989.自动复杂性分析。在《89年FPCA:函数式编程语言与计算机体系结构》中。美国医学会,144-156。
    [117]
    D.T.罗斯。1967年。AED免费存储包。Commun公司。ACM 10,8(1967年8月),481-492。
    [118]
    Rust团队。2019.Rust语言。https://www.rust-lang.org/
    [119]
    大卫·桑兹。1990年a。函数程序时间分析的微积分。博士论文。伦敦大学帝国理工学院。
    [120]
    大卫·桑兹。1990年b。懒惰高阶语言的复杂性分析。在ESOP’90:第三届欧洲编程研讨会论文集。英国伦敦施普林格-弗拉格,361-376。
    [121]
    Patrick M.Sansom和Simon L.Peyton Jones。1995.非严格高阶函数语言的时间和空间分析。《编程语言原理》(美国加利福尼亚州旧金山)。355-366.
    [122]
    雅各布·T·施瓦茨。1975年,优化高级语言(第一部分和第二部分)。计算机语言2-3,1(1975),161-194,197-218。
    [123]
    朱利安·顺(Julian Shun)和盖伊·E·布莱洛克(Guy E.Blelloch)。2013年。Ligra:用于共享内存的轻量级图形处理框架。在PPOPP’13中。美国纽约州纽约市ACM,135-146。
    [124]
    朱利安·顺(Julian Shun)、盖伊·布莱洛赫(Guy E.Blelloch)、杰里米·芬曼(Jeremy T.Fineman)、菲利普·吉本斯(Phillip B.Gibbons)、阿波·基罗拉(Aapo Kyrola)、哈莎·瓦尔丹·西哈德里(Harsha Vardhan Simha。2012年,简要公告:基于问题的基准套件。第二十届ACM算法和架构并行性研讨会论文集(美国宾夕法尼亚州匹兹堡)(SPAA'12)。68-70.
    [125]
    KC Sivaramakrishnan、Stephen Dolan、Leo White、Sadiq Jafer、Tom Kelly、Anmol Sahoo、Sudha Parimala、Atul Dhiman和Anil Madhavapeddy。2020年,将并行性改造为OCaml。arXiv预打印arXiv:2004。11663 ( 2020 ).
    [126]
    K.C.Sivaramakrishnan、Lukasz Ziarek和Suresh Jagannathan。2014.MultiMLton:标准ML.函数编程期刊FirstView(2014年6月),1-62。
    [127]
    A.索达尼。2015年,骑士登陆(KNL):第二代Intel Xeon Phi处理器。2015年IEEE热芯片27研讨会(HCS)。1-24.
    [128]
    丹尼尔·斯波恩豪威尔(Daniel Spoonhower)。2009.安排确定性并行程序。博士论文。卡内基·梅隆大学。https://www.cs.cmu.edu/~rwh/theses/sponhower.pdf
    [129]
    Daniel Spoonhower、Guy E.Blelloch、Phillip B.Gibbons和Robert Harper。2009年,超越嵌套平行性:平行期货工作密封管理费用的严格限制。在第二十届算法和体系结构并行性年度研讨会论文集上(加拿大卡尔加里,AB)(SPAA'09)。美国纽约州纽约市ACM,91-100。
    [130]
    Daniel Spoonhower、Guy E.Blelloch、Robert Harper和Phillip B.Gibbons。2008.并行功能程序的空间分析。在国际函数编程会议上。
    [131]
    盖伊·L·斯蒂尔,Jr.1994。通过编写单子来构建口译员。第21届ACM SIGPLAN-SIGACT编程语言原理研讨会论文集(波特兰,俄勒冈州,美国)(POPL'94)。美国纽约州纽约市ACM,472-492。
    [132]
    盖伊·斯蒂尔(Guy L.Steele Jr.),1990年。让异步并行为世界带来安全。第十七届美国计算机学会编程语言原理研讨会(POPL)论文集。ACM出版社,218-231。
    [133]
    Tachio Terauchi和Alex Aiken。2008年,见证副作用。ACM事务处理。程序。语言系统。第30、3条,第15条(2008年5月),42页。
    [134]
    Mads Tofte和Jean-Pierre Talpin。1997.基于区域的内存管理。信息与计算(1997年2月)。http://www.diku.dk/research-groups/topps/activities/kit2/infocomp97.ps
    [135]
    Aaron Turon、Derek Dreyer和Lars Birkedal。2013.在高阶并发逻辑中统一精细化和老式推理。2013年9月25日至27日在美国马萨诸塞州波士顿举行的ACM SIGPLAN功能编程国际会议上。377-390.
    [136]
    亚历山德罗斯·桑内斯(Alexandros Tzannes)、乔治·C·卡拉赫亚(George C.Caragea)、乌齐·维什金(Uzi Vishkin)和拉杰夫·巴鲁阿(Rajeev Barua)。2014.懒惰调度:用于声明并行的运行时自适应调度程序。TOPLAS 36,3,第10条(2014年9月),51页。
    [137]
    罗伯特·乌特巴克(Robert Utterback)、库纳尔·阿格拉瓦尔(Kunal Agrawal)、杰里米·芬曼(Jeremy T.Fineman)和伊汀·安吉丽娜·李(I-Ting Angelina Lee)。2016年,Fork-Join项目的平行种族检测效果显著且实用。2016年7月11日至13日,在美国加利福尼亚州阿西洛玛州立海滩/太平洋格罗夫举行的第28届ACM算法和架构并行性研讨会论文集上。83-94.
    [138]
    维克托·瓦菲亚迪斯和马修·帕金森。2007年,《依赖/保证与分离逻辑的结合》。CONCUR 2007-并发理论,第18届国际会议,CONCUR 2007,葡萄牙里斯本,2007年9月3-8日,会议记录。256-271.
    [139]
    大卫·沃克。2001.关于线性类型和区域。《用于内存管理的语义、程序分析和计算环境第一次研讨会论文集》(SPACE'01)。伦敦。http://www.diku.dk/topps/space2001/program。html#大卫·沃克
    [140]
    Sam Westrick、Rohan Yadav、Matthew Fluet和Umut A.Acar。2020年,嵌套并行项目中的脱纠缠。第47届美国计算机学会编程语言原理(POPL)年会论文集”。
    [141]
    凯西·耶利克(Kathy Yelick)、路易吉·塞门佐托(Luigi Semenzato)、吉奥夫·派克(Geof Pike)、宫本卡尔顿(Carleton Miyamoto)、本·利布里特(Ben Liblit)、阿文德·克里希纳穆西(Arvind Krishnamurthy)、保罗·希尔芬格(Paul Hilfinger)、苏珊·格雷厄姆。1998年,Titanium:一种高性能Java方言。并发:实践与经验10,11-13(1998),825-836。
    [142]
    Lukasz Ziarek、K.C.Sivaramakrishnan和Suresh Jagannathan。2011.可组合异步事件。2011年6月4日至8日,美国加利福尼亚州圣何塞市,2011年PLDI第32届ACM SIGPLAN编程语言设计与实现会议记录。628-639.

    引用人

    查看全部
    • (2024)DisLog:一种用于解纠缠的分离逻辑美国计算机学会程序设计语言会议录10.1145/36328538:POPL(302-331)在线发布日期:2024年1月5日
    • (2023)区域推理上下文中的并行性美国计算机学会程序设计语言会议录10.1145/35912567:PLDI(884-906)在线发布日期:2023年6月6日
    • (2023)同步的响应并行性美国计算机学会程序设计语言会议录10.1145/35912497:PLDI(712-735)在线发布日期:2023年6月6日
    • 显示更多引用者

    建议

    评论

    信息和贡献者

    问询处

    发布于

    封面图片美国计算机学会编程语言会议录
    美国计算机学会程序设计语言会议录 第5卷,发行POPL
    2021年1月
    1789页
    EISSN公司:2475-1421
    DOI(操作界面):10.1145/3445980
    期刊目录
    本作品根据Creative Commons Attribution International 4.0许可证授权。

    出版商

    计算机协会

    美国纽约州纽约市

    出版历史

    出版:2021年1月4日
    在PACMPL中发布体积5,问题POPL公司

    权限

    请求对此文章的权限。

    检查更新

    徽章

    作者标记

    1. 解缠结
    2. 函数式编程
    3. 内存管理
    4. 并行计算

    限定符

    • 研究文章

    资金来源

    • 国家科学基金会

    贡献者

    其他指标

    文献计量学和引文

    文献计量学

    文章指标

    • 下载量(最近12个月)3,122
    • 下载次数(最近6周)345

    其他指标

    引文

    引用人

    查看全部
    • (2024)DisLog:一种用于解纠缠的分离逻辑美国计算机学会程序设计语言会议录10.1145/36328538:POPL(302-331)在线发布日期:2024年1月5日
    • (2023)区域推理上下文中的并行性美国计算机学会程序设计语言会议录10.1145/35912567:PLDI(884-906)在线发布日期:2023年6月6日
    • (2023)同步的响应并行性美国计算机学会程序设计语言会议录10.1145/35912497:PLDI(712-735)在线发布日期:2023年6月6日
    • (2023)使用NAS并行基准评估HPC的函数内存管理并行语言2023 IEEE国际并行和分布式处理研讨会(IPDPSW)10.1109/IPDPSW59300.2023.00072(413-422)在线发布日期:2023年5月

    视图选项

    查看选项

    PDF格式

    以PDF文件查看或下载。

    PDF格式

    电子阅读器

    使用联机查看电子阅读器.

    电子阅读器

    获取访问权限

    登录选项

    完全访问权限

    媒体

    数字

    其他

    桌子

    分享

    分享

    共享此出版物链接

    在社交媒体上分享