Execution graphs of parallel loop programs exhibit a nested, repeating structure. We show how such graphs that are the result of nested repetition can be represented by succinct parametric structures. This parametric graph template representation allows us to reason about the execution graph of a parallel program at a cost that only depends on the program size. We develop structurally-parametric polynomial-time algorithm variants of maximum flows. When the graph models a parallel loop program, the maximum flow provides a bound on the data movement during an execution of the program. By reasoning about the structure of the repeating subgraphs, we avoid explicit construction of the instantiation (e.g., the execution graph), potentially saving an exponential amount of memory and computation. Hence, our approach enables graph-based dataflow analysis in previously intractable settings.
翻译:并行循环程序的执行图呈现出嵌套重复结构。我们展示了如何通过简洁的参数化结构来表示这类由嵌套重复生成的图。这种参数化图模板表示使我们能够以仅取决于程序规模的开销,对并行程序的执行图进行推理。我们开发了最大流问题的结构参数化多项式时间算法变体。当图模型对应并行循环程序时,最大流可提供程序执行期间数据移动的上界。通过分析重复子图的结构,我们避免了显式构造实例化图(例如执行图),从而可能节省指数级的内存与计算资源。因此,我们的方法使得在先前难以处理的情境中进行基于图的数据流分析成为可能。