MPI并行编程实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MPI并行编程实验报告

起讫日期:xx-05-20 ~全文结束》》-06-15组名:第四组院系:计算机学院专业:计算机科学与技术指导老师:XXX 教授xx 年6月15日实验一Linux下基于MPI的hello程序设计Author:姓名

一、MPICH并行计算库安装在Linux环境下安装MPICH执行环境,配置MP

D、CONF, 完成实验室中临近机器间的并行配置。概要:以寝室四台计算机为例,设置IP(1

92、1

68、1、1~1

92、1

68、1、4),更改主机名为node01,node02,node03,

node04。

(一)创建SSH信任连接

1、更改/etc/hosts文件#vi /etc/hosts 打开hosts文件,更改如下:1

27、0、0、1 localhost、localdomain localhost1

92、1

68、1、1 node011

92、1

68、1、2 node021

92、1

68、1、3 node031

92、1

68、1、4 node0

42、在node01生成SSH秘钥对、#ssh-keygena 查看是否有、ssh文件夹

3、进入、ssh目录#cd 、ssh

4、生成authorized_keys文件#cp id_rsa、pub authorized_keys

5、退出到root目录#cd 、、

6、建立本身的信任连接#ssh node01 按提示输入yes(三个字母要打全)

7、设置node02(node02的root目录下)#ssh-keygenzxvf mpich2-

1、0、1、tar、gz

2、创建安装目录#mkdir /usr/MPICH-instsll

3、进入mpich2解压目录#cd mpich2-

1、0、

14、设置安装目录#、/configureprefix=/usr/MPICH-

install

5、编译#make

6、安装#make install

7、退出到root目录#cd 、、8、通过编辑、bashrc文件修改环境变量#vi 、bashrc修改后的、bashrc文件如下:# 、bashrc# User specific aliases and functions alias

rm='rmi'alias mv='mvinstall/bin" 新增加的#Source global definitionsif

[nstall目录输出给其他三个结点,相应的配置步骤如下。

1、以 root 身分登录到 node1 上,确保 node1 上安装了NFS 程序 (nfs-utils 包)。首先运行一遍下述命令来开启 NFS 服务: /sbin/chkconfig nfs on /sbin/chkconfig nfslock on /etc/init、d/nfslock restart /etc/init、d/nfs restart然后编辑文件 /etc/exports,在其中加入下面二行 (如果该文件不存在则创建一个新文件): /home

10、0、0、0/2

55、2

55、2

55、248(rw,async,no_root_squash)

/usr/MPICH-install

10、0、0、0/2

55、2

55、2

55、248(rw,async,no_root_squash)做好上述修改后执行下面的命令: /sbin/exportfst nfsinstall 目录。可以在任何一个结点上用 df 命令来验证,例如: # df返回类似下面所示的结果:、、、、、、

node1:/home2486326442240284841197428095% /home

node1:/usr/MPICH-install246966888全文结束》》885603353307686% /usr/local

(四)环境测试

1、本地测试#mpd & 启动 #mpdtrace 观看启动机器

#mpdallexit 退出

2、通过mpd、hosts运行集群系统#mpdbootf mpd、hosts number为要起动的机器个数#mpdtrace #mpdallexit

3、测试运行MPICH的例子程序#mpdbootf mpd、hosts 启动4台机器#mpiexecinstall/exles/cpi number为使用的进程数

#mpdallexit二、HELLO WORLD并行程序设计

(一)程序源码:/*hello、c*/#include

h>#include "mpi、h"int main( int argc, char

*argv[] ){ int rank; int size; MPI_Init( 0, 0 );

MPI_m_rank(MPI_M_WORLD, &rank); MPI_m_size(MPI_M_WORLD, &size); printf( "Hello world from process %d of %d\n", rank, size ); MPI_Finalize(); return 0;}

(二)程序编译$mpicc –o hello hello、c

(三)运行结果$mpdboot –n 1,10,*

MPI_M_WORLD,ierr)

end if C 向右侧的邻居发送数据

if (myid 、lt、3)

then

call

MPI_SEND(a(1,mysize+1),totalsize,MPI_REAL,myid+1,10,* MPI_M_WORLD,ierr)

end ifC 从左侧的邻居接收数据

if (myid 、gt、 0)

then

call MPI_RECV(a(1,1),totalsize,MPI_REAL,myid-1,10,* MPI_M_WORLD,status,ierr)

end if

begin_col=2

end_col=mysize+1

if (myid 、eq、 0)

then

begin_col=3

endif

if (myid 、eq、3)

then

相关文档
最新文档