环境
mpich需要在每个机器上进行配置
操作都是相同的
需要实现安装gcc
mpich安装
关闭防火墙,免密码登陆
见torque配置
下载,解压
下载地址:http://www.mpich.org/downloads/
- 解压到文件夹中:
tar -zxvf mpich-3.2.tar.gz
我的路径是`/home/qsb/mpich`
编译安装
./configure
make
sudo make install
- 修改环境变量
sudo vim /etc/profile
export MPI_ROOT=/home/qsb/mpich
export PATH=$MPI_ROOT/bin:$PATH
export MANPATH=$MPI_ROOT/man:$MANPATH
- 查看是否安装成功
which mpiexec
显示路径就应该是你的安装路径
配置文件
需要一个machinefile文件
可以放在conf目录或者mpich目录下都可
格式:hostname:线程数
vim machinefilemachinefile
10.113.10.1:4
10.113.10.2:4
10.113.10.3:4
10.113.10.4:4
10.113.10.5:4
每台主机需要相同的machinefile文件
测试
单点运行
mpirun -np 4 ~/mpich/examples/cpi
多点并行
注意:多点并行的前提是每个节点下面都要有同一个文档(路径完全相同)
所以最好是配置共享文件夹(后面有)
mpiexec -n 4 -f ~/machinefile ~/mpich/examples/cpi
要想真正使用四台机器,需要-n
参数稍大一点
(-n 16
)
mpich 编译运行c语言文件(多点并行)
简单的打印”hello world”
#include <mpi.h>
#include <stdio.h>
#include <math.h>
int main(int argc,char* argv[])
{
int myid, numprocs;
int namelen;
char processor_name[MPI_MAX_PROCESSOR_NAME];
MPI_Init(&argc,&argv);/* 初始化并行环境 */
MPI_Comm_rank(MPI_COMM_WORLD,&myid);/* 当前进程的ID号 */
MPI_Comm_size(MPI_COMM_WORLD,&numprocs);/* 进程的总? */
MPI_Get_processor_name(processor_name,&namelen);/* 当前处理器的名称 */
fprintf(stderr,"Hello World! Process %d of %d on %s\n",
myid, numprocs, processor_name);
MPI_Finalize();/* 结束并行环境 */
return 0;
}
编译运行
mpicc -o hello hello.c
mpirun -np 4 -f machinefile ./hello
补充:配置共享文件夹
共享目录:/data/sharefold
- 安装NFS
其实有可能自带,如果使用的时候出现
ntf unknow type
最好还是安装一下
yum install nfs-utils
yum install portmap
- 配置NFS服务器
我是在lk上面配置的
vim /etc/exports
#共享文件夹路径 其他主机地址||权限
/data/sharefold 10.113.10.1/5(insecure,rw,async,no_root_squash)
/data/sharefold -->共享的文件夹路径
10.113.10.1/5 -->允许访问的IP号,当然也可以具体指定一个,比如192.168.2.11
(rw,sync,no_root_squash) -->权限,和地址之间没有空格
使配置生效
exportfs -r
重启服务
sudo service nfs start
在其他主机上挂载共享文件夹
最好是在其他主机上创建一个同名文件夹
sudo mount -t nfs 10.113.10.1:/data/sharefold /data/sharefold