基于多核程序优化技术ppt课件_第1页
基于多核程序优化技术ppt课件_第2页
基于多核程序优化技术ppt课件_第3页
基于多核程序优化技术ppt课件_第4页
基于多核程序优化技术ppt课件_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于多核的程序优化技术多核架构及编程技术内 容1、编译回想2、基于多核的程序优化技术编译回想 什么是编译? 用高级言语编制的程序,计算机不能立刻执行, 必需经过一个“翻译程序加工,转化为与其等价的 机器言语程序,机器才干执行。编译过程是指将高级言语程序翻译为等价的目的程序的过程。 编译的作用?源程序源程序编译程序编译程序源程序的中间方式源程序的中间方式输入数据输入数据解释程序解释程序输出数据输出数据词法分析语法分析语义分析、生成中间代码代码优化生成目的程序编译过程的5个根本阶段:编译过程是指将高级言语程序翻译为等价的目的程序的过程。代码优化 代码优化: 指编译程序为了生成高质量的目的程序而做的

2、各种加工和处置。 目的:提高目的代码运转效率 时间效率:减少运转时间 空间效率:减少内存容量 原那么: 严厉遵照“不能改动原有程序语义原那么。优化的分类 从优化的层次,与机器能否有关: 独立于机器的优化 与目的机无关的优化,通常是在中间代码上进展的优化。 与机器有关的优化: 充沛利用系统资源指令系统,存放器资源。 从优化涉及的范围,可以分为: 部分优化: 是指在根本块内进展的优化。 循环优化: 对循环语句所生成的中间代码序列上所进展的优化。 全局优化: 跨越多个根本块的全局范围内的优化。 并行编译根底 并行编译系统: 就是可以处置并行程序设计言语,可以实现串行程序并行化,具有并行优化才干的编译

3、系统。 并行编译技术的主要内容: 串行程序的向量化和并行化。 向量化: 将串行程序中可向量化部分改写成用向量运算表示的等价程序; 其编译技术已趋成熟 并行化: 将串行程序中可并行化部分改写成在多处置机上并行执行的等价程序; 难度大,涉及数据的私有化、分布和通讯,以及并行义务划分等问题。 借助于OpenMP。基于多核的程序优化技术 并行编程模型 并行言语 并行编译器 并行言语运转时 可伸缩的执行环境 多核处置器。 多核软件栈普遍并行编程 多核编程和编译是一严重挑战: 普通的程序员经常需求为多核处置器编程,即使对专家来说,并行编程也是一件难事。 如何使并行编程变得容易? 并发控制 并行化。 并发控

4、制 通常会运用锁。锁不可取。 锁存在根本性的问题: 容易出错: 忽略关键锁、死锁、有限级倒置、护送问题。 难以优化性能: 粗粒度锁会妨碍并行,细粒锁会导致高开销。锁的程序/库线程不能随意构成。 事务型内存: 根本的原子构造:HPCS言语Fortress、X10、chapel提供原子构造以取代锁。 多线程的两种方法 本地线程Native Threading OpenMP线程优化关键 选择关键的代码费时间的代码进展多线程设计。 假设不能确定程序的主要计算部分? 借助于Intel VTune Analyzers来进展程序分析。一些要点 建议运用Intel C+ 编译器进展编译程序。 运用Intel

5、Math Kernel Library Intel MKL Intel MKL 函数库中提供了VML 函数, 这些函数可以对超越函数sin, cos, exp, log等进展优化。提高程序性能。 如今串行上要调试经过,然后再进展多核多线程的编程任务。 多线程后,用Intel线程监测器进展查找线程错误:资源竞争、线程死锁等问题。 用Intel Thread Profiler工具开定位程序中负载不失衡或开销过大的问题。 首先用OpenMP进展并行编程。 前面讲过,这里不再详细描画。VTune Performance Analyzer 6.0优化过程Intel VTuneTM的运用有助于: 找到算法

6、的瓶颈 由数据规划引起的瓶颈 运用构造的瓶颈 系统级以及硬件的瓶颈术语热点hotspot hotspot是他的代码破费很长时间执行的区域。 经过定位hotspot,VTune性能分析工具可以协助他分析运用程序的性能。 但是简单的知道hotspot的位置是不够的,他必需知道什么导致hotspot的产生,怎样改良 经过对热区的进一步分析,他可以跟踪关键的函数调用,监控特殊的处置器事件,如cache missHotspot与Bottleneck的区别 Bottleneck 是系统中性能遭到约束的位置是系统中性能遭到约束的位置 VTune Performance Analyzer协助他找协助他找到并删

7、除到并删除 Bottlenecks.找到软件找到软件Hotspots 是一个分析方法,协助是一个分析方法,协助他定位他定位 Bottlenecks.性能优化方法有三种数据搜集器 Sampling 取样 call graph 调用曲线图 counter monitor 计数器监控器两种跟踪位置的方法 Problem: 我需求知道他在哪破费了多长时间 Statistical Solution: 我每30分钟呼叫他 Instrumentation Solution: 每个地方有一个特殊的 点,他每到一个地点向我报告第一种方法:我固定时间间隔给他 优点:低开销: 没有太多的中断没有建站点的开销无论他在

8、那里都能准确定位缺陷:假设他的双手拿满东西,我必需等待他能够第一次没有听到铃声,所以我不能准确确定我呼叫他时,他在那里由于他不经常去有一些地方,我能够根本不知道他去过由于他不经常去有一些地方,我能够根本不知道他去过第二种方法:当他到了,他打 给我。 优点: 他到达新的地方我能立刻知道 我知道他在一个地方呆了多长时间 我知道他到达同一个地方多少次 缺陷: 不知道他在街道内做了什么 粒度:站点 浪费了大量时间打 建立站点扩展了街道空间如何识别热点? Sampling Data Collector The Statistical Solution 描画执行的一个侧面柱状图 低开销 Call Grap

9、h Data Collector The Instrumentation Solution 函数的时间信息 函数调用者和被调用者的关系 比sampling的开销高三种性能监控方式的比较VTune Projects工程 什么是 Project ? Project 由一个或多个Activities组成 什么是Activity ? 包含他运用程序的信息和希望运转的数据搜集器信息。工程的组织如下My Cool Project 1 Activity 1 Call Graph Call Graph Results - 3 Apr, 2007,3:30 PMCall Graph Results - 4 Ap

10、r, 2007,3:30 PM Activity 2 Counter Monitor Counter Monitor Results - 3 Apr, 2007,4:30 PM Activity 3 SamplingSampling Results - 5 Apr, 2007,8:30 AMRun o Clockticks Instructions RetiredRun 1 Mispredicted Branches Retired取样 打断处置器的执行,获得执行上下文 中断可以是周期性的, 如每秒1,000次采样 采样的触发 Event Based Sampling EBS. 采样事件:处置

11、器相关事件,如 L2 Cache Misses, Branch Mispredictions, Floating-point instructions retired, etc.举例: gzip 采样分析 引见 EBS 与 Sampling 用户界面 gzip是一个开放源紧缩程序文件选择一个新的工程选择“Sampling Wizard,点击 OK选择Win32*/Win64*/Linux* Profiling 选择按钮,然后确定记住:每个活动都有本人的运用/模块轮廓profilel 翻开运用程序: gzip.exel 命令行选项: -f testfile.datl 选中 Modify defau

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论