论文标题
因果并发的较粗
Coarser Equivalences for Causal Concurrency
论文作者
论文摘要
跟踪理论是一个原则上的框架,用于定义同时程序的等价关系,该计划是基于对单个程序线程采取的一系列原子步骤的换向关系而运行的。它的简单性,优雅和算法效率使其在许多不同的情况下有用,包括程序验证和测试。我们研究痕量等效性的放松,目的是保持其算法优势。 我们首先证明,痕量等价的最大适当放松,这是一个等效关系,它保留了每个线程所采取的步骤的顺序以及每个读取操作观察到的写入操作,并未产生有效的算法。我们证明,在流媒体设置中检查检查问题的线性空间下限,如果并发程序运行的两个任意步骤是有因果并发的(即可以在等效运行中重新排序)或因果序(即它们始终以所有等效运行均以相同的顺序出现)。可以在恒定空间中确定相同的问题以获得痕量等价。接下来,我们提出了一个新的基于通勤性的等效性概念,称为谷物等效性,严格比痕量等效性更轻松,但对于同一问题产生了恒定的空间算法。等效性的概念除了痕量理论的标准交换性外,还采用了晶粒的通勤性,这些晶粒是原子步骤的序列。当谷物是输入程序的连续子字时,我们研究了两个不同的情况,而当谷物不在时,在每种情况下,谷物不符合因果并发的精确定义,并表明尽管严格放松了基于痕量痕量等效性的因果关系概念,但仍可以在恒定空间中确定它们。
Trace theory is a principled framework for defining equivalence relations for concurrent program runs based on a commutativity relation over the set of atomic steps taken by individual program threads. Its simplicity, elegance, and algorithmic efficiency makes it useful in many different contexts including program verification and testing. We study relaxations of trace equivalence with the goal of maintaining its algorithmic advantages. We first prove that the largest appropriate relaxation of trace equivalence, an equivalence relation that preserves the order of steps taken by each thread and what write operation each read operation observes, does not yield efficient algorithms. We prove a linear space lower bound for the problem of checking, in a streaming setting, if two arbitrary steps of a concurrent program run are causally concurrent (i.e. they can be reordered in an equivalent run) or causally ordered (i.e. they always appear in the same order in all equivalent runs). The same problem can be decided in constant space for trace equivalence. Next, we propose a new commutativity-based notion of equivalence called grain equivalence that is strictly more relaxed than trace equivalence, and yet yields a constant space algorithm for the same problem. This notion of equivalence uses commutativity of grains, which are sequences of atomic steps, in addition to the standard commutativity from trace theory. We study the two distinct cases when the grains are contiguous subwords of the input program run and when they are not, formulate the precise definition of causal concurrency in each case, and show that they can be decided in constant space, despite being strict relaxations of the notion of causal concurrency based on trace equivalence.