学位论文 > 优秀研究生学位论文题录展示

面向多核处理器的并行编译及优化关键技术研究

作 者: 王淼
导 师: 王志英
学 校: 国防科学技术大学
专 业: 计算机科学与技术
关键词: 多核处理器 异构多核处理器 分布式存储模型 代码自动生成 数据自动管理 资源管理模型 数据分布 SIMD并行化
分类号: TP332
类 型: 博士论文
年 份: 2010年
下 载: 443次
引 用: 0次
阅 读: 论文下载
 

内容摘要


传统的单核处理器通过提高运行频率来提高计算性能。然而,单纯增加晶体管数目不仅耗用大量晶体管资源,而且随着时钟频率不断攀升,微处理器的功耗也迅速增加。提高芯片性能和减少能耗成为矛盾,单核处理器的性能提升已成为瓶颈。为解决这一问题,多核结构的设计思想应运而生。通过在单个芯片上集成多个高效内核,就可以在保持工作频率的条件下实现性能的提升,以获得更高的能效。多核处理器按照集成的处理器核的种类分为同构多核处理器和异构多核处理器。异构多核处理器将不同类型的内核集成在一起,在效率和性能方面往往要优于同构多核处理器。目前,异构多核处理器在加速实际应用方面获得了很高的性能,相关技术已被逐渐运用到新型高性能计算机中。异构多核处理器的特征为高性能并行计算提供了巨大潜力,但是,异构多核处理器在并行编程、存储层次管理等方面都很复杂,另外,在自动并行工具以及软件通用性方面仍有很多难题亟待解决,如何充分利用异构多核对编程模型和编译技术都提出了很大挑战。本文重点围绕异构多核编译系统设计及优化等问题进行研究,本文所提出的编译方法不仅适应于特定异构多核处理器,也适应于其他异构多核处理器系统。本文的主要工作和技术创新概述如下:(1)提出了面向异构多核处理器的代码自动生成框架。以异构多核处理器Cell为实例,基于分布式存储模型为Cell处理器设计并实现了一个源到源编译器。该编译器利用数据对齐、数据分布等技术将程序中的数据自动划分到不同的处理器核中,并根据不同数据分布机制为应用程序插入通讯原语,生成不同版本的可在Cell上运行的SPMD(Single Program Multiple Data)并行程序。首次在Cell上实现了一个高效的多核通讯库,该库包括send/recv、shift和transpose等通讯原语,通讯协议基于Cell的mailbox机制实现。最后,通过实验验证了编译器的有效性和性能,同时与IBM XL C/C++ OpenMP编译器进行了比较,证明了与共享存储编程模型相比,分布式存储编程模型更适于Cell等异构多核处理器。(2)提出了面向异构多核处理器的数据自动管理框架。针对协处理器核局部存储器容量无法满足大数据规模应用的问题,本文提出并实现了一个数据自动管理系统,该系统通过分级数据分布、通讯生成和循环分块等方法对程序中的数据和计算进行分解,使得分解后的数据能够满足局部存储容量的约束。为了减少访存,提高局部存储中数据的重用性,本文还提出了一个通讯优化方法,该方法为程序构建重用图,并根据重用图划分来删除冗余通讯。最后基于异构多核处理器Cell对数据自动管理框架进行了验证和评测,实验表明,该框架能够很好的管理Cell局部存储中的数据,为应用生成高效的代码。(3)提出了面向异构多核处理器的模型驱动的多任务多级并行方法。为了协调异构多核处理器中的计算资源和存储资源,本文首先对异构多核资源管理问题进行抽象,提出并实现了一个资源管理模型,该模型对应一个三维的优化空间,包括变量选择、任务分组和PE(Processing Element)分配。然后,本文提出并实现了一个基于基因算法的智能搜索方法对模型的优化空间进行搜索,来为程序选择性能较优的并行策略。最后基于异构多核处理器Cell对模型进行验证。实验表明,本文设计的资源管理模型能够在极短的时间内为应用确定较好的并行策略,极大的减轻了程序员的编程负担。(4)提出了面向多媒体应用的SIMD(Single Instruction Multiple Data)代码自动生成方法。根据多媒体应用的特点,本文实现了一系列循环变换方法来发掘循环中更多的SIMD并行。针对如何判断循环中哪些部分适于利用SIMD并行,本文提出并实现了基于代价子图的指令选择方法,该方法对循环中可利用SIMD并行的部分进行评估。本文通过利用循环展开、寄存器重命名等方法为应用生成SIMD指令。最后通过实验对指令选择、代码生成方法以及程序性能进行了验证和评估。

全文目录


摘要  11-13
Abstract  13-15
第一章 绪论  15-33
  1.1 研究背景  15-21
    1.1.1 多核处理器的发展  15-18
    1.1.2 多核处理器编程面临的挑战  18-20
    1.1.3 异构多核处理器编译技术面临的挑战  20-21
    1.1.4 课题来源  21
  1.2 相关工作  21-29
    1.2.1 基于OpenMP 编程模型的多核编译技术  21-23
    1.2.2 基于流编程模型的多核编译技术  23-24
    1.2.3 其他多核编程模型  24-27
    1.2.4 SIMD 并行编译技术的相关工作  27-29
  1.3 本文的主要工作与技术创新  29-31
    1.3.1 本文主要工作  29-30
    1.3.2 本文技术创新  30-31
  1.4 本文的结构安排  31-33
第二章 面向异构多核处理器的代码自动生成框架  33-67
  2.1 问题提出  33-35
  2.2 编译框架  35-37
  2.3 数据对齐  37-43
    2.3.1 仿射图  37-39
    2.3.2 支配数组  39
    2.3.3 仿射图划分  39-43
  2.4 数据分布  43-47
    2.4.1 数据分布机制  43-45
    2.4.2 基于数据对齐的数据分布方法  45-47
    2.4.3 数据重分布  47
  2.5 通讯生成  47-59
    2.5.1 通讯  48-53
    2.5.2 通讯生成算法  53-59
  2.6 并行代码生成  59
  2.7 实验  59-65
    2.7.1 性能评测  60-64
    2.7.2 性能比较  64-65
  2.8 本章小结  65-67
第三章 面向异构多核处理器的数据自动管理  67-87
  3.1 研究背景  67-69
  3.2 数据自动管理框架  69-78
    3.2.1 分级数据分布  70-72
    3.2.2 通讯生成  72-76
    3.2.3 循环分块  76-77
    3.2.4 循环分裂  77
    3.2.5 代码生成实例  77-78
  3.3 优化  78-82
    3.3.1 数据重用合法性判定  78-80
    3.3.2 重用图  80
    3.3.3 基于图划分的通讯消除  80-82
  3.4 实验  82-85
  3.5 本章小结  85-87
第四章 面向异构多核处理器的模型驱动的多级并行开发  87-117
  4.1 研究背景  87-90
    4.1.1 BSP 模型  87-89
    4.1.2 基于BSP 模型的多任务多级并行  89-90
  4.2 资源分配模型  90-97
    4.2.1 模型定义  90-95
    4.2.2 同步  95-97
  4.3 模型构建方法  97-106
    4.3.1 变元选择  97-99
    4.3.2 任务分组  99-101
    4.3.3 PE 分配  101-104
    4.3.4 搜索空间构建  104-106
  4.4 基于模型的并行策略选择  106-112
    4.4.1 枚举搜索  106-107
    4.4.2 基于基因算法的智能搜索  107-112
  4.5 实验  112-116
    4.5.1 实验1:eflux  112-113
    4.5.2 实验2:sobel  113-116
  4.6 本章小结  116-117
第五章 SIMD 级并行开发  117-139
  5.1 代码生成框架  118
  5.2 预处理  118-122
    5.2.1 归纳变量识别  118-120
    5.2.2 强度削弱  120-122
    5.2.3 连续访存识别  122
  5.3 指令选择  122-128
    5.3.1 标识非自由指令  122-123
    5.3.2 代价子图生成  123-128
  5.4 SIMD 代码生成  128-132
    5.4.1 循环展开  128-129
    5.4.2 寄存器重命名  129-130
    5.4.3 归纳变量的复写传播与变量扩展  130-131
    5.4.4 指令合并  131-132
    5.4.5 并行代码生成  132
  5.5 实验  132-137
    5.5.1 实验环境  132-134
    5.5.2 实验结果  134-137
  5.6 本章小结  137-139
第六章 结论与展望  139-143
  6.1 工作总结  139-140
  6.2 研究展望  140-143
致谢  143-145
参考文献  145-157
作者在学期间取得的学术成果  157-158

相似论文

  1. TD-SCDMA无线链路控制协议实现研究,TN929.533
  2. 嵌入式系统图形用户界面代码自动生成技术的研究,TP368.1
  3. 多核系统中基于温度限制的节能调度算法研究,TP332
  4. 分布式内存多核处理器流程序虚拟机研究,TP333.1
  5. 基于TILE Pro64多核处理器的3G服务器视频转码软件设计,TP393.05
  6. 基于TilePro64多核处理器的H.264高清视频解码软件设计,TN919.81
  7. 安全相关软件的设计方法研究及应用,TP311.52
  8. 基于GALS的多核互连及任务调度策略研究,TN47
  9. 基于共享前端的流多核体系结构关键技术研究,TP332
  10. 基于群智能和冲突规避策略的基因—基因交互作用检测及其并行计算,TP391.41
  11. 基于云计算的分布式智能语义搜索方法研究,TP391.1
  12. 多分辨率图像锥结合FCM的多核并行图像分割算法研究,TP391.41
  13. 高性能低功耗多核处理器研究,TP332
  14. DTMB中3780点FFT在多核DSP平台上的实现,TP368.1
  15. 基于三维动画角色建模的资源库设计与应用,TP311.52
  16. 生物信息数据库数据服务生成系统的设计与实现,TP311.52
  17. 面向软件事务存储的内存管理技术研究与实现,TP333.1
  18. 海量空间数据的分布式存储管理及并行处理技术研究,TP333
  19. 月球科学数据编目处理与集成管理技术研究,V446.9
  20. .NET下通用信息系统开发模型研究与实践,TP311.52
  21. 面向MPI程序的进程数据相似性分析与优化技术,TP311.11

中图分类: > 工业技术 > 自动化技术、计算机技术 > 计算技术、计算机技术 > 电子数字计算机(不连续作用电子计算机) > 运算器和控制器(CPU)
© 2012 www.xueweilunwen.com