MPI hello world SSH 免密互联

目标:
我们想实现2台主机免密互联,将MPI Hello World跑起来
假设hostname是node01,node02,(Linux shell窗口一般是UserName@HostName,node1和node2一定要和HostName一样)
hostname是/etc/hosts中的配置,如下:
在这里插入图片描述

ssh node1
ssh node2

使用IP免密登录(用户名相同时,ssh+主机名;如果不同,登录方式就是 ssh+用户名@IP地址)
可以参考:https://help.ubuntu.com/community/MpichCluster

修改hosts文件

分别假如主机,修改/etc/hosts文件,保证两台主机的username一样,linux 窗口一般都会是UserName@HostName组成

sudo vi /etc/hosts
#然后添加
#注意一点是不要用127.0.0.1,自己本机还是用共IP如下
10.8.103.195 node1
10.8.100.30  node2

生成并拷贝密钥

cd 
cd .ssh
#生成密钥
ssh-keygen -t rsa

在.ssh/目录下,会新生成两个文件:id_rsa.pub和 id_rsa

互相上传公钥到目标机器

#机器node2
ssh-copy-id node1
#机器node1
ssh-copy-id node2

然后就可以互联啦。

然后,配置一个machinefile

node1:1
node2:2

如果出现下面错误

Host key verification failed.
[mpiexec@-d2004-20230516] ui_cmd_cb (mpiexec/pmiserv_pmci.c:51): Launch proxy failed.
[mpiexec@-d2004-20230516] HYDT_dmxu_poll_wait_for_event (lib/tools/demux/demux_poll.c:76): callback returned error status
[mpiexec@-d2004-20230516] HYD_pmci_wait_for_completion (mpiexec/pmiserv_pmci.c:173): error waiting for event
[mpiexec@-d2004-20230516] main (mpiexec/mpiexec.c:260): process manager error waiting for completion

大概率是上面node1/2和hostname没有一一对应起来导致的。

然后在两台机器创建相同的文件夹。并且挂载同一个sample

#命令行安装mpich
#或者源码安装到/usr,这样不会出现各种找不到文件的情况
#2台机器都要装
#或者可以一台机器装好,采用mount去挂载
sudo ./configure  --disable-fortran  --prefix=/usr/
sudo make 
sudo make install$ sudo mount -t nfs 10.9.114.22:/workspace  /home/worspace
$ cd sample
$ mpirun  -n 2 -f /home/zhencheng.pace/eccl/mpich-4.2.1/build/bin/machinefile  ./mpi_hello_world

如果在单机上运行那么只要不加-f就可以了

#可以测试hostname是一个命令,可以用ls等
mpiexec -f machinefile  -n 2 hostname$ mpiexec -n 4 ./mpi_hello_world
Hello world from processor enflame-d2004-20230516, rank 0 out of 4 processors
Hello world from processor enflame-d2004-20230516, rank 2 out of 4 processors
Hello world from processor enflame-d2004-20230516, rank 1 out of 4 processors
Hello world from processor enflame-d2004-20230516, rank 3 out of 4 processors

简化办法

如果mpi编译在自己文件夹下,那么可以通过下面的方式来

sudo ./configure  --disable-fortran  --prefix=/you/works/dir
sudo make -j12
sudo make installexport PATH=$PATH:/you/works/dir/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/you/works/dir/lib
#核心保证2台机器上都要有mpi所有的bin和so,并且在同一个目录下
mpiexec -f machinefile  -n 2 hostname

slave机器上挂载

sudo mount -t nfs 10.9.114.22:/workspace/mpi   /workspace/mp

MPI的原理就是在多台机器上(相同目录,相同username)上同时启动,用户只要在一台机器上启动,MPI自动在其它机器上启动
在这里插入图片描述

可能会出现下面错误相关问题在这里插入图片描述
可以设置环境变量:

env | grep FI_export FI_LOG_LEVEL=debug
export FI_PROVIDER=tcp
export FI_SOCKETS_IFACE=lonetstat -lpunt |grep -i 34116
IP

下面是libfabric的介绍:
https://blog.csdn.net/ssbandjl/article/details/133248887
其实最后的结果猜测是服务器IP端口设置的缘故,在本机回环测试通过也行
在这里插入图片描述
后来反复测试发现,原来是服务器A的mpiexec默认打开的是服务器B上的docker0的虚拟网卡,导致两台服务器无法通过tcp/udp通信,把docker服务关闭,docker0虚拟网卡关掉就可以了。

#关闭docker0
sudo ifconfig docker0 down  #up是打开#关闭服务,只要关闭对端的就可以了
sudo service docker stop  #start

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/66715d8a10f141e9ad48415179939724.png

mpiexec -f hostfile  -iface eth0 -n 8 ./mpi_hello_world 

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/371608.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

并发编程-05AQS原理

并发编程-深入理解AQS之ReentrantLock 一 认识AQS 在讲解AQS原理以及相关同步器之前,我们需要对AQS有一些基本的认识,了解下它有什么样的机制,这样追踪源码的时候就不会太过于迷茫! 1.1 什么是AQS java.util.concurrent包中的大…

JavaWeb—js(2)

函数 /* 创建一个方法形参不需要写参数类型,多个参数直接用逗号隔开就可以 */function show(a,b,c){console.log(我是show方法,a,b,c)return ab;}// 调用方法//调用方法时 形参个数如果和实参个数对不上不会有异常show();show(你好)show(1,2);let add show(1,2,3…

君方智能设计平台-事务管理技术方案

1.背景介绍 事务处理是指对数据进行一组操作,这些操作要么全部成功,要么全部失败,以确保数据的一致性和完整性。软件的事务管理主要实现方案主要涉及以下几个方面: (1)数据一致性:在CAD软件中…

JCR一区 | Matlab实现GAF-PCNN-MATT、GASF-CNN、GADF-CNN的多特征输入数据分类预测/故障诊断

JJCR一区 | Matlab实现GAF-PCNN-MATT、GASF-CNN、GADF-CNN的多特征输入数据分类预测/故障诊断 目录 JJCR一区 | Matlab实现GAF-PCNN-MATT、GASF-CNN、GADF-CNN的多特征输入数据分类预测/故障诊断分类效果格拉姆矩阵图GAF-PCNN-MATTGASF-CNNGADF-CNN 基本介绍程序设计参考资料 分…

npm 淘宝镜像证书过期,错误信息 Could not retrieve https://npm.taobao.org/mirrors/node/latest

更换 npm 证书 问题描述报错原因更换步骤1 找到 nvm 安装目录2 发现证书过期3 更换新地址4 保存后,重新安装成功 问题描述 在使用 nvm 安装新版本时,未成功,出现报错: Could not retrieve https://npm.taobao.org/mirrors/node/l…

Python酷库之旅-第三方库Pandas(009)

目录 一、用法精讲 19、pandas.read_xml函数 19-1、语法 19-2、参数 19-3、功能 19-4、返回值 19-5、说明 19-6、用法 19-6-1、数据准备 19-6-2、代码示例 19-6-3、结果输出 20、pandas.DataFrame.to_xml函数 20-1、语法 20-2、参数 20-3、功能 20-4、返回值 …

AI Earth ——开发者模式案例10:基于 CNN 的 AI 分类模型开发

基于 CNN 的 AI 分类模型开发 本案例主要介绍如何快速利用 AIE Python SDK 创建机器学习建模流程。我们主要使用到 Python SDK的Machine Learning Proxy 模块(下文简称 AieMlProxy )。该模块涵盖了一系列用户与训练集群之间的交互接口,包括:鉴权、数据加载、训练任务提交、…

Shell Expect自动化交互(示例)

Shell Expect自动化交互 日常linux运维时,经常需要远程登录到服务器,登录过程中需要交互的过程,可能需要输入yes/no等信息,所以就用到expect来实现交互。 关键语法 ❶[#!/usr/bin/expect] 这一行告诉操…

MySQL之备份与恢复和MySQL用户工具(一)

备份与恢复 备份脚本化 为备份写一些脚本是标准做法。展示一个示例程序,其中必定有很多辅助内容,这只会增加篇幅,在这里我们更愿意列举一些典型的备份脚本功能,展示一些Perl脚本的代码片段。你可以把这些当作可重用的代码块&…

io流 多线程

目录 一、io流 1.什么是io流 2.流的方向 i.输入流 ii.输出流 3.操作文件的类型 i.字节流 1.拷贝 ii.字符流 ​3.字符流输出流出数据 4.字节流和字符流的使用场景 5.练习 6.缓冲流 1.字节缓冲流拷贝文件 2.字符缓冲流特有的方法 1.方法 2.总结 7.转换流基本用法…

数字信号处理及MATLAB仿真(3)——量化的其他概念

上回书说到AD转换的两个步骤——量化与采样两个步骤。现在更加深入的去了解以下对应的概念。学无止境,要不断地努力才有好的收获。万丈高楼平地起,唯有打好基础,才能踏实前行。 不说了,今天咱们继续说说这两个步骤,首先…

【国产开源可视化引擎Meta2d.js】网格

画布背景网格 在线体验: 乐吾乐2D可视化 示例: // 设置默认缺省网格属性 meta2d.store.options.grid true; // 开启 meta2d.store.options.gridColor eeeeee; // 网格线条颜色 meta2d.store.options.gridSize 10; // 格子大小// 设置单个图纸的网格…

pnpm的坑

请问pnpm的两个坑怎么解决: 第一个坑:没有节省磁盘空间 我已经配置了依赖的存储位置, 但我在项目里pnpm install以后,发现依赖包还是很大, 然后发现里面的链接并不是指向先前配置的依赖存储位置,而是指…

java核心-泛型

目录 概述什么是泛型分类泛型类泛型接口泛型方法 泛型通配符分类 泛型类型擦除分类无限制类型擦除有限制类型擦除 问题需求第一种第二种 概述 了解泛型有利于学习 jdk 、中间件的源码,提升代码抽象能力,封装通用性更强的组件。 什么是泛型 在定义类、接…

VSCode设置好看清晰的字体!中文用鸿蒙,英文用Jetbrains Mono

一、中文字体——HarmonyOS Sans SC 1、下载字体 官网地址:https://developer.huawei.com/consumer/cn/design/resource/ 直接下载:https://communityfile-drcn.op.dbankcloud.cn/FileServer/getFile/cmtyPub/011/111/111/0000000000011111111.20230517…

加装德国进口高精度主轴 智能手机壳「高质量高效率」钻孔铣槽

在当前高度智能化的社会背景下,智能手机早已成为人们生活、工作的必备品,智能手机壳作市场需求量巨大。智能手机壳的加工过程涉及多个环节,包括钻孔和铣槽等。钻孔要求精度高、孔位准确,而铣槽则需要保证槽位规整、深度适宜。这些…

【漏洞复现】TerraMaster TOS exportUser.php 远程命令执行

免责声明: 本文内容旨在提供有关特定漏洞或安全漏洞的信息,以帮助用户更好地了解可能存在的风险。公布此类信息的目的在于促进网络安全意识和技术进步,并非出于任何恶意目的。阅读者应该明白,在利用本文提到的漏洞信息或进行相关测…

Leetcode3195. 包含所有 1 的最小矩形面积 I

Every day a Leetcode 题目来源:3195. 包含所有 1 的最小矩形面积 I 解法1:遍历 设最左、最右、最上、最下的 1 的行号/列号分别为 left、right、top、bottom,则答案为:(right - left 1) * (bottom - top 1)。 代码&#xf…

JAVA 对象存储OSS工具类(腾讯云)

对象存储OSS工具类 import com.qcloud.cos.COSClient; import com.qcloud.cos.ClientConfig; import com.qcloud.cos.auth.BasicCOSCredentials; import com.qcloud.cos.auth.COSCredentials; import com.qcloud.cos.model.ObjectMetadata; import com.qcloud.cos.model.PutObj…

基于java+springboot+vue实现的仓库管理系统(文末源码+lw+ppt)23-499

第1章 绪论 伴随着信息社会的飞速发展,仓库管理所面临的问题也一个接一个的出现,所以现在最该解决的问题就是信息的实时查询和访问需求的问题,以及如何利用快捷便利的方式让访问者在广大信息系统中进行查询、分享、储存和管理。这对我们的现…