Transitive closure of infinite graphs and its applications

W Kelly, W Pugh, E Rosser, T Shpeisman - International Journal of Parallel …, 1996 - Springer
International Journal of Parallel Programming, 1996Springer
Integer tuple relations can concisely summarize many types of information gathered from
analysis of scientific codes. For example, they can be used to precisely describe which
iterations of a statement are data dependent of which other iterations. It is generally not
possible to represent these tuple relations by enumerating the related pairs of tuples. For
example, it is impossible to enumerate the related pairs of tuples in relation {[i]→[i+ 2]| l⩽ i⩽
n− 2}. Even when it is possible to enumerate the related pairs of tuples, such as for the …
Abstract
Integer tuple relations can concisely summarize many types of information gathered from analysis of scientific codes. For example, they can be used to precisely describe which iterations of a statement are data dependent of which other iterations. It is generally not possible to represent these tuple relations by enumerating the related pairs of tuples. For example, it is impossible to enumerate the related pairs of tuples in relation {[i] → [i + 2]|l ⩽ in − 2}. Even when it is possible to enumerate the related pairs of tuples, such as for the relation {[i, j] → [i′, j′]|l ⩽ i, j, i′, j′ ⩽ 100}, it is often not practical to do so. We instead use a closed form description by specifying a predicate consisting of affine constraints on the related pairs of tuples. As we just saw, these affine constraints can be parameterized, so what we are really describing are infinite families of relations (or graphs). Many of our applications of tuple relations rely heavily on an operation called transitive closure. Computing the transitive closure of these “infinite graphs” is very different from the traditional problem of computing the transitive closure of a graph whose edges can be enumerated. For example, the transitive closure of the first relation above is the relation {[i] → [i′]|∃β s.t. i′ − i = 2β ∧ l ⩽ ii′ ⩽ n}. As we will prove, transitive closure is not comutable in the general case. We have developed algorithms that produce exact results in most commonly occuring cases and produce upper of lower bounds (as necessary) in the other cases. This paper will describe ou algorithms for computing transitive closure and some of its applications such as determining which inter-processor synchronizations are redundant.
Springer
以上显示的是最相近的搜索结果。 查看全部搜索结果