Unified Interprocedural Parallelism Detection

Unified Interprocedural Parallelism Detection
复制标题

统一的过程间并行性检测

DOI:
--
复制
发表时间:
2001
影响因子:
1.5
通讯作者:
K. Yi
K. Yi
中科院分区:
计算机科学4区
文献类型:
--
作者:
J. Hoeflinger;Y. Paek;K. Yi

文献摘要

被引文献

相似文献

在本文中,我们概述了一种新的方法来检测程序内的并行性。我们的方法超越了单纯的依赖性测试,包括消除依赖性的方法,即私有化,归纳识别和减少识别。这种方法基于以下技术的组合:用于表示代码段内的存储器访问的“通用”形式(线性存储器访问描述符),用于基于代码对存储器位置进行的访问对存储器位置进行分类的技术(存储器分类分析),以及依赖性测试(访问区域测试)。线性内存访问描述符的分析是基于一个交叉操作,我们提出了一个算法。线性内存访问描述符独立于程序中可能存在的任何声明,因此它们与子例程和语言无关。这使得它们非常适合用于过程间分析。我们的实验表明,这个测试是非常有效的并行化循环包含非常复杂的下标表达式。
In this paper, we outline a new way of detecting parallelism interprocedurally within a program. Our method goes beyond mere dependence testing, to embrace methods of removing dependences as well, namely privatization, induction recognition and reduction recognition. This method is based on a combination of techniques: a “universal” form for representing memory accesses within a section of code (the Linear Memory Access Descriptor), a technique for classifying memory locations based on the accesses made to them by the code (Memory Classification Analysis), and a dependence test (the Access Region Test). The analysis done with Linear Memory Access Descriptors is based on an intersection operation, for which we present an algorithm. Linear Memory Access Descriptors are independent of any declarations that may exist in a program, so they are subroutine- and language-independent. This makes them ideal for use in interprocedural analysis. Our experiments indicate that this test is highly effective for parallelizing loops containing very complex subscript expressions.