网站大量收购闲置独家精品文档,联系QQ:2885784924

13281069_谢洁_MPI实验案例.docx

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MPI实验报告一、MPI实验第一部分MPICH2具体安装配置过程双击mpich2-1.4-win-ia32.msi安装程序,一直按next直到finish即可完成MPICH2的安装。通过开始控制面板用户账户和家庭安全用户账户创建密码给电脑管理员帐号设置一个密码。注册用户名,具体操作如下:开始所有程序MPICH2 wmpiregister.exe. 该用户名和密码必须为上面所设置的操作系统管理员账户和密码。通过开始所有程序MPICH2wmpiexec.exe打开软件运行面板MPI程序代码利用microsoft visual C++ 6.0 编写课件中的HelloWorld工程,在代码的#include语句之前添加#define MPICH_SKIP_MPICXX语句,程序代码如下图所示:通过Tools Options将MPICH2目录下的\lib和\include文件夹添加到工程中同时拷贝\lib文件夹中的mpi.lib和cxx.lib文件到工程目录下通过ProjectSettingLink在Object/library modules最后面添加mpi.lib 和 cxx.lib。运行结果截屏编译代码,在工程的debug目录下生成了一个.exe文件。打开wmpiexec.exe,将刚刚编译产生的.exe文件添加到Application中,将Number of process更改成8或以上,点击Execute,则可看到执行结果如下图:实验分析总结分析如下MPI程序代码:if(myid == 2)MPI_Send(HELLO,5,MPI_CHAR,7,1234,MPI_COMM_WORLD);if(myid ==7){MPI_Recv(string,5,MPI_CHAR,2,MPI_ANY_TAG,MPI_COMM_WORLD,status);printf(Got %s from p%d,tag %d\n,string,status.MPI_SOURCE,status.MPI_TAG);}myid变量中所存的为当前进程在给定的通信域中的进程标识号。进程标志为2的进程为源进程,它将缓存中的数据“HELLO”发送给进程标志号为7的进程;进程标志为7的进程为目的进程,它从源进程中接受数据,并输出数据的内容及源进程标志号。本实验安装过程中要注意注册的用户名和密码要和所设置的操作系统管理员账户和密码相同,否则不能运行。二、MPI实验第二部分程序代码// shiyan2.cpp : Defines the entry point for the console application.#include stdafx.h#define MPICH_SKIP_MPICXX#include mpi.h#include stdio.hstatic long num_steps = 100000;void main(int argc,char* argv[]){int i_start,i_end,i,myid,numprocs;double pi,mypi,x,step,sum = 0.0; double startwtime = 0.0, endwtime;MPI_Init(argc,argv);MPI_Comm_size(MPI_COMM_WORLD,numprocs);MPI_Comm_rank(MPI_COMM_WORLD,myid);if(myid == 0) startwtime = MPI_Wtime();MPI_Bcast(num_steps,1,MPI_INT,0,MPI_COMM_WORLD);i_start = myid * (num_steps / numprocs);i_end = i_start + (num_steps / numprocs);step = 1.0 / (double) num_steps;for(i = i_start;i i_end;i++){x = (i + 0.5) * step;sum = sum + 4.0 / (1.0 + x * x);}mypi = step * sum;MPI_Reduce(mypi,pi,1,MPI_DOUBLE,MPI_SUM,0,MPI_COMM_WORLD);if(myid == 0) {printf(Pi = %f\n,pi);endwtime = MPI_Wtime();printf(wall clock time = %f\n, endwtime-startwtime); }MPI_Finalize();}运行结果截屏1、单机运行截图2、双机运行截图实验分析总结1、概念:粒度是描述模糊不确定对象的工具。粒度计算是信息处理的一种新的概念和计算范式

文档评论(0)

1112111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档