《多核软件设计》实验手册_第1页
《多核软件设计》实验手册_第2页
《多核软件设计》实验手册_第3页
《多核软件设计》实验手册_第4页
《多核软件设计》实验手册_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

《多核软件设计》实验手册(年月版)郑重声明:、实验手册中的所有实验均有本人独立编码、调试和测试。、实验手册中给出的实验数据和结果完全由本人所完成的程序给出。、本人了解:不按照前两条要求所完成的实验报告已经构成了抄袭或造假行为,本人将承担相应的不良后果。姓名:(签名)学号: 班级: 提交日期: 成绩: #/23.多线程编程(分)在平台上用多线程方法实现浮点向量的点积计算:s=£ab。iii=0’1.0 (imod3=0)向量{}和{}的元素满足以下规则:a=b=1-1.0 (imod3=1)ii0 (imod3=2)程序的输入命令行:参数:线程数,从到:向量长度,不少于输出格式:)说明::点积计算结果:计算所需要时间(不包括向量初始化的时间),以毫秒为单位你所使用的软硬件平台(分)操作系统编译器型号核数主频版本优化参数,轴为,轴为为时的计算时间。(分)1、当不变,变化时,所用时间的折线图如下:

如果你的为多核处理器,你是否观察到计算加速了?(分)如果观察到计算加速的话,你的处理器核数是,图中为时,计算性能最好,其加速比是。(加速比多线程执行时间单线程执行时间)源代码<><><>;(*,*,){( ;<;){()[][]()[][][][]}}( ){

<<"请输入线程的个数(—):";>>;<<"请输入向量长度(不少于):";>>;(*)(()*());(*)(()*());(*)(()*());(*)(()*());*();;()();<;)()();<;)[]*[];({}<<"向量点积的结果是:"<<<<;();<<”所用的时间是”<<<>()*<<""<<;("");;}.矩阵乘法(分,和选做一题)在平台上实现单精度浮点的矩阵乘法:C=£a*B,(1<i,j<N)i,j i,kk,jk=1.【基准程序】输入矩阵,,由随机函数产生,使用串行程序产生正确结果该程序的执行时间为。.【多线程并行化】使用并行方法计算矩阵乘法结果。程序的输入命令行:参数:矩阵大小:线程个数输出格式:()说明::和串行结果的误差f=££।c—c01i,j i,ji=1j=1:程序执行所需要的时间,以毫秒为单位

计算结果和计算时间表并行矩阵乘法请根据上述实验结果,画出两个图。其中图的轴为,轴为为时的计算时间,图的轴为,轴为为时的计算时间。1、当不变变化时,所用时间的折线图如下:2、当不变,变化时,所用时间的折线图如下:30000002500000(gOOOOOO,§500000^000000500000图表二—~~<___♦一所用引时112 4 8ThreatLnum如果你的为多核处理器,你是否观察到计算加速了?如果观察到计算加速的话,你的处理器核数是,图中为时,计算性能最好,其加速比是。(加速比多线程执行时间单线程执行时间)源代码<><><><><>;**();**(){;){;();(<){[](*)(()*);(<){[][]()(*()());}**(****){**();(<){(<){[][];(<){[][][][]*[][];}}}****);(<){(<){([][][][]);}}^Tx^Tx^Tx^Tx^Tx.,,,;<<"请输入矩阵的大小:";>>;<<"请输入线程的个数:";>>;();();();;()()(){()(<){(<){[][];(<){[][][][]*[][];}}}}<<"误差是:"<<()<<;();;<<"时间是:"<<*<<""<<;}.【矩阵分块计算】每个浮点数占字节空间,容量是—,可以放置一个X的矩阵小块,其中。将整个矩阵分解为这样的小块,每次完成一对小块的计算,以提高的命中率。提示:(CC...C)「AA...A)「BB...B)11121n11121n11121nCC...CAA...A*BB...B21222n=21222n21222nCAB...ijijijCn1Cn2...CCnn^'n1An2...A,nn巴n1Bn2...B,nn图中计算次序为*,*,…,*,,由于反复使用,因此可以提高的命中率。设置为,为、、和,重复上述实验,填写下表。在最优的线程数下,调整的大小,重复上述实验,填写下表。表分块大小对性能的影响误差计算时间误差计算时间与理论最优值相比,分块大小最好的性能是。与表的结果相比,加速比可以达到。源代码<><><><><><>******}*;(*);****();****();();( ;; ;;;("矩阵大小:");("");*(**,**,);*(**,**,,);(**,**,**,(){;;;;** ;;** ;;

("线程数:");("");();();();();(,,,);();(*)(*);("浮点矩阵乘法用的总时间为:\",);(,,);("计算的误差为:\");();}**(**,**,,){;** ;;(*)(*(*));;[];;<;){[]()((*[]));TOC\o"1-5"\h\z[]> ;[]>[*];[]> ;[]> ;[]> ;(**)(*(*));( ;<;){[](*)(*());( ;<;){[][] ;}}}(}(}(;<;){;<;){([],);([],,,(*)[]);;<;){([],);}[]>;*(*){();******;( ; < ; ){( ; < ; ){(,,,,);}( ;<;){( ;<;){[][][][];[][] ;}}[];};}(**,****){(**,****){;;<;){( ;<;){( ;<;){[][][][]*[][];}}**(){**(**((**)(*(*));;<;){[](*)(*());( ;<;){[][]()(()());}**(){* (**)(*(*));( ;<;){[](*)(*());( ;<;){[][] ;}}}**(**,**){**;();}**(**,**){**;();;<( ;(;){

<;){<;){[][][][]*[][];}(**,**;){<;){

([][][][]);;}.【使用指令加速】使用指令可以一次完成个浮点乘法操作和加法操作,但是需要将存储器中的内容进行混洗。下图给出了*的矩阵乘法操作示意图。

四个向量交叉相乘结合上述矩阵分块策略,在最优的线程数下,最

温馨提示

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

评论

0/150

提交评论