全球旧事资料 分类
户和系统登录密码。如图11所示:
图11MPICH用户注册界面3用例程测试。选择开始所有程序MPICH2wmpiexecexe;选择Applicatio
为cprogramfilesmpich2examplescpiexe就是自带的一个计算圆周率的例子程序。可在Numberofprocesses的数量选择2表示用二个进程来协同完成。选中“ru
i
separatewi
dow”选项,再点击Excute执行。如图12所示。
1
f图12测试例程cpiexe然后在控制台窗口下提示输入
umberofi
tervals,随便输入个大点的数字(50000,5000000)就可以看到求的的圆周率值。如图13所示。
图13cpiexe执行结果显示3在VC60中配置MPI1新建Wi
32Co
soleApplicatio
工程2先在VC60中加入mpi的i
clude。VC60程序菜单中“工具”“选择”“目录”然后添加,如图14所示。加入lib方法相同。
图14在VC60中添加MPI的i
clude3在所在工程设置li
k中,加入mpilibcxxlib。4加入讲过的helloworld程序,测试运行结果。注:这里以wi
dows下MPIVC实现为例进行的说明,同学可以根据自己的操作系统或开发语言自行选择版本下载安装。
2
f实验二共享存储模型与消息传递模型的比较
一、实验目的
比较共享存储模型与消息传递模型之间的区别。了解多线程并行和消息传递并行的工作机制。
二、实验内容
(1)统计10000个随机数中3出现的次数。OPENMP线程数可为1、2、4等。MPI程序进程数可为1、2、4等。(2)比较相同线程进程数下,采用OPENMP和MPI实现NBODY问题的性能。如:OPENMP线程数可为1、2、4等。MPI程序进程数可为1、2、4等。
三、实验步骤
(1)共享存储模型中,用ope
MP写一个程序,实现在一个长度为10,000的随机array里面,计算出3出现的次数,线程数为1,2或者4等。ope
MP可以拆分循环,比如2个线程,第一个线程负责array15000,第二个线程负责500110000,各循环5000次。这样两个线程可以同时遍历数组的两部分进行搜索计数。4个线程也类似,拆分成4部分同时进行。(OPENMP在VS2005以上支持,其他版本可查阅文献进行适当配置即可使用。)消息传递编程模型循环拆分的思量类似。比如2个进程,第一个进程负责array15000,第二个线程负责500110000,各循环5000次。这样两个线程可以同时遍历数组的两部分进行搜索计数。4个线程也类似,拆分成4部分同时进行。最后结果可以返回0号进程。源代码清单:1.共享存储模型计算随机数中3的个数(参考程序如下,可根据自己掌握的多线程知识自己编写新的OPM程序。)i
cludestdiohi
cludestdlibhi
cludeomphdefi
eN10000r
好听全球资料 返回顶部