预览加载中,请您耐心等待几秒...
1/3
2/3
3/3

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

面向异构多核处理器的并行代价模型摘要:现有的并行代价模型大多是面向共享存储或分布存储结构设计的不完全适合异构多核处理器。为解决这个问题提出了面向异构多核处理器的并行代价模型通过定量刻画计算核心运算能力、存储访问延迟和数据传输开销对循环并行执行时间的影响提高加速并行循环识别的准确性。实验结果表明提出的并行代价模型能有效识别加速并行循环将其识别结果作为后端生成并行代码的依据可有效提高并行程序在异构多核处理器上的性能。关键词:自动并行化;并行代价模型;异构多核;数据传输开销;加速并行循环0引言自动并行化是获得并行程序的一种简单高效的手段[1]。无论是面向共享存储结构还是分布存储结构的自动并行化并行的主要对象都是程序中的循环。然而并不是所有循环都适合并行。循环并行化能否带来收益是判断一个循环是否进行并行的首要标准。当前大部分编译器和运行时库都包含一套收益评估机制即并行代价模型。它是自动并行化的核心是识别加速并行循环的基础和依据。准确高效的代价模型有利于提升所得并行程序的性能。理想的并行代价模型应充分考虑计算机的硬件特征、程序特点及其相互影响并在尽可能短的时间内对并行代码做出尽可能精确的性能评估[2]。为达到这个目标国内外众多学者展开了积极的探索与研究。针对共享存储系统Trifunovic等[3]基于多面体模型构造了基于迭代空间和数组访问模式的代价函数来挖掘程序的细粒度并行性。Bondhugula等[4]提出基于循环结构分析的代价模型以获得最佳的循环合并方案增加程序并行粒度。OpenUH编译器则把更多的影响因素考虑在内如同步开销、调度策略、负载平衡等通过建立更细致的模型为OpenMP程序提供更可靠的并行代价评估[2]。分布存储系统方面Sharapov等[5]结合排队理论及处理器和互连网络仿真技术预测MPI/OpenMP混合并行代码的性能挖掘系统的多级并行。这些模型都在一定程度上反映了系统的硬件特性和软件特点展现出一定的代价评估能力。但由于它们是针对特定体系结构设计的不适合直接在其他平台上使用。它由一个支持双线程的64位PowerPC通用处理器核PPE(PowerProcessorElement)和8个SIMD向量协处理器核SPE(SynergisticProcessorElement)组成。PPE负责计算资源的管理和调度SPE负责加速计算任务。PPE包含两级cacheSPE没有cache却各有256KB的本地存储。SPE不能直接访问主存必须通过直接存储访问(DirectMemoryAccessDMA)操作完成系统主存与本地存储的数据传输。这些特点使Cell处理器在并行计算方面既有优势又有劣势。优势是丰富的计算核心有利于获得更高的并行性能劣势是当循环缺乏足够的并行粒度时增加的数据传输开销和并行控制开销会使并行执行时间大于串行执行时间。因此需要一个准确高效的并行代价模型在并行化循环前评估循环的并行效果从而做出正确的并行抉择优化生成的并行程序性能。