首页 | 本学科首页   官方微博 | 高级检索  
     


THE JANUS TEST: A HIERARCHICAL ALGORITHM FOR COMPUTING DIRECTION AND DISTANCE VECTORS (EXTENDED VERSION)*
Abstract:For a compiler, dependence direction vectors are the key structure for many loop parallelizing transformations. More powerful transformations require knowing the values of the associated distances. However, this generally involves solving many problems. In this paper, we consider a hierarchical set of problems which differ only in direction vectors, as in the framework introduced by Burke and Cytron. Firstly, we solve the basic problem of the existence of a dependence without direction constraints, using a fast and exact algorithm composed of a pre-processing phase of reduction and of an integer simplex resolution. We propose a new “basic” algorithm. Secondly, if a solution exists, we define three new problems, each of them being obtained by adding a constraint associated with one of the three possible direction vectors relative to the first loop index. For each of these problems, if a solution exists, we define three enlarged similar problems involved by the second loop index, and so forth until the last index. The amount of computation for each new problem is very low. Information on the values of the distances is provided. The Janus Test, implemented at INRIA, has been embedded in the parallelizer built within the esprit project Compare and in the PARTITA tool of the EUREKA project EUROTOPS. Due to its robustness, it could be applied to more complex problems in data dependence and data flow analysis.
Keywords:loop parallelization  data dependence  direction vector  dependence distance  integer programming
设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号