centos单机安装mpich
root登录
安装3.2版本64位的mpich
yum install mpich-3.2.x86_64
yum install mpich-3.2-autoload.x86_64
yum install mpich-3.2-devel.x86_64
yum install mpich-3.2-doc.noarch
因为之前已经下载过,所以说nothing to do,如果不确定也可以直接复制,如果也是nothing to do 说明成功
安装目录一般在 /usr/lib64/mpich-3.2 ,目录一直下去能看到很多文件和编译器
cd /usr/lib64/mpich-3.2/bin
ls
或者用
find / -name "mpi"
两个效果是一样的,就是为了确定安装位置而已
然后配置环境变量vim /etc/profile
添加语句,
export PATH=$PATH:/usr/lib64/mpich-3.2/bin/
如图所示:
先按ESC,然后:wq回车保存。
然后生效环境变量设置cd ~
,输入:source .bashrc
验证:cd ~
编辑c文件:vim hello.c
进入后按i,复制进去,Esc后:wq回车保存
#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 ./hello
结果:
多节点上执行mpich
配置主机名:vim /etc/hosts
两台主机,一台叫n1,一台n2,都需要配置hosts,内容如下:
//n1的配置
127.0.0.1 localhost n1(原来是localhost.localdomain,修改到和当前主机名一致) localhost4 localhost4.localdomain4
::1 localhost n1(和上面的n1同理) localhost6 localhost6.localdomain6
192.168.56.101 n1(这是当前主机名)
192.168.56.102 n2
//n2的配置
127.0.0.1 localhost n2 localhost4 localhost4.localdomain4
::1 localhost n2 localhost6 localhost6.localdomain6
192.168.56.101 n1
192.168.56.102 n2
退出后两台主机分别需要在root状态下设置hostnamevi /etc/sysconfig/network
//n1的配置
NETWORKING=yes
HOSTNAME=n1
//n2的配置
NETWORKING=yes
HOSTNAME=n2
保存后退出,直接在命令行用root状态分别在两台主机上输入:
hostname n1
hostname n2
或者永久使用需要修改vi /etc/hostname
输入n1/n2,重启生效。
再次输入hostname可以看到显示n1/n2即为成功。
然后cd ~
,配置集群的hosts文件:vim hosts
n1
n2
分两行分别打上主机名即可,保存退出。
然后在任意一台主机(我选择n1)上将上文测试过的编译好的hello文件传给集群中的主机:scp hello rx@n2:/home/rx
没有报错即为成功,然后运行指令:
mpirun -np 2 -f hosts ./hello
在两台主机上都有运行即为成功,结果如下:
参考资料:
- https://libiao.blog.csdn.net/article/details/100188349?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-4.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-4.control
- https://blog.csdn.net/qq_36819130/article/details/88370973
- https://blog.csdn.net/qq_29630271/article/details/70943549?utm_term=centos7%E5%AE%89%E8%A3%85mpich&utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2allsobaiduweb~default-0-70943549&spm=3001.4430