基于多核的程序优化技术学习.ppt
《基于多核的程序优化技术学习.ppt》由会员分享,可在线阅读,更多相关《基于多核的程序优化技术学习.ppt(43页珍藏版)》请在启牛文库网上搜索。
1、基于多核的程序优化技术多核架构及编程技术内容1、编译回顾2、基于多核的程序优化技术编译回顾什么是编译?用高级语言编制的程序,计算机不能立即执行,必须通过一个“翻译程序”加工,转化为与其等价的机器语言程序,机器才能执行。编译过程是指将高级语言程序翻译为等价的目标程序的过程。编译的作用?源程序源程序编译程序编译程序源程序的中间形式源程序的中间形式输入数据输入数据解释程序解释程序输出数据输出数据词法分析语法分析语义分析、生成中间代码代码优化生成目标程序编译过程的5个基本阶段:编译过程是指将高级语言程序翻译为等价的目标程序的过程。代码优化代码优化:指编译程序为了生成高质量的目标程序而做的各种加工和处理
2、。目的:提高目标代码运行效率时间效率:减少运行时间空间效率:减少内存容量原则:严格遵循“不能改变原有程序语义”原则。优化的分类从优化的层次,与机器是否有关:独立于机器的优化与目标机无关的优化,通常是在中间代码上进行的优化。与机器有关的优化:充分利用系统资源(指令系统,寄存器资源)。从优化涉及的范围,可以分为:局部优化:是指在基本块内进行的优化。循环优化:对循环语句所生成的中间代码序列上所进行的优化。全局优化:跨越多个基本块的全局范围内的优化。并行编译基础并行编译系统:就是能够处理并行程序设计语言,能够实现串行程序并行化,具有并行优化能力的编译系统。并行编译技术的主要内容:串行程序的向量化和并行
3、化。向量化:将串行程序中可向量化部分改写成用向量运算表示的等价程序;其编译技术已趋成熟并行化:将串行程序中可并行化部分改写成在多处理机上并行执行的等价程序;难度大,涉及数据的私有化、分布和通信,以及并行任务划分等问题。借助于OpenMP。基于多核的程序优化技术并行编程模型并行语言并行编译器并行语言运行时可伸缩的执行环境多核处理器。多核软件栈普遍并行编程多核编程和编译是一重大挑战:一般的程序员经常需要为多核处理器编程,即使对专家来说,并行编程也是一件难事。如何使并行编程变得容易?并发控制并行化。并发控制通常会使用锁。锁不可取。锁存在根本性的问题:容易出错:忽略关键锁、死锁、有限级倒置、护送问题。
4、难以优化性能:粗粒度锁会妨碍并行,细粒锁会导致高开销。锁的程序/库线程不能随意构成。事务型内存:基本的原子结构:HPCS语言(Fortress、X10、chapel)提供原子结构以取代锁。多线程的两种方法本地线程(NativeThreading)OpenMP线程优化关键选择关键的代码(费时间的代码)进行多线程设计。如果不能确定程序的主要计算部分(?)借助于IntelVTuneAnalyzers来进行程序分析。一些要点建议使用IntelC+编译器进行编译程序。使用IntelMathKernelLibrary(IntelMKL)IntelMKL函数库中提供了VML函数,这些函数可以对超越函数(si
5、n,cos,exp,log等)进行优化。提高程序性能。现在串行上要调试通过,然后再进行多核多线程的编程工作。多线程后,用Intel线程监测器进行查找线程错误:资源竞争、线程死锁等问题。用IntelThreadProfiler工具开定位程序中负载不失衡或开销过大的问题。首先用OpenMP进行并行编程。前面讲过,这里不再详细描述。VTunePerformanceAnalyzer6.0优化过程IntelVTuneTM的使用有助于:找到算法的瓶颈由数据规划引起的瓶颈应用结构的瓶颈系统级以及硬件的瓶颈术语热点(hotspot)hotspot是你的代码花费很长时间执行的区域。通过定位hotspot,VTu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 多核 程序 优化 技术 学习