- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
多核实验IntelParallelStudioXE综合应用
实验五 Intel Parallel Studio XE 综合应用
一、实验目的
1、掌握Introduction to Guided Auto-parallelization功能、特点和基本使用方法;
2、掌握使用OpenMPIntel Parallel Studio工具将串行程序转换为并行程序的方法
二、预备知识
掌握C/C++语言
掌握Intel Parallel Studio XE环境的使用
掌握使用Parallel Advisor
掌握Intel Parallel Studio XE和Microsoft Visual Studio 2005使用方法
三、实验条件
硬件
Intel多核处理器
大于1G内存
大于20G硬盘
软件
Intel Parallel Studio XE 2011
熟练掌握C/C++语言
掌握Microsoft Visual Studio 2005的开发环境使用;
性能优化和给予多核编程的基本概念;
四、实验步骤和结果
根据Guided Auto-parallelization给出的建议来进行程序代码的修改,给出修改代码片段以及结果。
Guided Auto-parallelization主要功能:引导自动并行化(GAP),是英特尔?C++编译器提供一个功能,并在正确应用时,自动矢量化或自动并行化串行代码。编译器的属性应使用选项/ O2或更高/ Qguide选项,以使GAP的技术来自动生成矢量化的程序。同时,可结合/ Qparallel和/ Qguide选项来使编译器自动并行化程序。
根据上面给出的提示,修改代码,让编译器自动并行化程序。
代码
运行结果
使用ippcompress压缩文件的几种不同算法,并比较压缩效果。并对比gzip和ipp的gzip的压缩时间。
数据压缩算法有:Burrows-Wheeler Transform (BWT), Move-To-Front Transform (MTF),,运行长度编码(RLE),Huffman编码,广义区间变换(GIT)和基于字典的Lempel-Ziv-Storer-Szimanskiy(LZSS)压缩方法。
1、ippcompress? -huffman -5? omg.txt omg.bf?
2、ippcompress? -bwt? -5 omg.txt?omg.bwt
3、ippcompress? -gzip? -6 omg.txt omg.gz
实验结果分析: 用-huffman压缩方法的效果相对比较差;用-bwt和-gzip压缩效果都较-huffman好,效果接近。
使用intel提供的MKL来进行矩阵求解。运行求解PI的计算程序pimonte.c和使用了MKL的矢量统计库VSL的程序pimonte_VSL.c,比较计算时间,并体会VSL的多线程能力。
设置编译器支持MKL
然后使用intel c++编译器进行编译:
使用intel提供的MKL来进行矩阵运算:
LAPACKE_sgels( LAPACK_ROW_MAJOR, N, m, n, nrhs, a, lda,b, ldb )
识别matrix中的硬件性能瓶颈问题,然后使用不同的multiply方法进行计算,同时分析程序中的热点问题以及分析报告中的一些参数指标的变化。
matrix程序有以下的问题
这是一些参数指标:
CPI (Clockticks per Instructions Retired) Rate
Retire Stalls
LLC Miss
LLC Load Misses Serviced by Remote DRAM
Execution Stalls
Data Sharing
识别硬件问题
CPI Rate: 潜在原因是内存的延迟,指令饥饿、分支的错误预测,或长时间的延迟指令。定义你的代码的原因,探索其他度量的自下而上的窗口。
用multiply1函数
改进算法: 用multiply2函数替换multiply1函数
实验结果分析: 算法替换以后执行时间缩短了,CPI rate下降了,执行效率有所提升。
五、实验小结
这次试验使我学会了根据Guided Auto-parallelization给出的建议来进行程序代码的修改,并行优化程序。了解了使用ippcompress压缩文件的几种不同算法,试验中通过并比较压缩效果判比他们各自的优劣,并对比了gzip和ipp的gzip的压缩时间。对 Math Kernel Library有了初步认识,会使用其中的函数进行各种矩阵运算。学会了使用基于事件采样分析的工具Intel? VTune? Amplifier XE来识别会影响程序性能的主要的硬件问题.实验使我们对于intel的多核技术应用最新成果
原创力文档


文档评论(0)