关于并行性和确定性的调查
摘要:并行性通常对于性能是必需的。在这些情况下,过多的非确定性是有害的,因为这意味着程序可以有多种不同的行为甚至不同的结果。即使在高性能计算等领域,其中并行性对于性能至关重要,计算出的值也应该是确定性的。不幸的是,程序中的非确定性也允许动态调度任务,对第一个成功的任务作出反应,取消无法导致结果的任务等等。因此,非确定性既是一种期望的资产,也是一种不受欢迎的属性,具体取决于情况。实际上,往往需要限制非确定性,并准确识别非确定性的来源,以控制程序的哪些部分是确定性的或不确定性的。本调查从编程语言的角度出发,研究编程模型如何确保并行程序的确定性。本调查不仅研究确定性语言,还研究可以防止非确定性的一个特别严重的来源:数据竞争的编程模型。我们的目标是比较现有解决方案对以下问题的回答:编程语言如何帮助程序员编写运行在并行方式下的没有可见非确定性的程序?哪种编程范式能够确保这种属性?我们研究这些问题,并讨论不同方法的优点和局限性。
作者:Laure Gonnord (LCIS), Ludovic Henrio, Lionel Morel, Gabriel Radanne
论文ID:2210.15202
分类:Programming Languages
分类简称:cs.PL
提交时间:2022-10-28