当前位置: X-MOL 学术ACM Comput. Surv. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
A Survey on Parallelism and Determinism
ACM Computing Surveys ( IF 23.8 ) Pub Date : 2023-02-02 , DOI: 10.1145/3564529
Laure Gonnord 1 , Ludovic Henrio 2 , Lionel Morel 3 , Gabriel Radanne 4
Affiliation  

Parallelism is often required for performance. In these situations an excess of non-determinism is harmful as it means the program can have several different behaviours or even different results. Even in domains such as high-performance computing where parallelism is crucial for performance, the computed value should be deterministic. Unfortunately, non-determinism in programs also allows dynamic scheduling of tasks, reacting to the first task that succeeds, cancelling tasks that cannot lead to a result, and so on. Non-determinism is thus both a desired asset or an undesired property depending on the situation. In practice, it is often necessary to limit non-determinism and to identify precisely the sources of non-determinism to control what parts of a program are deterministic or not.

This survey takes the perspective of programming languages, and studies how programming models can ensure the determinism of parallel programs. This survey studies not only deterministic languages but also programming models that prevent one particularly demanding source of non-determinism: data races.

Our objective is to compare existing solutions to the following questions: How programming languages can help programmers write programs that run in a parallel manner without visible non-determinism? What programming paradigms ensure this kind of properties? We study these questions and discuss the merits and limitations of different approaches.



中文翻译:

并行性和决定论综述

性能通常需要并行性。在这些情况下,过度的非确定性是有害的,因为这意味着程序可以有几种不同的行为甚至不同的结果。即使在并行性对性能至关重要的高性能计算等领域,计算值也应该是确定性的。不幸的是,程序中的非确定性还允许动态调度任务、对第一个成功的任务作出反应、取消无法产生结果的任务,等等。因此,根据具体情况,非确定性既是一种理想的资产,也是一种不受欢迎的财产。在实践中,通常需要限制非确定性并准确识别非确定性的来源以控制程序的哪些部分是确定性的或不是。

本综述从编程语言的角度,研究编程模型如何保证并行程序的确定性。这项调查不仅研究确定性语言,还研究防止一种特别苛刻的非确定性来源的编程模型:数据竞争。

我们的目标是将现有解决方案与以下问题进行比较:编程语言如何帮助程序员编写以并行方式运行且没有明显不确定性的程序?什么样的编程范例确保了这种属性?我们研究这些问题并讨论不同方法的优点和局限性。

更新日期:2023-02-02
down
wechat
bug