并行计算实验二报告.docx
- 文档编号:11788872
- 上传时间:2023-04-01
- 格式:DOCX
- 页数:17
- 大小:221.85KB
并行计算实验二报告.docx
《并行计算实验二报告.docx》由会员分享,可在线阅读,更多相关《并行计算实验二报告.docx(17页珍藏版)》请在冰豆网上搜索。
并行计算实验二报告
广东技术师范学院实验报告
学院:
计算机科学学院
专业:
计算机科学与技术
班级:
成绩:
姓名:
学号:
组别:
组员:
实验地点:
工业中心203
实验日期:
指导教师签名:
预习情况
操作情况
考勤情况
数据处理情况
实验
(二)项目名称:
并行程序设计
一、实验目的
在一个局域网中建立能够互相通信的两台计算机,实现两台计算机并行运算。
二、实验内容:
1.编写一个计算矩阵乘积的并行程序。
统计采用不同优化选项编译该程序生成的代码的运行时间,根据程序的计算量和运行时间计算出程序的实际浮点性能(以MFLOPS为单位)和效率(实际性能/处理器峰值性能),并将结果填写在下表中(根据需要加行)。
提示:
用“time程序名”可以得到程序的运行时间。
优化选项
运行时间/s
性能/MFLOPS
效率/%
减少矩阵初始化的循环次数
0.000978616
0.637
51.9
去掉不相关的输出
0.00102164
0.956
77.9
源程序代码:
#include"mpi.h"
#include
#include
#include
#include
constintN=10,M=10,H=10,P=10;
voidmain(intargc,char*argv[])
{
inti,j,k,t;
inta[N][M];//矩阵A
intb[M][P];//矩阵B
longintc[N][P];//结果矩阵
intArraySize[4];//矩阵的行数和列数
intmyid,rank,numprocs,namelen;
doublemypi,pi;
doublestartwtime,endwtime;
charprocessor_name[MPI_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(processor_name,&namelen);
ArraySize[0]=N;ArraySize[1]=M;ArraySize[2]=H;ArraySize[3]=P;
ofstreamsinput;
sinput.open("sinput.txt");//新建一个sinput.txt
//**************************************************************
//使用的代码
/*for(i=0;i { for(j=0;j { sinput< } } cout< cout< for(i=0;i { for(j=0;j { sinput< } } */ //************************************************************** cout<<"Process: "< "< if(myid==0) { t=10000; startwtime=MPI_Wtime(); } if(rank==0) { //****************************************************** ifstreamin("sinput.txt"); //cout<<"请输入矩阵a的行列数: \n行数: "; //cin>>ArraySize[0]; //ArraySize[0]=N; //cout<<"列数: "; //cin>>ArraySize[1]; //ArraySize[1]=M; //cout<<"请输入矩阵b的行列数: \n行数: "; //cin>>ArraySize[2]; //ArraySize[2]=H; //cout<<"列数: "; //cin>>ArraySize[3]; //ArraySize[3]=P; //********************************************** /*if(ArraySize[0]>N||ArraySize[1]>M) { cout<<"你输入的矩阵a过大! "; exit(0); } if(ArraySize[2]>M||ArraySize[3]>P) { cout<<"你输入的矩阵b过大! "; exit(0); } */ if(ArraySize[1]! =ArraySize[2]) { cout<<"你输入的两个矩阵不可以相乘! \n"; exit(0); } //***************************************** /*for(i=0;i { for(j=0;j { c[i][j]=0;//初始化矩阵c } } */ //******************************** srand((unsigned)time(NULL));//初始化随机数生成器 cout<<"随机生成a矩阵:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 并行 计算 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)