在虚拟机环境下搭建MPI集群

一、安装虚拟机

这步就不详细说了,参考了一位博主的教程,推荐:安装CentOS7虚拟机(超详细)_linux多台虚拟机-CSDN博客

这步踩了一个坑,报错显示无法使用内核设备,参考博文:无法打开内核设备“\.\VMCIDev\VMX”: 操作成功完成。是否在安装 VMware Workstation 后重新引导? 模块“DevicePowerOn”启动失败。 未能启动虚拟机。_无法打开内核设备“\\.\vmcidev\vmx”: 操作成功完成。是否在安装 vmware wor-CSDN博客

安装必要的软件

sudo yum install nano
sudo yum install net-tools
sudo yum install gcc
sudo yum install gcc-c++
sudo yum install gcc-gfortran

更新yum库

yum update

下载相关依赖包

yum install wget -y
yum install gcc gcc-c++ gcc-fortran kernel-devel -y

二、关闭防火墙

关闭防火墙避免MPI不能访问网络造成程序执行出错,禁止防火墙开机启动

sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service

永久关闭SELinux命令

sudo nano /etc/selinux/config
注释下面两行:
#SELINUX=enforcing
SELINUX=disabled
#SELINUXTYPE=targeted
重启生效:
sudo reboot -f

查看防火墙状态

/usr/sbin/sestatus

三、搭建集群

1、克隆两台上述配置的虚拟机

参考:克隆虚拟机_无法为共享或远程虚拟机创建克隆-CSDN博客

2、为每个节点分配IP地址

参考:关于CentOS7虚拟机配置静态IP地址及ping通百度等官网问题的解答_centos7ping不了百度-CSDN博客

3、修改机器名(在每台机器的终端上操作)

sudo vim /etc/sysconfig/network

如下图所示,改为节点IP与名称对应的形式

4、修改/etc/hosts文件,修改依旧如上图所示(注:原文件的内容要删掉)

sudo vim /etc/hosts

5、修改节点名称

sudo vim /etc/hostname

 (Node2、Node3只用写名称就好)

6、SSH免密登录

参考:配置SSH无密码登录_ssh无密码登录没有这个文件-CSDN博客

7、挂载FNS

参考:centos7搭建nfs以及挂载完整步骤_centos7安装配置nfs服务和挂载-CSDN博客

8、MPICH下载(最好下载到共享目录中)

参考:MPICH下载安装-CSDN博客

9、测试

在共享目录中建立helloworld.c测试文件

#include "mpi.h" 
#include <stdio.h> 
#include <math.h> 
void main(argc,argv) 
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); 
  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();
}

结果输出

完结撒花!MPI集群搭建教程网上五花八门,很少有完整的教程,我整合了一下各个阶段需要注意的问题,站在诸位牛牛博主的肩膀上,希望能帮助到大家~

posted @ 2024-04-24 21:04  棒打鲜橙不加冰  阅读(68)  评论(0编辑  收藏  举报