- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
一、实验目的及要求
熟悉MPI编程环境,掌握MPI编程根本函数及MPI的相关通信函数用法,掌握MPI的主从模式及对等模式编程;
熟悉OpenMP编程环境,初步掌握基于OpenMP的多线程应用程序开发,掌握OpenMP相关函数以及数据作用域机制、多线程同步机制等。
二、实验设备〔环境〕及要求
MicrosoftVisualStudio.net2005
MPICH2
Windows732位
IntelCore2DuoT55501.83GHz双核CPU
2GB内存
三、实验内容与步骤
配置实验环境
处下载MPICH2,并安装。
将安装目录中的bin目录添加到系统环境变量path中。
以管理员身份运行cmd.exe,输入命令smpd-install-phrase***。***为安装时提示输入的passphrase。
运行wmpiregister.exe,输入具有系统管理员权限的用户名及密码,进行注册。
配置vs2005,参加MPICH2的包含文件,引用文件和库文件,如下列图。
配置工程属性,添加附加依赖项mpi.lib,如下列图。
VS2005支持OpenMP,只需在工程属性中做如下配置。
编写MPI程序
题目:一个小规模的学校想给每一个学生一个唯一的证件号。管理部门想使用6位数字,但不确定是否够用,一个“可接受的”证件号是有一些限制的。编写一个并行计算程序来计算不同的六位数的个数〔由0-9组合的数〕,要求满足以下限制:
第一个数字不能为0;
两个连续位上的数字不能相同;
各个数字之和不能为7、11、13
代码如下。
#includempi.h
#includestdio.h
#includemath.h
#defineNUM6
#defineMAX999999
#defineMIN100000
intcheck(intn)
{
inti,x,y,sum;
if(nMIN)
{
return-1;
}
sum=0;
for(i=1;iNUM;i++)
{
x=(n%(int)pow(10,i))/(int)pow(10,i-1);
y=(n%(int)pow(10,i+1))/(int)pow(10,i);
if(x==y)
{
return-1;
}
sum=sum+x+y;
}
if(sum==7||sum==11||sum==13)
{
return-1;
}
return0;
}
voidmain(intargc,char**argv)
{
intmyid,numprocs,namelen;
charprocessor_name[MPI_MAX_PROCESSOR_NAME];
MPI_Statusstatus;
doublestartTime,endTime;
inti,mycount,count;
MPI_Init(argc,argv);
MPI_Comm_rank(MPI_COMM_WORLD,myid);
MPI_Comm_size(MPI_COMM_WORLD,numprocs);
MPI_Get_processor_name(processor_name,namelen);
if(myid==0)
{
startTime=MPI_Wtime();
}
mycount=0;
for(i=myid;i=MAX;i+=numprocs)
{
if(check(i)==0)
{
mycount++;
}
}
printf(Process%dof%don%sgetresult=%d\n,myid,numprocs,processor_name,mycount);
if(myid!=0)
{
MPI_Send(mycount,1,MPI_INT,0,myid,MPI_COMM_WORLD);
}
else
{
count=mycount;
for(i=1;inumprocs;i++)
{
MPI_Recv(mycount,1,MPI_INT,MPI_ANY_SOURCE,MPI_ANY_TAG,MPI_COMM_WORLD,status);
count+=mycount;
}
endTime=MPI_Wtime();
printf(result=%d\n,count);
printf(timeelapsed%f\
您可能关注的文档
最近下载
- 1.人教版小学三年级下册数学易错题题库(含答案解析).pdf VIP
- 新能源汽车项目可行性研究报告(参考模板范文).docx
- 《文化和旅游领域重大事故隐患判定标准》解读和案例警示教育.pptx
- 【中考地理】答题技巧与模板构建:专题04_河流水文、水系特征类(答题模板)(解析版).pdf VIP
- 《泉州海丝文化》PPT课件.pptx VIP
- 《国民经济行业分类和代码表》.doc VIP
- 落实中央八项规定精神、纠治“四风”工作调查问卷.docx VIP
- 工作绩效及薪酬激励方案执行情况及改进情况总结.pptx
- 公路日常养护费—公路日常养护费用.pptx
- 百度智能云水业大模型白皮书(2024).pdf VIP
文档评论(0)