- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE
PAGE 2
广东技术师范学院实验报告
学院:
计算机科学学院
专业:
计算机科学与技术
班级:
成绩:
姓名:
学号:
组别:
组员:
实验地点:
工业中心203
实验日期:
指导教师签名:
预习情况
操作情况
考勤情况
数据处理情况
实验 (四) 项目名称: 并行程序设计(3)
一、实验目的
在一个局域网中建立能够互相通信的两台计算机,实现两台计算机并行运算。
二、实验内容:
要求:修改代码cpi.c,将任务分配改为按块分配:假设共有P个进程,将n个计算间顺序分成P块,每个进程负责一块的计算,注意当n不是P的倍数时应该尽量保持负载平衡。程序代码cpi.c参考如下:
?
#include mpi.h
#include stdio.h
double f( double a ) { return (4.0 / (1.0 + a*a)); }
?
int main( int argc, char *argv[])
{
int n, myid, numprocs, i, namelen;
double PI25DT = 3.141592653589793238462643;
double mypi, pi, h, sum, x;
double startwtime, endwtime;
char processor_name[MPI_MAX_PROCESSOR_NAME];
?
MPI_Init(argc,argv);
MPI_Comm_size(MPI_COMM_WORLD,numprocs);
MPI_Comm_rank(MPI_COMM_WORLD,myid);
MPI_Get_processor_name(processor_name,namelen);
fprintf(stderr,Process %d on %s, myid, processor_name);
if (myid == 0) {
n=10000;
startwtime = MPI_Wtime();
}
MPI_Bcast(n, 1, MPI_INT, 0, MPI_COMM_WORLD);
h = 1.0 / (double) n;
sum = 0.0;
for (i = myid; i n; i += numprocs) {
x = h * ((double)i + 0.5);
sum += f(x);
}
mypi = h * sum;
MPI_Reduce(mypi, pi, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
if (myid == 0) {
endwtime = MPI_Wtime();
printf(pi is approximately %.16f, error is %.16f, pi, pi - PI25DT);
printf(wall clock time = %f, endwtime-startwtime);
}
MPI_Finalize();
return 0;
}
实验源程序代码:
#include mpi.h
#include stdio.h
#include iostream.h
#include fstream.h
void main(int argc, char *argv[])
{
int rank, size;
const int MAXX = 40;
const int MAXY = 40;
const int MAXPROCESSOR = 64;
float Data[MAXY][MAXY];
int ArraySize[2];
int i, j, k;
double startwtime, endwtime;
int namelen;
char processor_name[MPI_MAX_PROCESSOR_NAME];
MPI_Status Status;
MPI_Init(argc, argv);
MPI_Comm_rank(MPI_COMM_WORLD, rank);
MPI_Comm_size(MPI_COMM_WORLD, size);
MPI_Get_processor_name(processor_name, namelen);
cout线程在运行主机processor_nameendl;
if(rank == 0)
{
您可能关注的文档
- 29基于PCL的点云平面分割拟合算法技术路线(针对有噪声的点云数据).pdf
- 可爱的中国教案全册 .doc
- 人教版七年级数学上册《正数和负数》课件(共23张PPT).ppt
- 冠脉CTA检查完整版.pptx
- 关于游戏的调查报告1.doc
- 《道德与法治》八年级上册4.2《以礼待人》.ppt
- 湿敏传感器实验.doc
- 减肥调研报告.doc
- 实验八巨噬细胞吞噬现象的观察.doc
- 数据库软件调研报告.doc
- 英语人教PEP版八年级(上册)Unit4+writing+写作.pptx
- 人美版美术四年级(上册)8 笔的世界 课件 (1).pptx
- 人美版美术七年级(上册)龙的制作.pptx
- 英语人教PEP版六年级(上册)Unit 2 第一课时.pptx
- 数学苏教版三年级(上册)3.3 长方形和正方形周长的计算 苏教版(共12张PPT).pptx
- 音乐人教版八年级(上册)青春舞曲 课件2.pptx
- 音乐人教版四年级(上册) 第一单元 音乐知识 附点四分音符|人教版.pptx
- 英语人教PEP版四年级(上册)Unit 6 Part B let's learn 1.pptx
- 道德与法治人教版二年级(上册)课件-3.11大家排好队部编版(共18张PPT).pptx
- 人美版美术七年级(上册)《黄山天下奇》课件1.pptx
文档评论(0)