传统的并行编译技术能够在编译期间进行相关性分析,有效地并行化循环程序,但是对于程序运行时潜在的并行性却无能为力.因此,并行编译技术必须使用实时依赖分析技术,尽可能挖掘循环级并行性.本文提出仿射依赖关系,消除了循环迭代依赖;基于投机并行思想,提出了SPAD方法.实例分析表明,SPAD是有效的.与LRPD和SPNT方法相比较,SPAD做了重要的改进,因此是更通用的投机并行化方案.
Traditional parallelizing compiler techniques can analysis the dependences and effectively parallel loops at compiletime, but cannot exploit the potential parallelism of loops at run-time. Therefore, parallelizing compilers must rely on the run-time dependence analysis techniques to detect parallelism as possible. We propose the affine data dependence which eliminates all cross-iteration data dependences. Meanwhile, a novel test, called the speculative parallelization based affine dependence (SPAD) test, is developed based upon the speculative parallelization. Some case studies show that the SPAD-test is effective and efficient. Compared to the LRPD test and SPNT test ,the SPAD-test makes significant improvement ,and is therefore a more general scheme of speculative parallelization test.