大数据与云计算——MPI集群配置(全网最详细讲解)

这篇具有很好参考价值的文章主要介绍了大数据与云计算——MPI集群配置(全网最详细讲解)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

什么是MPI集群?

MPI(消息传递接口)是一种用于编写并行程序的标准,它允许在多个计算节点上进行通信和协作。MPI集群配置是指在一个或多个计算节点上设置MPI环境以实现并行计算。

MPI集群配置的步骤:

硬件选型:选择适合你需求的硬件设备,包括主节点和计算节点。主节点负责协调计算节点之间的通信和任务分配,而计算节点执行实际的计算任务。

操作系统安装:为每个节点安装操作系统,常见的选择包括Linux、Windows服务器等。确保所有节点都能够相互访问,并具备网络连接功能。

MPI软件安装:选择一种MPI实现,如OpenMPI、MPICH等,并根据操作系统的要求在每个节点上安装相应的MPI软件。MPI库提供了一组用于并行计算的函数和工具,以便在节点之间进行通信和同步。

配置主节点:编辑主节点的MPI配置文件,通常是mpiexec或mpirun的配置文件,以指定运行MPI程序的方式。这可以包括指定计算节点的数量、启动脚本、进程分配等选项。

配置计算节点:对于计算节点,编辑其MPI配置文件以指定主节点的位置和其他必要的信息。此外,确保计算节点能够访问主节点和其他计算节点,以便进行通信。

测试MPI集群:编写一个简单的MPI程序,并在MPI集群上进行测试。确保MPI程序能够正确地在多个节点上并行执行,并且能够通过消息传递实现节点之间的数据交换和同步。

扩展集群规模(可选):如果需要更多的计算能力,可以添加更多的计算节点到集群中。确保新的节点也安装了相应的MPI软件,并按照步骤4和5配置好。

下面我们来进行一个简单的MPI集群配置,希望对各位学习云计算和相关MPI集群知识有所帮助。

一、 用VMware Workstation Pro配置虚拟机并打开

这里我们选择用普通用户登陆
(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database

1. 保证网络畅通,设置各节点的固定IP,并重新启动网络服务。

配置master网络服务:

sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33

(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
成功配置网络
ping www.baidu.com 成功!

(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
配置host1网络服务:

sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33

(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database

成功配置网络
ping www.baidu.com 成功!

(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
配置host2网络服务:

sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33

(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
成功配置网络
ping www.baidu.com 成功!
(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
2. 配置两台机器的hosts文件:主机名分别为master、host1和host2

命令:

vim /etc/hosts

(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
命令:

vim /etc/hosts

(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
修改master主机名:

vim /etc/hosname

(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
命令:vim /etc/hosts
(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
修改host1主机名:

vim /etc/hosname

(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
命令:

vim /etc/hosts

(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
修改host2主机名:

vim /etc/hosname

(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database

2. SSH免密登陆

ssh-keygen –t rsa 一路回车
在master,host1,host2分别
2.将公钥追加到authorized_keys文件中,命令:

  cat  ~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys

在master,host1,host2分别
所有节点都要设置
3.将公钥拷贝到其它机器
(1)master

 ssh-copy-id -i  ~/.ssh/id_rsa.pub host1
ssh-copy-id  -i  ~/.ssh/id_rsa.pub host2

(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database

重启ssh服务:

sudo systemctl restart sshd

(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
master成功免密登陆host1:

ssh host1

(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
(2)host1

ssh-copy-id  -i  ~/.ssh/id_rsa.pub master
ssh-copy-id  -i  ~/.ssh/id_rsa.pub host2

(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
重启ssh服务:

sudo systemctl restart sshd

(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
host1成功免密登陆host2:

ssh host2

(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
(3)host2

ssh-copy-id  -i  ~/.ssh/id_rsa.pub master
ssh-copy-id  -i  ~/.ssh/id_rsa.pub host1

(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database

重启ssh服务:

sudo systemctl restart sshd

(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
host2成功免密登陆host1:

 ssh host1

(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database

CentOS 7在安装时自动安装了ssh软件包,并配置了SSH服务。
三台机器ssh服务状态:

systemctl status sshd

(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
注意,ssh免密登陆是用户对用户式的,所以在操作中要保证主节点终端和子节点的终端是对应的。
1)关闭各节点防火墙和Selinux
关闭:sudo systemctl stop firewalld
开机禁用:sudo systemctl disable firewalld
关闭Selinux:sudo setenforce 0
(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
2)服务端(master,建议取第一台主机)
(1)sudo yum -y install nfs-utils rpcbind #安装软件
(2)mkdir -p /opt/modules/mpi_share #创建共享目录
(3)chmod 777 /opt/modules/mpi_share -R #授予权限
(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
(4)sudo vi /etc/exports #修改配置写入:

/opt/modules/mpi_share 192.168.95.25(rw,sync,no_root_squash) /opt/modules/mpi_share 192.168.95.26(rw,sync,no_root_squash)

(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database

192.168.95.25是子节点的地址,也可以是主机名,权限选项中的rw表示允许读写,视自己主机具体IP地址输入;ro为只读;sync表示同步写入,no_root_squash表示当客户机以root身份访问时赋予本地root权限。

sudo exportfs -rv

(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
(5)sudo systemctl start rpcbind

sudo systemctl start nfs #启动nfs,或者设置为开机启动

(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database(6)sudo systemctl enable rpcbind

sudo systemctl enable nfs
showmount -e #查看NFS服务器端的共享目录

(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
3)客户端(host1)
(1)sudo yum -y install nfs-utils rpcbind
(2)mkdir -p /opt/modules/mpi_share #将各个节点的共享目录位置和名字设置成一样的
(3)sudo systemctl start rpcbind
sudo systemctl start nfs #同样可以设置开机启动
(4)sudo systemctl enable rpcbind
(5)sudo mount -t nfs 192.168.95.20:/opt/modules/mpi_share /opt/modules/mpi_share #将服务器端共享目录挂载到本地文件夹
(6)或者永久挂载(可选)
vim /etc/fstab
添加192.168.95.20:/home/mpi_share /home/mpi_share nfs rw 0 0
(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
4)客户端(host2)
(1)sudo yum -y install nfs-utils rpcbind
(2)mkdir -p /opt/modules/mpi_share #将各个节点的共享目录位置和名字设置成一样的
(3)sudo systemctl start rpcbind
sudo systemctl start nfs #同样可以设置开机启动
(4)sudo systemctl enable rpcbind
(5)sudo mount -t nfs 192.168.95.20:/opt/modules/mpi_share /opt/modules/mpi_share #将服务器端共享目录挂载到本地文件夹
(6)或者永久挂载(可选)
vim /etc/fstab
添加192.168.95.20:/home/mpi_share /home/mpi_share nfs rw 0 0
(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
5. 安装配置mpich
1)安装编译器
yum install gcc gcc-c++ gcc-fortran kernel-devel -y # https://blog.csdn.net/wangzhouf/article/details/108222704
(yum install gcc g++ #mpich默认的编译器是gcc,g++和gfortran,但是yum命令找不到gfortran的安装包
#可以自行查找安装gfortran编译器的方法 作者:风干橘子皮- https://www.bilibili.com/read/cv15215061 出处:bilibili)
(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
2)下载并安装mpi安装包
(1)创建目录并下载包

mkdir -p /opt/softwares
cd softwares
wget http://www.mpich.org/static/downloads/3.4.1/mpich-3.4.1.tar.gz

(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
(2)解压

tar -zxvf mpich-3.4.1.tar.gz

(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
(3)新建安装目录

mkdir -p /opt/modules/mpich-install

(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
(4)进入下载目录并编译安装

cd /opt/softwares/mpich-3.4.1
./configure --disable-fortran --prefix=/opt/modules/mpich-install --with-device=ch4:ofi 2>&1 | tee c.txt

或:
./configure --disable-fortran //作者:风干橘子皮- https://www.bilibili.com/read/cv15215061 出处:bilibili
(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database

make

(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database

make install

(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
3)配置环境
(1)

vim ~/.bashrc
export MPICH=/opt/modules/mpich-install
export PATH=$MPICH/bin:$PATH

(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
(2)令环境变量生效

source ~/.bashrc

(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
4)检查安装情况

mpirun -version

(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
6.在每台主机上编译C程序
1)将C程序代码helloWorld.c上传到 每台主机的/opt/modules/mpi_share目录
2)cd /opt/modules/mpi_share`
3)先编写一个helloWorld.c和一个helloWorld2.c:
(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database

mpicc -o helloWorld helloWorld.c

(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
在编写另一个helloWorld2.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();
}

(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
7.在master上运行:

mpirun -n 3 -host master,host1,host2 ./helloWorld

mpirun -n 3 -host master,host1,host2 ./helloWorld2

(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
(1)部署mpi集群环境,大数据,大数据系统运维,虚拟机,云计算,大数据,运维,linux,centos,database
当我们面对我们主要的矛盾时候,如果我们能够站在更高维度、更高层次去看待问题,我们将会发现新大陆,会有一种忽如一夜春风来,千树万树梨花开的感受,这对我们个人思维层面又一个巨大的提升,但是这个过程需要我们不断学习,不断历练,当达到一定层次的时候,量变就会发生质变。文章来源地址https://www.toymoban.com/news/detail-761218.html

到了这里,关于大数据与云计算——MPI集群配置(全网最详细讲解)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 大数据与云计算——Storm详细配置(保姆级教程!)

    当今世界正处于云计算和大数据的快速发展阶段,而Storm作为一种高效、可靠的实时计算框架,受到了广泛的关注和应用。在这篇文章中,我们将从头开始,将提供一份保姆级教程,帮助进行相关配置和运行WordCountTopology。向您展示如何配置Storm环境。我们将详细介绍所需的软

    2024年02月03日
    浏览(49)
  • 【HNU分布式与云计算系统】MPI实现矩阵乘矩阵运算

    实验环境 操作系统:Ubuntu 20.04 编程语言:C++ 实验原理 什么是MPI MPI是一个跨语言的通讯协议,用于编写并行计算机。支持点对点和广播。MPI是一个信息传递应用程序接口,包括协议和和语义说明,他们指明其如何在各种实现中发挥其特性。MPI的目标是高性能,大规模性,和

    2023年04月08日
    浏览(33)
  • 大数据与云计算——Spark的安装和配置

    Spark的简单介绍: Apache Spark是一个基于内存的分布式计算框架,它提供了高效、强大的数据处理和分析能力。与传统的Hadoop MapReduce相比,Spark的主要优势在于其能够将数据集缓存在内存中,从而大大减少了磁盘I/O操作,提高了数据处理速度。 Spark提供了多种编程接口,包括

    2024年02月05日
    浏览(39)
  • MPI安装+CentOs6.5多机环境下MPI并行编程+MPI矩阵并行计算(超详细)

    创建多进程,输出进程号和进程数 运行多进程并行例子程序 编程实现大规模向量/矩阵并行计算 1、在开始安装之前,先检查一下是否已经安装好了相应的编译器。 2、安装MPICH之前,首先要在centos6.5上安装c编译器,(进入超级用户)使用指令安装如下: 3、(返回普通用户)

    2024年02月09日
    浏览(37)
  • 大数据知识图谱——基于知识图谱+flask的大数据(KBQA)NLP医疗知识问答系统(全网最详细讲解及源码)

    知识图谱是将知识连接起来形成的一个网络。由节点和边组成,节点是实体,边是两个实体的关系,节点和边都可以有属性。知识图谱除了可以查询实体的属性外,还可以很方便的从一个实体通过遍历关系的方式找到相关的实体及属性信息。 基于知识图谱+flask的KBQA医疗问答

    2024年02月04日
    浏览(48)
  • 大数据NoSQL数据库HBase集群部署——详细讲解~

    HBase 是一种分布式、可扩展、支持海量数据存储的 NoSQL 数据库。 和Redis一样,HBase是一款KeyValue型存储的数据库。 不过和Redis设计方向不同 Redis设计为少量数据,超快检索 HBase设计为海量数据,快速检索 HBase在大数据领域应用十分广泛,现在我们来在node1、node2、node3上部署H

    2024年02月11日
    浏览(43)
  • 大数据知识图谱——基于知识图谱+flask的大数据(KBQA)NLP医疗知识问答系统(全网最详细讲解及源码/建议收藏)

    知识图谱是将知识连接起来形成的一个网络。由节点和边组成,节点是实体,边是两个实体的关系,节点和边都可以有属性。知识图谱除了可以查询实体的属性外,还可以很方便的从一个实体通过遍历关系的方式找到相关的实体及属性信息。 基于知识图谱+flask的KBQA医疗问答

    2024年02月01日
    浏览(56)
  • 全网最全超详细.htaccess语法讲解

    概述来说,htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。 Unix、Linux系统或者

    2024年02月04日
    浏览(36)
  • 【XXE漏洞安全-全网最详细讲解】

    作者: liku君 公众号:里库的安全日记 博主微信:L2440710476(请备注来意) XXE(XML External Entity)漏洞是一种安全漏洞,出现在使用XML解析器的应用程序中。它允许攻击者利用可信任的XML扩展功能来执行恶意操作,如读取本地文件、发起远程网络请求或执行任意命令。 XXE漏洞

    2024年04月17日
    浏览(42)
  • Transformer [全网最详细的Transformer讲解]

    先看 Transformer 的整体框架: 可能看起来很复杂,但其实还是 Encoder 和 Decoder {seq2seq}的框架。默认NX=6 ,6层 Encoder 和 6层 Decoder 嵌套中嵌套了上次讲的 Self-Attention ,再进行多次非线性变换。 上图的框架很复杂,由于 Transformer 最初是作为翻译模型,我们举例先带大家理解用

    2024年02月12日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包