ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:221.77KB ,
资源ID:3168243      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3168243.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(并行计算实验二报告.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

并行计算实验二报告.docx

1、并行计算实验二报告广东技术师范学院实验报告学院:计算机科学学院专业:计算机科学与技术班级:成绩:姓名:学号:组别:组员:实验地点:工业中心203实验日期:指导教师签名:预习情况操作情况考勤情况数据处理情况实验 (二) 项目名称: 并行程序设计 一、实验目的在一个局域网中建立能够互相通信的两台计算机,实现两台计算机并行运算。二、实验内容:1编写一个计算矩阵乘积的并行程序。统计采用不同优化选项编译该程序生成的代码的运行时间,根据程序的计算量和运行时间计算出程序的实际浮点性能(以MFLOPS为单位)和效率(实际性能/处理器峰值性能),并将结果填写在下表中(根据需要加行)。提示:用“time程序名”可

2、以得到程序的运行时间。优化选项运行时间/s性能/MFLOPS效率/% 减少矩阵初始化的循环次数 0.000978616 0.637 51.9 去掉不相关的输出 0.00102164 0.956 77.9源程序代码:#include mpi.h#include #include#include #include const int N=10, M=10,H=10,P=10;void main(int argc, char *argv) int i, j, k, t ; int aNM; /矩阵A int bMP; /矩阵B long int cNP; /结果矩阵 int ArraySize4;

3、/矩阵的行数和列数 int myid, rank, numprocs, namelen; double mypi, pi; double startwtime, endwtime; char processor_nameMPI_MAX_PROCESSOR_NAME; MPI_Init(&argc, &argv); MPI_Comm_size(MPI_COMM_WORLD, &numprocs); MPI_Comm_rank(MPI_COMM_WORLD, &myid); MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Get_processor_name(p

4、rocessor_name, &namelen); ArraySize0=N;ArraySize1=M;ArraySize2=H;ArraySize3=P; ofstream sinput; sinput.open(sinput.txt); /新建一个sinput.txt /*/使用的代码/* for(i = 0; i ArraySize0; i+) for(j = 0; j ArraySize1; j+) sinput rand() % 100 ; coutendl; coutendl; for(i = 0; i ArraySize2; i+) for(j = 0; j ArraySize3

5、; j+) sinput rand() % 100 ; */* coutProcess:myid 主机名:processor_nameendl; if(myid = 0) t = 10000; startwtime = MPI_Wtime(); if(rank = 0) /* ifstream in(sinput.txt); / coutArraySize0; / ArraySize0=N; / coutArraySize1; / ArraySize1=M; / coutArraySize2; / ArraySize2=H; / coutArraySize3; / ArraySize3=P;

6、/* /* if(ArraySize0N|ArraySize1M) coutM|ArraySize3P) cout你输入的矩阵b过大!; exit(0); */ if(ArraySize1!=ArraySize2) cout你输入的两个矩阵不可以相乘!n; exit(0); /* /* for(i = 0; i ArraySize0; i+) for(j = 0; j ArraySize3; j+) cij=0; /初始化矩阵c */ /* srand(unsigned)time( NULL ); /初始化随机数生成器 cout随机生成a矩阵:ArraySize0行,ArraySize1列n;

7、 for(i = 0; i ArraySize0; i+) for(j = 0; j aij; aij=rand() % 100; / 是生成 0 到 100 之间的随机数,做矩阵a的元素 coutaij ; /输出矩阵a coutendl; /* cout随机生成b矩阵:ArraySize2行,ArraySize3列n; for(i = 0; i ArraySize2; i+) for(j = 0; j bij; bij=rand() % 100; / 生成 0 到 100 之间的随机数,做矩阵b的元素 coutbij ; /输出矩阵b coutendl; /* /i-j-k优化算法/* f

8、or(i = 0; i ArraySize0; i+) for(j = 0; j ArraySize3; j+=numprocs) /k+ for(k = 0; k ArraySize1; k+) cij = cij + aik * bkj; /计算 */ /* /* /j-k-i优化算法 for(j = 0; j ArraySize3; j+) for(k = 0; k ArraySize1; k+=numprocs) /k+ for(i = 0; i ArraySize0; i+) cij =0; cij = cij + aik * bkj; /计算 /* /对矩阵b转置可以节省存储空间/

9、* for(i=0;iNUM;i+) for(j=0;ji;j+) temp=Bij; Bij=Bji; Bji=temp; */ MPI_Reduce(&mypi, &pi, 1, MPI_DOUBLE, MPI_SUM, 0,MPI_COMM_WORLD); if(rank = 0) cout矩阵a与矩阵b的乘积为:ArraySize0行,ArraySize3列endl; if(numprocs - 1) for(i = 0; i ArraySize0; i+) for(j = 0; j ArraySize3; j+) cout2*cij ; coutendl; else for(i = 0; i ArraySize0; i+) for(j = 0; j ArraySize3; j+) coutcij ; coutendl; if(myid = 0) endwtime = MPI_Wtime(); cout程序运行时间为:; coutendwtime-startwtimeendl; MPI_Finalize();2改变上述并行程序中三重循环的顺序,统计不同循环顺序的运行时间,性能及效率,将结果填写在下表中

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1