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@enflame-d2004-20230516] ui_cmd_cb (mpiexec/pmiserv_pmci.c:51): Launch proxy failed.
[mpiexec@enflame-d2004-20230516] HYDT_dmxu_poll_wait_for_event (lib/tools/demux/demux_poll.c:76): callback returned error status
[mpiexec@enflame-d2004-20230516] HYD_pmci_wait_for_completion (mpiexec/pmiserv_pmci.c:173): error waiting for event
[mpiexec@enflame-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

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

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

下面是libfabric的介绍:
https://blog.csdn.net/ssbandjl/article/details/133248887
其实最后的结果猜测是服务器IP端口设置的缘故,在本机回环测试通过也行
在这里插入图片描述

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

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

相关文章

阶段三:项目开发---大数据系统基础环境准备:任务1:准备系统运行的先决条件

任务描述 知识点: 大数据基础环境准备 重 点: SSH免密码连接 安装配置JDK 安装配置Scala 难 点: 无 内 容: 项目开发测试环境为分布式集群环境,在当前项目中使用多台基于CentOS 64bit 的虚拟机来模拟生产…

Kotlin和Java的一些不同点

1.Kotlin 的变量是没有默认值的(因此要求初始化),Java的成员变量是有默认值的 Java的成员变量: String name; // 默认值是 null int count; // 默认值是 0不过其实 Java 也只是成员变量有默认值,局部变量也是没有默…

Java 应用启动时出现编译错误进程会退出吗?

背景 开发的尽头是啥呢?超超级熟练工! 总结最近遇到的一些简单问题: Java 应用的某个线程,如果运行时依赖的 jar 不满足,线程是否会退出?进程是否会退出?Netty 实现 TCP 功能时,换…

机器学习10大算法

【机器学习】十大算法之一 “朴素贝叶斯” 【机器学习】十大算法之二 “K-means” 【机器学习】十大算法之三 “KNN” 【机器学习】十大算法之四 “SVM” 【机器学习】十大算法之五 “决策树” 【机器学习】十大算法之六 “随机森林” 【机器学习】十大算法之七 “线性回归” 【…

前后端分离:四种开发模式与实践指南

前后端分离:四种开发模式与实践指南 什么是前后端分离 当业务变得越来越复杂或产品线越来越多时,原有的开发模式就无法满足业务需求了。 产品越来越多,展现层的变化越来越快、越来越多,此时应该进行前后端分离的分层抽象&#…

IAST面面观 | 灰盒测试IAST与安全策略制定

灰盒测试IAST可实时监测和分析运行中的应用程序,准确发现安全漏洞和风险,为企业提供更全面、深入的安全洞察。然而,仅仅拥有先进的技术并不足以保障系统安全,合理有效的安全略才是将IAST价值最大化的关键,也能正确指导…

记录问题:解决vscode找不到Python自定义模块,报错No module named ‘xxx‘

1. 背景 我非要用vscode,不用pycharm,哼! 2. 问题 由于 import xx 自定义的模块, python run 的时候会报错 No module named ‘xxx‘ 报错信息: Traceback (most recent call last):File "d:\work\sf_financ…

基于opencv的斜光测距及python实现

1.前言 最近做了一个基于opencv的斜光测距的小项目,东西不多,但是很有意思,值得拿出来学一学。项目里面需要比较精确的定位功能,将前人matlab代码移植到python上,并且做了一些优化,简化逻辑(毕竟我是专业的…

pandas数据分析(7)

组合DataFrame 连接 如果只是要将多个DataFrame粘合在一起,那么concat函数是最佳选择。在默认情况下,concat会将DataFrame按行粘合在一起,同时会将各列自动对齐。 如果想要按列进行粘合,需要将axis设置为1: concat的特…

Nikto扫描器,扫描网站信息

Nikto 是一个功能强大的开源 Web 服务器扫描器,能够检测出 Web 服务器中的常见漏洞和配置错误。下面是如何安装和使用 Nikto 的步骤。 安装 Nikto 在 Ubuntu 22.04 上安装 Nikto: sudo apt update sudo apt install nikto使用 Nikto 进行扫描 基本扫描…

左耳听风_044_43_弹力设计篇之异步通讯设计

你好,我是陈浩网名做耳朵耗子。 在前面的课程中呢,我所说的隔离设计啊,通常都需要对系统做解耦设计,而把一个单体系统做解耦,不单单是要把业务功能拆分出来。 正如前面所说,拆分完之后呢,还会…

制造企业真的需要数字化转型吗?一文讲透:为何做,如何做?

此前拜访了不少制造企业,其以中小型企业居多,在与企业负责人交流数字化转型话题时,感触最多的还是管理者对“数字化转型”的认知。 在数字化转型方面从国家层面到地方政府进行大量的宣传与政策支持,部分行业头部企业也从数字化转…

百度出品_文心快码Comate提升程序猿效率

1.文心快码 文心快码包含指令、插件 和 知识三种功能, 1)指令包含Base64编码、Base64解码、JSON转TS类型、JSON转YAML、JWT解码喂JSON。 2)插件包含 3)指令包含如下功能: 官网链接

风控指标范围

摘要:每天学习一点金融小知识 不同的金融资产具有不同的金融属性,从资产管理角度出发,业务需要制定一系列的指标来对金融产品进行监管,指标维度的制定很多时候取决于金融产品自身的属性。

AI墓地:738个倒闭AI项目的启示

近年来,人工智能技术迅猛发展,然而,不少AI项目却在市场上悄然消失。根据AI工具聚合网站“DANG”的统计,截至2024年6月,共有738个AI项目停运或停止维护。本文将探讨这些AI项目失败的原因,并分析当前AI初创企…

C语言:结构体数组

结构体数组 介绍定义结构体定义结构体数组初始化结构体数组访问和修改结构体数组的元素遍历结构体数组 示例高级用法动态分配结构体数组使用 malloc 动态分配使用 calloc 动态分配 结构体数组作为函数参数结构体数组与指针多维结构体数组使用 typedef 简化结构体定义结构体数组…

ClickHouse概述

ClickHouse概述 文章目录 ClickHouse概述ClickHouse是什么ClickHouse快的理由什么是OLAPClickHouse的特点列式存储DBMS 的功能多样化引擎高吞吐写入能力数据分区与线程级并行 ClickHouse的应用合适场景不适合场景 ClickHouse是什么 ClickHouse 是俄罗斯的 Yandex 于 2016 年开…

ubuntu20.04配置调试工具

1.准备工作&#xff1a;安装g或者gdb sudo apt updatesudo apt install gg --versionsudo apt install gdbgdb --version 2.配置环境 2.1在本地新建一个main.cpp #include <iostream> #include <vector> #include <string>using namespace std;int main(…

MySQL资讯|2024年MySQL第一个长期支持版本8.4发布

&#x1f4eb; 作者简介&#xff1a;「六月暴雪飞梨花」&#xff0c;专注于研究Java&#xff0c;就职于科技型公司后端工程师 &#x1f3c6; 近期荣誉&#xff1a;华为云云享专家、阿里云专家博主、腾讯云优秀创作者、ACDU成员 &#x1f525; 三连支持&#xff1a;欢迎 ❤️关注…

【漏洞复现】Emlog Pro 2.3.4——任意用户登入、会话持久化(CVE-2024-5044)

声明&#xff1a;本文档或演示材料仅供教育和教学目的使用&#xff0c;任何个人或组织使用本文档中的信息进行非法活动&#xff0c;均与本文档的作者或发布者无关。 文章目录 漏洞描述漏洞复现 漏洞描述 漏洞编号&#xff1a;CVE-2024-5044 漏洞成因&#xff1a; 在Emlog Pro …