MPI并行编程实验报告

上传人:cjc****537 文档编号:120914930 上传时间:2020-02-12 格式:DOC 页数:23 大小:900.50KB
返回 下载 相关 举报
MPI并行编程实验报告_第1页
第1页 / 共23页
MPI并行编程实验报告_第2页
第2页 / 共23页
MPI并行编程实验报告_第3页
第3页 / 共23页
MPI并行编程实验报告_第4页
第4页 / 共23页
MPI并行编程实验报告_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《MPI并行编程实验报告》由会员分享,可在线阅读,更多相关《MPI并行编程实验报告(23页珍藏版)》请在金锄头文库上搜索。

1、姓名学号实验成绩计算机系统结构实验报告课 题:MPI并行编程实验 起讫日期:2012-05-20 2012-06-15组名:第四组院 系:计算机学院专 业:计算机科学与技术指导老师:XXX 教授2012年6月15日实验一Linux下基于MPI的hello程序设计Author:姓名一、MPICH并行计算库安装在Linux环境下安装MPICH执行环境,配置MPD.CONF, 完成实验室中临近机器间的并行配置。概要:以寝室四台计算机为例,设置IP(192.168.1.1192.168.1.4),更改主机名为node01,node02,node03, node04。(一)创建SSH信任连接1、更改/e

2、tc/hosts文件#vi /etc/hosts 打开hosts文件,更改如下: 127.0.0.1 localhost.localdomain localhost 192.168.1.1 node01 192.168.1.2 node02 192.168.1.3 node03 192.168.1.4 node042、在node01生成SSH秘钥对.#ssh-keygen -t rsa 一路回车即可产生.ssh文件,#ls -a 查看是否有.ssh文件夹3、进入.ssh目录#cd .ssh4、生成authorized_keys文件#cp id_rsa.pub authorized_keys 5

3、、退出到root目录#cd .6、建立本身的信任连接#ssh node01 按提示输入yes(三个字母要打全)7、设置node02(node02的root目录下)#ssh-keygen -t rsa 生成.ssh文件夹#scp node01的IP:/root/.ssh/* /root/.ssh 拷贝node01上的.ssh文件夹覆盖本地的#scp node01的IP:/etc/hosts /etc/hosts 拷贝node01上的hosts文件覆盖本地的#ssh node01 提示处输入yes回车设置node03,node04的方法与node02相同8、确认四台机器的信任连接已建立对每个节点执

4、行:#ssh node01#ssh node02#ssh node03#ssh node04在提示处输入yes回车,最后确定无需输入密码并且没有任何提示信息即可登陆(Last login:时间日期提示信息除外)(二)安装MPICH21、解压缩文件包#tar -zxvf mpich2-1.0.1.tar.gz2、创建安装目录#mkdir /usr/MPICH-instsll3、进入mpich2解压目录#cd mpich2-1.0.14、设置安装目录#./configure -prefix=/usr/MPICH-install5、编译#make6、安装#make install7、退出到root目

5、录#cd .8、通过编辑.bashrc文件修改环境变量#vi .bashrc修改后的.bashrc文件如下:# .bashrc# User specific aliases and functions alias rm=rm -ialias cp=cp -ialias mv=mv -iPATH=$PATH:/usr/MPICH-install/bin 新增加的#Source global definitionsif -f /etc/bashrc ; then ./etc/bashrcfi9、测试环境变量设置#source /.bashrc#which mpd#which mpicc#which

6、 mpiexec#which mpirun10、修改/etc/mpd.conf文件,内容为secretword=myword#vi /etc/mpd.conf设置文件读取权限和修改时间#touch /etc/mpd.conf#chmod 600 /etc/mpd.conf11、创建主机名称集合文件/root/mpd.hosts#vi mpd.hosts文件内容如下:node01node02node03node04(三)配置NFS为了方便 MPICH 的安装及并行程序的运行,最好将 MPICH的安装目录及用户家目录通过 NFS 网络文件系统共享。对于仅包含几个结点的较小的集群系统,可以任意指定其

7、中一个结点作为 NFS服务器。对较大的集群系统,应设定一个或数个结点专门用于文件服务,这些结点称为 I/O 结点,它们专门负责存储设备的管理,不参加计算。这里选择 node1 作为 NFS 服务器,将它的 /home 和/usr/MPICH-nstall目录输出给其他三个结点,相应的配置步骤如下。1、 以 root 身分登录到 node1 上,确保 node1 上安装了NFS 程序 (nfs-utils 包)。首先运行一遍下述命令来开启 NFS 服务: /sbin/chkconfig nfs on /sbin/chkconfig nfslock on /etc/init.d/nfslock r

8、estart /etc/init.d/nfs restart然后编辑文件 /etc/exports,在其中加入下面二行 (如果该文件不存在则创建一个新文件): /home 10.0.0.0/255.255.255.248(rw,async,no_root_squash) /usr/MPICH-install 10.0.0.0/255.255.255.248(rw,async,no_root_squash)做好上述修改后执行下面的命令: /sbin/exportfs -a便完成了 /home 和 /usr/local 目录的输出。2、 以root 身份登录到其余三个结点,在文件 /etc/fst

9、ab中加入下面两行: node1:/home /home nfs defaults 0 0 node1:/usr/local /usr/local nfs defaults 0 0并且运行一次下述命令: /sbin/chkconfig netfs on mount -t nfs -a完成上面的步骤后,node2,node3和node4 应该共享node1的/home和 /usr/MPICH-install 目录。可以在任何一个结点上用 df 命令来验证,例如: # df返回类似下面所示的结果: . . node1:/home 248632644 224028484 11974280 95% /

10、home node1:/usr/MPICH-install 246966888 200888560 33533076 86% /usr/local(四)环境测试1、本地测试#mpd & 启动 #mpdtrace 观看启动机器#mpdallexit 退出2、通过mpd.hosts运行集群系统#mpdboot -n number -f mpd.hosts number为要起动的机器个数#mpdtrace #mpdallexit3、测试运行MPICH的例子程序#mpdboot -n 4 -f mpd.hosts 启动4台机器#mpiexec -n number /usr/MPICH-install/

11、examples/cpi number为使用的进程数#mpdallexit二HELLO WORLD并行程序设计(一)程序源码:/*hello.c*/#include #include mpi.hint main( int argc, char *argv ) int rank; int size; MPI_Init( 0, 0 ); MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &size); printf( Hello world from process %d of %dn, rank, size )

12、; MPI_Finalize(); return 0;(二)程序编译$mpicc o hello hello.c(三)运行结果$mpdboot n -f mpd.hosts$mpiexec n ./hello(四)实验心得:基本上和vc运行是一样的,只是环境不一样,编译时要用mpicc o hello hello.c运行时要用mpiexec n ./hello,错误多错几次口令也就背下来了,当让,在运行框里可以看出我刚开始忘了建自己的目录就想开始编辑程序。实验二对等模式的MPI程序设计Author:姓名一、实验目的:掌握MPI并行程序设计的基本思想和主要编程方法,编写一个具有对等模式的MPI程

13、序,实现各进程的对等。二、基本概念:所谓对等模式,就是说MPI程序的各个进程的功能、地位相同或相近, MPI程序的代码也应该是相近的,所不同的只是处理的对象和操作的数据,比如MPI程序让各个进程同时对一个数组的不同部分并行赋初值,各个进程间的关系就是典型的对等关系。三、实验环境: MPICH 2 Windows 7四、模块说明:Jacobi叠代为了并行求解,这里将参加迭代的数据按列进行分割,并假设一共有4个进程同时并行计算,数据的分割结果如下图所示。Jacobi迭代的数据划分及其与相应进程的对应捆绑发送接收捆绑发送和接收操作把发送一个消息到一个目的地和从另一个进程接收一个消息合并到一个调用中,

14、源和目的可以是相同的。捆绑发送接收操作虽然在语义上等同于一个发送操作和一个接收操作的结合,但是它可以有效地避免由于单独书写发送或接收操作时,由于次序的错误而造成的死锁。这是因为该操作由通信系统来实现,系统会优化通信次序,从而有效地避免不合理的通信次序,最大限度避免死锁的产生。捆绑发送接收操作是不对称的,即一个由捆绑发送接收调用发出的消息可以被一个普通接收操作接收,一个捆绑发送接收调用可以接收一个普通发送操作发送的消息。该操作执行一个阻塞的发送和接收,接收和发送使用同一个通信域,但是可能使用不同的标识。发送缓冲区和接收缓冲区必须分开,他们可以是不同的数据长度和不同的数据类型。虚拟进程虚拟进程(MPI_PROC_NULL)是不存在的假想进程,在MPI中的主要作用是充当真实进程通信的目或源,引入虚拟进程的目的是为了在某些情况下编写通信语句的方便。当一个真实进程向一个虚拟进程发送数据或从一个虚拟进程接收数据时,该真实进程会

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 总结/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号