Linux下基于MPI的hello程序设计
一、MPICH并行计算库安装
在Linux环境下安装MPICH执行环境,配置MPD.CONF, 完成临近机器间的并行配置。
(一)创建SSH信任连接,实现免秘钥互相连接
步骤自行拟定,截图和描述
1.
3个虚拟机都做一遍
2.更改主机名
3.生成密钥和公钥
3个虚拟机都做一遍
4.3个虚拟机互相上传公钥
5.确认信任连接
结果验证:
确认四台机器的信任连接已建立
对每个节点执行:
#ssh node01
#ssh node02
#ssh node03
#ssh node04
在提示处输入yes回车,最后确定无需输入密码并且没有任何提示信息即可登陆("Last login:时间日期"提示信息除外)
(二)安装MPICH 3.4
https://www.mpich.org/static/downloads/3.4/mpich-3.4.tar.gz
(1)安装Mpich
- 解压缩文件包
- 创建安装目录
- 进入mpich解压目录
4、设置安装目录
#./configure --prefix=/usr/MPICH-install
5、编译
#make
如果编译不成功的提醒内容是什么?解释并截图
编译成功的截图
6、安装
#make install
7、退出到root目录
#cd ..
8、通过编辑.bashrc文件修改环境变量
#vi .bashrc
修改后的.bashrc文件如下:
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
PATH="$PATH:/usr/MPICH-install/bin" 新增加的
#Source global definitions
if [ -f /etc/bashrc ]; then
./etc/bashrc
Fi
9、测试环境变量设置
#source ~/.bashrc
#which mpicc
#which mpiexec
#which mpirun
10、修改/etc/mpd.conf文件,内容为secretword=myword
#vi /etc/mpd.conf
设置文件读取权限和修改时间
#touch /etc/mpd.conf
#chmod 600 /etc/mpd.conf
11、创建主机名称集合文件/root/mpd.hosts
#vi mpd.hosts
文件内容如下:
node01
node02
node03
node04
sudo vi mpd.hosts
(三)配置NFS
为了方便 MPICH 的安装及并行程序的运行,最好将 MPICH的安装目录及用户家目录通过 NFS 网络文件系统共享。对于仅包含几个结点的较小的集群系统,可以任意指定其中一个结点作为 NFS服务器。对较大的集群系统,应设定一个或数个结点专门用于文件服务,这些结点称为 I/O 结点,它们专门负责存储设备的管理,不参加计算。这里选择 node01 作为 NFS 服务器,将它的 /home 和/usr/MPICH-nstall目录输出给其他三个结点,相应的配置步骤如下。
1、 以 root 身分登录到 node01 上,确保 node1 上安装了NFS 程序 (nfs-utils 包)。首先运行命令来开启 NFS 服务:
此处分别设置nfs和nfslock随系统启动。
然后重启nfs和nfslock进程
- 切换到root身份
sudo su
(2)安装rpm
(3)查看当前节点是否有nfs服务
(4)安装nfs服务
(5)检查nfs服务的状态
(6)设置nfs服务开机启动和设置nfs和nfsslock随系统启动
然后编辑文件 /etc/exports,在其中加入下面二行 (如果该文件不存在则创建一个新文件):
/home (node01的ip)/24(rw,async,no_root_squash)
/usr/MPICH-install (node01的ip)/24(rw,async,no_root_squash)
- 编辑文件
sudo nano /etc/exports
(2)查看共享目录
做好上述修改后执行命令,让上述内容生效:
填写什么命令?
便完成了 /home 和 /usr/local 目录的输出。
2、 以root 身份登录到其余三个结点,在文件 /etc/fstab中加入下面两行:
node01:/home /home nfs defaults 0 0
node01: /usr/MPICH-install /usr/MPICH-install nfs defaults 0 0
并且运行挂载命令:
填写相应命令
如果不成功,可能需要安装nfstools相关软件包。
- 以root身份登录其他3个节点
sudo su
/home/node01
(2)编辑文件sudo nano /etc/fstab
(3)安装nfstools工具
(4)进行远程文件挂载
完成上面的步骤后,node02,node03和node04 应该共享node01的/home和 /usr/MPICH-install 目录。可以在任何一个结点上用 df 命令来验证,例如:
# df
返回类似下面所示的结果:
... ...
node01:/home 248632644 224028484 11974280 95% /home
node01:/usr/MPICH-install 246966888 200888560 33533076 86% /usr/local
(四)环境测试
本地测试
测试运行MPICH的例子程序
查询如何编译mpi源代码,如何运行mpi程序
- nano hello,c
- Mpicc -o hello hello.c
- Mpirun -np 4 ./hello