- 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
- 2025届衡水市景县数学六上期末经典试题含解析.doc
- 2025届湖南省郴州市嘉禾县数学六上期末达标检测模拟试题含解析.doc
- 2025届湖北省黄冈市红安县六上数学期末调研模拟试题含解析.doc
- 2025届湖北省咸宁市咸安区六上数学期末调研模拟试题含解析.doc
- 2025届黄山市黟县数学六年级第一学期期末统考试题含解析.doc
- 2025届怀化市芷江侗族自治县数学六年级第一学期期末联考模拟试题含解析.doc
- 2025届吉安市泰和县数学六年级第一学期期末学业水平测试试题含解析.doc
- 2025届江苏省徐州新沂市六年级数学第一学期期末综合测试模拟试题含解析.doc
- 2025届湖南省长沙市芙蓉区数学六年级第一学期期末达标检测模拟试题含解析.doc
- 2025届湖北省武汉市江岸区一元路小学六上数学期末联考模拟试题含解析.doc
文档评论(0)