![并行程序优化面面观2016-1-21.ppt_第1页](http://file1.renrendoc.com/fileroot_temp2/2020-3/22/fb607020-44bd-4243-b266-fb3f4d668991/fb607020-44bd-4243-b266-fb3f4d6689911.gif)
![并行程序优化面面观2016-1-21.ppt_第2页](http://file1.renrendoc.com/fileroot_temp2/2020-3/22/fb607020-44bd-4243-b266-fb3f4d668991/fb607020-44bd-4243-b266-fb3f4d6689912.gif)
![并行程序优化面面观2016-1-21.ppt_第3页](http://file1.renrendoc.com/fileroot_temp2/2020-3/22/fb607020-44bd-4243-b266-fb3f4d668991/fb607020-44bd-4243-b266-fb3f4d6689913.gif)
![并行程序优化面面观2016-1-21.ppt_第4页](http://file1.renrendoc.com/fileroot_temp2/2020-3/22/fb607020-44bd-4243-b266-fb3f4d668991/fb607020-44bd-4243-b266-fb3f4d6689914.gif)
![并行程序优化面面观2016-1-21.ppt_第5页](http://file1.renrendoc.com/fileroot_temp2/2020-3/22/fb607020-44bd-4243-b266-fb3f4d668991/fb607020-44bd-4243-b266-fb3f4d6689915.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、综合观并行程序优化,叶,关,中山大学计算科学广东重点实验室,执行摘要,影响并行程序运行速度的N种加速程序运行方式,程序优化方法及实例,影响并行程序运行速度的N种方式,硬件性能CPU,加速器内存速度和容量I/O和网络算法性能,计算复杂性,通信复杂性,并发性等支持环境,如操作系统,MPI软件包,数学库, 编译器等程序,后摩尔定理时代处理器的发展趋势:多核和众核及其对程序运行的影响,一个芯片上有多个处理核,每个核有一个独立的计算单元,缓存多核处理器:每个核是一个完整的中央处理器多核处理器:每个核主要是算术逻辑单元,控制电路与矢量处理单元共享。 多个内核共享同一个内存,为了抢占内存,网络资源存在严重的
2、资源竞争。网络控制器和带宽负载平衡需要更多内核!=运行速度越快,问:什么程序不能加速?问:你能在不改变代码的情况下加速程序吗?常见问题,加速程序运行的方法1,根据“运行特性”选择硬件的哪些特性?一、Inspur公司的分析特点、加速程序运行的方法2、根据“运行特点”选择硬件的哪些特点?如何得到它?性能监控任务管理器,gproftau vtune valgrind vampir,param on,valgrind massif,方法3加速程序运行,方法4根据“运行特性”选择硬件并根据算法建立硬件高性能序列,比较中国科学院专用机(FPGA),根据“运行特性”选择硬件并选择合适的支持环境编译器,编译参
3、数数学库、MPI库和操作参数OS裁剪修改算法,修改程序以获得“热点”(运行时间最长的代码段),使用gprof,tau,热点分析(Vtune)的结果、程序优化的方法和示例编译器的选择,有哪些可用的编译器?gcc (GNU C编译器套件)开源ICC(英特尔C编译器)商用PGI商用Open64开源GCC通用编译参数优化级处理器模型特殊要求-O3 March=native-flto-March=native-msse 2-FTR EE-Loop-Linear-FTree-矢量化-FORCE-Addr-MFP Math=SSE,练习1:简单矩阵乘法,给定两个稠密的N阶方阵A和B,求C=A*B,请使用C语
4、言,请使用GCC编译器用不同的参数编译,并在单个中运行比较运行时间参数1: gcc matrixm.c-o matrixm参数2: gcc matrixm.c-O3 matrixmo3参数3:gcc matrixm . c-O3-March=core 2 matrix mo3m,N=16384。算法伪代码、程序优化方法和实例削弱了内存墙的影响,内存墙是指内存性能严重限制了CPU性能的现象。(百度)中央处理器比内存快得多。如果内存速度和中央处理器一样,那就太贵了,功耗也太高了。在多核一代中,“假共享”CPU“停机”内存的性能指标主要包括“带宽”和“延迟”。如何削弱内存墙对网络性能指标的影响?合并
5、内存访问、程序优化方法和示例以削弱内存墙的影响,Mike Giles教授,Cuda讲座,牛津大学,练习2:块矩阵乘法,给定两个密集的N阶正方形A,B,C=A*B,请使用C语言,请使用gcc编译器用不同的参数编译,并在单个进程中运行。与练习1相比,运行时间参数1: gcc matrixm.c-o matrixm参数2:gcc matrix m . c-O3 matrix m . c-O3参数3:gcc matrix m . c-O3-March=core 2 matrix mo3m,N=16384,每个块的大小为32*32。程序优化方法和示例矢量化(SIMD),SIMD,SSE/SSE 2真实S
6、IMD问题工具箱解决方案英特尔2001,程序优化方法和示例矢量化(SIMD)1,为什么要矢量化?后摩尔定律时代提高处理器性能的主要途径:多核矢量化英特尔中央处理器最重要的计算能力来自矢量化技术的实现:上交所、AVX、图形处理器.算法并发性决定了程序矢量化的性能。性能=负载/(负载空闲)具有高并发性和较少的空闲,程序优化方法和示例矢量化(SIMD)2。例如:给定一个N*N的二进制矩阵a,以子矩阵a1:n-1和1:n-1的每个元素为中心,将九个正方形的元素相加。程序优化方法和示例矢量化(SIMD)3,串行简单算法SIMD算法一次计算几个九个正方形,并使用一个32位整数来表示同一行中的32个正方形。
7、首先,根据列将列求和的结果分成四组,然后对列求和的结果进行移位和求和。算法细节作为练习3供大家练习。练习3:对九个正方形的和进行矢量化,给出一个N*N的二进制矩阵,并以子矩阵A1:N-1和1:N-1的每个元素为中心,找出九个正方形的元素和矩阵B。请用C语言实现一个32位并行算法。使用gcc编译器用不同的参数进行编译,在单个进程中运行,并比较运行时间参数1: gcc matrixm.c-o matrixm参数2:gcc matrix m . c-O3 matrix m 3参数3:gcc matrix m . c-O3-March=core 2 matrix mo3m,N=100000,a的初始值随机生成。程序优化方法和示例矢量化(SIMD)4、矢量化效率高,应选择数据结构,程序优化方法和示例矢量化(SIMD)5、自动矢量求和由编译器实现,串行数据依赖性小。例如,下面的代码依赖于数据,不能自动向
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房地产开发合伙协议书范本
- 如何选择抗心律失常药物提高ICD抗室心律失常效果
- 护理学第三章预防与控制医院感染
- 道路应急抢修抢建技术规范(征求意见稿)
- 坠积性肺炎的预防护理
- 系统工程完整版汪应洛主编课后题答案
- 位置和坐标培优试题(经典)
- 电力保护设备项目效益评估报告
- 照明控制项目效益评估报告
- 环境因素参与调节植物生命活动同步分层练习-2023-2024学年高二上学期生物人教版(2019)选择性必修1
- 2023年浙江省烟草专卖局(公司)招聘考试真题试卷及答案
- GB/T 43641-2024生物学全同胞关系鉴定技术规范
- 和声智慧树知到期末考试答案2024年
- 重庆市九龙坡区2021-2022学年七下期末数学试题(原卷版)
- 工程伦理-工程案例分析
- 2024-2029年中国农业投资行业发展前景及发展策略与投资风险研究报告
- 2024年注册消防工程师题库附完整答案【全优】
- 煤矿瓦斯重大灾害预警系统
- 改善就医感受提升患者体验主题活动工作总结
- 苏教版全册六年级数学下册教学反思
- 2023南京中考物理试卷与答案
评论
0/150
提交评论