计算机科学 ›› 2017, Vol. 44 ›› Issue (5): 14-19.doi: 10.11896/j.issn.1002-137X.2017.05.003

• 目次 • 上一篇    下一篇

分支嵌套循环的自动并行化研究

丁丽丽,李雁冰,张素平,王鹏翔,张庆花   

  1. 解放军信息工程大学数学工程与先进计算国家重点实验室 郑州450002,解放军信息工程大学数学工程与先进计算国家重点实验室 郑州450002,解放军信息工程大学数学工程与先进计算国家重点实验室 郑州450002,解放军信息工程大学数学工程与先进计算国家重点实验室 郑州450002,解放军信息工程大学数学工程与先进计算国家重点实验室 郑州450002
  • 出版日期:2018-11-13 发布日期:2018-11-13
  • 基金资助:
    本文受国家高技术研究发展计划(863计划)(2009AA01220),“核高基”重大专项(2009zx01036-001-001-2)资助

Auto-parallelization Research Based on Branch Nested Loops

DING Li-li, LI Yan-bing, ZHANG Su-ping, WANG Peng-xiang and ZHANG Qing-hua   

  • Online:2018-11-13 Published:2018-11-13

摘要: GCC编译器是一种受广大研究者青睐的开源优化编译器,但它仅仅能够对完美嵌套循环进行依赖分析。为了更好地挖掘嵌套循环粗粒度的并行,深入研究了GCC5.1数据依赖分析过程,提出了一种能够处理分支嵌套循环的依赖测试方法。首先识别出分支嵌套循环,然后分析数组下标与分支嵌套循环外层索引变量的关系,最后计算出外层循环索引变量的距离向量,并通过检测距离向量判断循环是否存在依赖。实验结果表明,该方法能够正确、有效地分析出分支嵌套循环的依赖关系。

关键词: 数据依赖分析,GCC,完美嵌套循环,分支嵌套循环,距离向量

Abstract: GCC compiler is an open source compiler system which has won favour among many researchers,however,it is only able to analyze the dependence of perfect nested loop.In order to efficiently explore the granularity parallelism of nested loop,we deeply analyzed the data dependence of GCC5.1 and put forward a dependence testing method of handling branch nested loop.At first,the branch nested loop is recognized.Then,the relationship between array index and index variable of outer loop is identfied.At last,the distance vector of outer loop is computed,and whether the loop has carried dependence or not is decided by examining the distance vector.The experimental results show that the proposed method can effectively recognize the dependence of branch nested loop.

Key words: Data dependence analysis,GCC,Perfect nested loop,Branch nested loops,Distance vector

[1] HAN L.Research on Consistent Optimization Techiniques ofParallel Decomposition for Distributed memory Architecture[D].Zhengzhou:The PLA Information Engineering University,2008.(in Chinese) 韩林.面向分布存储结构的并行分解一致性优化技术研究[D].郑州:解放军信息工程大学,2008.
[2] HALL M W,AMARASINGHE S P,MURPHY B R,et al.Interprocedural parallelization analysis in SUIF[J].ACM Tran-sactions on Programming Languages and Systems,2005,27(4):662-731.
[3] LIN M,YU Z Y,ZHANG D,ZHU Y M,et al.Retargeting the Open64 Compiler to PowerPC Processor[C]∥Proceedings of Embedded Software and Systems Symposia,2008.San Francisco:IEEE Computer Society Press,2008:152-157.
[4] ALLEN R,KENNEDY K.Optimizing Compilers for Modern Ar-chitectures[M].California:Morgan Kaufmann Publisher,2005.
[5] RADHIKA D.Venkatasubramanyam.Array Access Analysis in Open64[D].Houston:University of Houston,2004.
[6] ZHAO Q,BRUENING D,AMARASINGHE S.Umbra:efficient and scalable memory shadowing[C]∥Proceedings of the 8th International Symposium on Code Generation and Optimization (CGO).2010:22-31.
[7] NETHERCOTE N,SEWARD J.How to shadow every byte of memory used by a program[C]∥Proceedings of the 3rd International Conference on Virtual Execution Environments (VEE).2007:65-74.
[8] BERLIN D,EDELSOHN D.High-level loop optimizations forGCC[C]∥Proceedings of the Gcc Developers Summit.2004:37-54.
[9] ZENG Y L,YANG C Q,HUANG C.Analysis and Improve-ment of the GCC 4.1 Data Dependence Analyzer[J].Computer Engineering & Science,2006,28(10):104-106.(in Chinese) 曾利永,杨灿群,黄春.GCC 4.1数据依赖分析器的分析与改进[J].计算机工程与科学,2006,28(10):104-106.
[10] ZHANG Q S,LI Y,FAN Z D,et al.Automatic Parallelizationfor Loops Carried Data Dependence Between Itreations[J].Journal of Chines Computer Systems,2014(6):1293-1297.(in Chinese) 张琼声,李莹,范志东,等.含有跨迭代数据依赖关系循环的自动并行化[J].小型微型计算机系统,2014(6):1293-1297.
[11] KUMAR S S,CHAHAR A,VAN LEUKEN R.Cit:A GCCPlugin for the Analysis and Characterization of Data Dependencies in Parallel Programs[J/OL].http://cas.et.tudelft.nl/pubs/kumar_DCIS_2013.pdf.

No related articles found!
Viewed
Full text


Abstract

Cited

  Shared   
  Discussed   
No Suggested Reading articles found!