由于处理器之间通信的高成本,自动并行化循环的编译器不得不跳过大量的循环,这些循环对性能至关重要,而且具有丰富的潜在并行性。HELIX-RC是一个编译器/微处理器的协同设计,它通过在传统多核体系结构中解耦通信与线程执行来打开那些循环到并行化。将HELIX-RC应用到具有16个Intel atom类核心的处理器上的仿真表明,在六个SPEC CINT2000基准测试中,性能平均提高了6.85×。
在多核处理器上,程序的性能很大程度上取决于它如何利用并行线程。有些计算问题可以用天生并行或容易并行的数值程序来解决。从历史上看,成功的并行化工具能够将这类程序的顺序循环转换为并行形式,显著提高了性能。然而,大多数软件仍然是按顺序设计的,很大程度上是非数字的,控制和数据流不规则。由于这种软件的手动并行化容易出错且耗时,非数值程序的自动并行化仍然是一个重要的开放问题。
在过去的十年中,解决方案取得了令人印象深刻的进展,但是当针对商品处理器时,现有的并行器仍然没有实现循环中的许多潜在并行性。5程序中较大的循环很难精确分析,以至于明显的依赖性常常会淹没核心之间的通信通道。更小的循环更适合精确的分析,我们的工作表明,在SPECint2000基准所代表的非数值程序中,小循环的迭代之间有很多并行性。4但是,即使经过了严格的优化,小循环通常也包含了循环携带的依赖性,因此它们的迭代不能完全独立——它们必须进行通信。因为小循环的迭代很短(SPECint2000平均25个时钟周期),所以它们的通信是频繁的。
没有发现记录