软件调优基础 2004 年 2 月 23 日. 为什么需要调优? 相同的代码 >> 不同的性能 SELFRELEASE OPT : 4 IMSLCXMLATLASMKL50MKL51 16.676s5.445s5.457s10.996s3.328s0.762s0.848s0.738s for(i=0;i<NUM;i++)

Slides:



Advertisements
Similar presentations
第十二章 常微分方程 返回. 一、主要内容 基本概念 一阶方程 类 型 1. 直接积分法 2. 可分离变量 3. 齐次方程 4. 可化为齐次 方程 5. 全微分方程 6. 线性方程 类 型 1. 直接积分法 2. 可分离变量 3. 齐次方程 4. 可化为齐次 方程 5. 全微分方程 6. 线性方程.
Advertisements

Software Engineering 2007/2008 Chapter 2 Modeling the Process and Life Cycle.
2011 年 2 月 产品介绍. 产品介绍 产品目标 产品目标 系统功能特性 系统功能特性 技术特点 技术特点 部署方式 部署方式.
计算机 在分析化学的应用 ( 简介 ) 陈辉宏. 一. 概述 信息时代的来临, 各门学科的研究方法都 有了新的发展. 计算机的介入, 为分析化学的进展提供了 一种更方便的研究方法.
Linux 下驱动程序简介 —USB 摄像头 CWY-CTS-SA117L 袁师盛 柴佳杰 孙融 王磊.
编译程序 构造原理和实现技术 授课教师:吕江花. 第一章 编译程序概述 主要内容: 几个基本概念 编译器的工作过程概述 编译器各个阶段的功能描述 编译程序的实现途径.
嵌入式操作系统 陈香兰 Fall 系统调用 10/27/09 嵌入式 OS 3/12 系统调用的意义  操作系统为用户态进程与硬件设备进行交互提供 了一组接口 —— 系统调用  把用户从底层的硬件编程中解放出来  极大的提高了系统的安全性  使用户程序具有可移植性.
地理信息系统概述. 数据和信息 (Data & Information) 数据 原始事实 如:员工姓名, 数据可以有数值、图形、声音、视觉数据等 信息 以一定规则组织在一起的事实的集合。
Lecturer: Mu Lingling (穆玲玲)
1 为了更好的揭示随机现象的规律性并 利用数学工具描述其规律, 有必要引入随 机变量来描述随机试验的不同结果 例 电话总机某段时间内接到的电话次数, 可用一个变量 X 来描述 例 检测一件产品可能出现的两个结果, 也可以用一个变量来描述 第五章 随机变量及其分布函数.
什么是 MPI? MPI(Message Passing Interface ) MPI 是一个库,而不是一门语言; MPI 是一个库,而不是一门语言; MPI 是一种标准或规范的代表,而不特 指某一个对它的具体实现; MPI 是一种标准或规范的代表,而不特 指某一个对它的具体实现; MPI 是一种消息传递编程模型,并成为.
Harris Spring 2005 讲座一 “ERP 与企业流程再造 ” 东南大学 自控系 赵霁教授 电话: 一 ERP 是什么? 二企业为什么要引入 ERP 系统? 三企业管理软件的发展与 ERP 的创新之处 四 ERP 与流程再造的关系。 五 企业流程再造规划分析。
C 语言程序设计 2008 版. C 语言程序设计 教学要求  掌握程序设计语言的基本知识  常用算法  初步的程序设计能力 学习方法  自主学习  重视上机实践.
模拟电子技术 模拟电子技术实验 主 编 李 林 副主编 沈明霞 刘德营 陆静霞 参 编 黄桂林 杨红兵 邹修国 徐 友 邹春富 主 审 尹文庆.
第十一章 曲线回归 第一节 曲线的类型与特点 第二节 曲线方程的配置 第三节 多项式回归.
协同工作环境研究中心 协同共享 助力科研. 主要内容  认识协同及协同软件  协同科研软件 duckling 介绍.
线性代数习题课 吉林大学 术洪亮 第一讲 行 列 式 前面我们已经学习了关 于行列式的概念和一些基本 理论,其主要内容可概括为:
兰州理工大学 1 第九章 CAD/CAM 系统集成 9.1 概述 9.2 3C 内部集成存在的问题和解决的办法 9.3 CAD/CAM 集成方法 9.4 3C/PDM 集成方法 9.5CIM 与 CIMS.
安全操作系统 中国科学技术大学计算机系 陈香兰( 0512 - ) 助教:裴建国 Autumn 2008.
第 4 章 过程与变量的作用范围. 4.1 Visual Basic 的代码模块 Visual Basic 的应用程序是由过程组成的, 过程代码存放在模块中。 Visual Basic 提供了 三类模块,它们是窗体模块、标准模块和类 模块。 窗体模块 窗体模块是大多数 Visual Basic.
数据库与智能网络研究室. © htttp://dbin.jlu.edu.cn 数据库系统原理复习大纲.
大亚湾 PMT 读出电子学介绍 王铮 中科院 “ 核探测技术与核电子学重点实验室 ” 年会.
C语言程序设计 第一章 C语言概述.
外文文献检索示例. 实验目的: 掌握利用计算机网络检索外文文献的基本方法; 了解熟悉下列数据库的结构、内容并掌握其检索方 法 ; 掌握检索的主要途径:出版物( Publication )、关键 词( Keyword )、作者( Author )等。
OS 进程调度模拟演示 制作人: 钱晶 高上上. OS 进程调度模拟-实验原理 静态优先级原理 在这种方式下,系统一旦把处理机分配给就绪队 列中的优先权最高的进程后,该进程便一直执行下去, 直至完成。或因为发生某事件使该进程放弃处理机,系 统方可再将处理机分配给另一优先级最高的进程。这些 事件包括有优先级更高的进程进入,或是因为某些原因.
信息利用与学术论文写作 Library of Jiangsu University, Zhenjiang Sha Zhenjiang
操作系统原理课程设计指南 姜海燕 设计考核幻灯制作  1.1 封皮:系统名称,研制人员  1.2 目的及意义  1.3 功能设计:功能框图、用例图  1.4 结构设计:系统结构  1.5 核心技术及技术路线:画图  1.6 进度安排  1.7 人员安排  1.8.
UML 对象设计与编程 主 讲 : 董兰芳 副教授 Dept. of Computer Science,USTC
主讲教师:陈殿友 总课时: 124 第十一讲 极限的运算法则. 第一章 二、 极限的四则运算法则 三、 复合函数的极限运算法则 一 、无穷小运算法则 机动 目录 上页 下页 返回 结束 §5 极限运算法则.
第二章 通信技术基础 谈英姿 东南大学自控系工业自动化教研室. 通信技术基础 2.1 通信的基本概念 2.2 通信协议与网络层次分析 2.3 常用串行通信技术.
第 3 章 控制流分析 内容概述 – 定义一个函数式编程语言,变量可以指称函数 – 以 dynamic dispatch problem 为例(作为参数的 函数被调用时,究竟执行的是哪个函数) – 规范该控制流分析问题,定义什么是可接受的控 制流分析 – 定义可接受分析在语义模型上的可靠性 – 讨论分析算法.
国家高性能计算中心(合肥) 十五 并行程序设计环境与工具. 国家高性能计算中心(合肥) 并行程序设计环境与工具  15.1 软件工具与环境  15.2 并行编译器  15.3 并行程序调试  15.4 并行程序性能分析  15.5 图形化并行程序集成开发环境.
编译原理总结. 基本概念  编译器 、解释器  编译过程 、各过程的功能  编译器在程序执行过程中的作用  编译器的实现途径.
信息科学部 “ 十一五 ” 计划期间 优先资助领域 信息科学部 秦玉文 2006 年 2 月 24 日.
 符号表  标识符的作用: 声明部分:定义了各种对象及对应的属性和 使用规则。 程序体:对所定义的对象进行各种操作。 $ididname IdnameAttributeIR  必要性 Token : 新表-符号表(种类、类型等信息):
习题课( 1 ) 进程管理及调度. 复习 进程概念、描述及状态 进程概念、描述及状态 进程的同步与互斥及应用 进程的同步与互斥及应用 管程机制 管程机制 进程通信 进程通信 进程调度算法 进程调度算法 进程死锁 进程死锁 线程 线程.
管理信息系统 信息管理学院 2011 年 ( Management Information system )
Department of Mathematics 第二章 解析函数 第一节 解析函数的概念 与 C-R 条件 第二节 初等解析函数 第三节 初等多值函数.
1 第 7 章 存储过程、触发器和程序包 在很多时候,都需要保存 PL/SQL 程序块,以便 随后可以重新使用。这也意味着,程序块需要一个名 称,这样需才可以调用或者引用它。命名的 PL/SQL 程序块可被独立编译并存储在数据库中,任何与数据 库相连接的应用程序都可以访问这些存储的 PL/SQL 程序块。
Meeting Agenda (1)Overview (2)Current Progress (3)Future Plans 1.
《 UML 分析与设计》 交互概述图 授课人:唐一韬. 知 识 图 谱知 识 图 谱知 识 图 谱知 识 图 谱.
College of Computer and Information Science Chapter 14 Programming and Languages.
ATLAS computing status in IHEP Erming Pei, CC-IHEP Yangzhou, May 15’ th 2009.
刘相兵 (Maclean Liu) 介绍 dbms_registry PL/SQL 程序包.
College of Computer and Information Science Chapter 14 Programming and Languages.
1 、如果 x + 5 > 4 ,那么两边都 可得 x >- 1 2 、在- 3y >- 4 的两边都乘以 7 可得 3 、在不等式 — x≤5 的两边都乘以- 1 可得 4 、将- 7x — 6 < 8 移项可得 。 5 、将 5 + a >- 2 a 移项可得 。 6 、将- 8x < 0.
Chapter 3 Programming Languages Unit 1 The Development of Programming Languages.
项目七: PLC 功能指令应用 带进位循环左移指令 XXXXX. 项目七: PLC 功能指令应用 FX2 系列可编程控制器移位控制指令有移位、循环移位、字移位 及先进先出 FIFO 指令等 10 条指令。 带进位循环右移指令 RCR 带进位循环左移指令 RCL 字右移位指令 WSFR 先入先出读出指令.
第四章 计算机数控( CNC )系统  本章重点:  1 计算机数控系统构成及其结构特点  2 运动轨迹插补原理  3 刀具补偿.
§10.2 对偶空间 一、对偶空间与对偶基 二、对偶空间的有关结果 三、例题讲析.
SIMCOM EAT.
项目 1 典型低压电器 的拆装、检修及调试 任务 2 交流接触器的拆装与检修 接触器是一种自动的电磁式自动开关,是 一种依靠电磁力作用使触点闭合或分离的自 动电器,用于接通和断开电动机或其它用电 设备电路。适用于远距离频繁地接通或断开 交直流主电路及大容量控制电路。交流接触 器具有控制容量大、操作方便、便于远距离.
算得清写的准 —— 物业费公示报告的编写 讲师:朱芸 物业费的 构成? 哪些是管 理人员工 资呢? 哪些算工程费 用? 怎样才能核 算的清楚呢?
荆门市总工会会员信息采集系统 操作培训 融建信息技术有限公司 肖移海 QQ群号:
逻辑设计基础 1 第 7 章 多级与(或)非门电路 逻辑设计基础 多级门电路.
“ 百链 ” 云图书馆. 什么是百链云图书馆?1 百链云图书馆的实际效果?2 百链云图书馆的实现原理?3 百链云图书馆的价值?44 图书馆要做什么?55 提 纲.
无忧 PPT 整理发布 无忧 PPT 整理发布 网上教研活动的推进与 学习社区的构建 首都师范大学 蒋国珍 2008 年 12 月.
目录 ontents Related 案例三:研究中的教师专业发展 背 景英特尔 ® 未来教育基础课程理念向教师教 学能力迁移的实践研究 时 间 2011 年 10 月至现在 学 校吉林省东丰县第四中学 研究内容初中语文叙事性散文教学中提问策略的 研究 技术条件网络环境 (网络课程、 QQ 、视频会议、
参考文献管理软件. 常见参考文献管理软件 : 中文 : CNKI E-learning (目前免费) NoteExpress NoteFirst 英文: Refworks Endnote (网络版免费) Mendeley……
森林保护学本科系列课程 教学改革与实践 西北农林科技大学 一、基本情况 二、主要成果 三、创新点 四、成果的应用 项目研究背景 项目的总体设计 成果简介 解决的主要教学问题 解决教学问题的方法 改革前后的对比.
院长助理 教务处长 李学锋 教授 2008 年 9 月 9 日 基于工作过程的系统化高职课程建设.
1. 利用图形化开发环境 LabVIEW 对 Xilinx Spartan3E 进行编程 汤敏 NI 高校市场部.
U niversity of S cience and T echnology of C hina VxWorks 及其应用开发 陈香兰 年 7 月.
1 Model Checking E. M. Clarke, O. Grumberg, D. A. Peled.
Linux c/c++ 测试工具 梁剑钊 UED Team Design. 大纲  单元测试框架  mock  构建 / 管理工具  冒烟测试服务器  静态代码检查工具  代码复杂度和代码行数统计  调用栈工具  性能分析工具  内存检测工具  IO 测试工具  网络监控工具.
人力资源和社会保障部职业能力建设司. » 《一体化课程开发技术规程》编写综述 » 《一体化课程开发技术规程》内容解读 » 《一体化课程开发技术规程》使用建议.
Software Engineering 2007/2008 Chapter 9 Testing the System.
SCI 数据库检索练习参考 本练习完全依照 SCI 数据库实际检索过程而 实现。 本练习完全依照 SCI 数据库实际检索过程而 实现。 练习中,选择了可以举一反三的题目,读 者可以根据题目进行另外的检索练习,如: 可将 “ 与 ” 运算检索改为 “ 或 ” 、 “ 非 ” 运算检索 等等。 练习中,选择了可以举一反三的题目,读.
§7.2 估计量的评价标准 上一节我们看到,对于总体 X 的同一个 未知参数,由于采用的估计方法不同,可 能会产生多个不同的估计量.这就提出一 个问题,当总体的一个参数存在不同的估 计量时,究竟采用哪一个好呢?或者说怎 样评价一个估计量的统计性能呢?下面给 出几个常用的评价准则. 一.无偏性.
SME.USTB Human Factors 人机工程学 By Wei Dong Department of Industry Design, SME, USTB.
Presentation transcript:

软件调优基础 2004 年 2 月 23 日

为什么需要调优? 相同的代码 >> 不同的性能 SELFRELEASE OPT : 4 IMSLCXMLATLASMKL50MKL s5.445s5.457s10.996s3.328s0.762s0.848s0.738s for(i=0;i<NUM;i++) { for(j=0;j<NUM;j++) { for(k=0;k<NUM;k++) { c[i][j] =c[i][j] + a[i][k] * b[k][j]; } for(i=0;i<NUM;i++) { for(k=0;k<NUM;k++) { for(j=0;j<NUM;j++) { c[i][j] =c[i][j] + a[i][k] * b[k][j]; }

目标  明确性能调优的主要任务  定义一些重要的性能调优术语  利用 Intel 工具提供帮助

Agenda

调优循环 分析数据并得出结 论 测试结果 修改代码实现优 化 确定修改方法来 解决问题 从这里开始 收集性能数据

When (why) to Start  User Requirement?  Software Vendor Requirement?  Put Performance Requirement into the Requirements Document  Performance should be considered at every stage of the product life cycle (Requirements Gathering, Design, and Testing)  Exception: Do “code tuning” after the simple/readable non-optimized version of the application exists.

工作 vs. 效果

When to Stop  Architecture is at Maximum Efficiency? Be sure you know what this is: Calculate Theoretical Maximum Be sure you know what this is: Calculate Theoretical Maximum  Performance Requirement is satisfied Incrementally do Wide Mesh Optimizations 2 until done Incrementally do Wide Mesh Optimizations 2 until done

调优原则 We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Donald Knuth Quality Code is: – Portable – Readable – Maintainable – Reliable Intelligently Sacrifice Quality for Performance

Agenda

收集性能数据  Timer  Use to get wall clock time  Accuracy, Low Overhead  Use Intel ® VTune™ Performance Analyzer  Profiler: Gather Information about Code Usage  Performance Monitor: Gather Information about System Resource Usage

工作量  A good workload should have these characteristics:  measurable  reproducible  static  representative

分析数据得出结论  Baseline Current Performance  Examine Hot Spots  Identify Bottlenecks  Calculate Potential Maximum Performance

Examine Hot Spots Examine Hot Spots  The Pareto Principle, a.k.a. the 80/20 Rule  Concentrate on the vital few vs. the trivial many  Hot Spot: 应用或系统中占主要运算量的部分  Generally consists of a Loop  For Applications that don’t have hot spots, examine:  Memory Layout  Exceptions  Effective Compiler Usage

额外内容  Big O  Utilization, Efficiency, Throughput, Latency  Bottlenecks  I/O, Memory, CPU  MIPS/FLOPS/CPI  Concurrency, Parallelism  Scalability  Loads/Stores per Calculation

Agenda

优化设计层次  问题定义  系统结构  算法和数据结构  代码调优  系统软件  系统硬件

代码调优  汇编指令级  内部函数  C++ 向量类库  多线程  循环转化  编译器及参数  性能库 Hardest to develop and maintain Easiest to develop, port and maintain Hardest to develop and maintain Easiest to develop, port and maintain

Code Tuning  If Parallel Processing  Break Algorithm up across Clusters (Distributed Memory)  Single Node Optimization  Break Algorithm up across Processors (SMP)

修改代码实现优化  Use Intel® Libraries  Use Various Compiler Switches  Find out if the compiler or hardware does the enhancements automatically - before implementing yourself  Modify Source (i.e. Loop Transformations, SWP, SIMD, OpenMP, Intrinsics, Assembly)

Test!  Make sure Applications still runs correctly (Regression Testing)  Make sure enhancement actually increases performance  Calculate Speed-up  Decide if you’re done optimizing

Speed-Up Speed-Up = Optimized Time Baseline Time Speed-Up =Optimized Throughput Baseline Throughput The Two Basic Formulas

Summary  Optimization Tasks  Gather Performance Data  Analyze Data & Identify Issues  Generate Alternatives to Resolve Issue  Implement Enhancements  Test Results  Use Intel® Software Development Tools for every step in the process