首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检测pdsh会话

检测pdsh会话
EN

Unix & Linux用户
提问于 2023-01-20 19:44:09
回答 1查看 25关注 0票数 0

在我们的集群中,我们使用LMOD动态加载特定的预装模块(比如PyTorch或其他一些科学包)。最重要的是,我想使用DeepSpeed框架运行一些代码,这允许优化运行跨节点的分布式代码。在引擎盖下,它使用pdsh。我遇到的问题是,ssh会话当然不会加载我已经在主节点中加载的模块,但是这会导致问题,因为这样它就无法找到一些需要的库,比如Python。

例如:假设我请求一个具有多个节点的交互式SLURM作业。在主节点中,我加载模块PyTorch+Python和pdsh。

代码语言:javascript
复制
module load PyTorch/1.12.0-foss-2022a-CUDA-11.7.0
module load pdsh/2.34-GCCcore-11.3.0

然后,我可以运行一些深度命令,它将对所有节点启动并行ssh会话。但是,因为这些是这些节点上的新会话,所以没有加载上面指定的模块。将这些module load命令添加到我的.bashrc中是非常必要的,但这意味着它们总是被加载的,这可能是我不想要的。

因此,我正在寻找一种方法来检测会话是否由pdsh设置。pdsh是否设置了一些可以在.bashrc中使用的变量,以便只在该条件为真时使用module load

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2023-01-26 10:39:07

受hostname 24‘S注释的启发,我解决了我的问题,只有当ssh被加载到具有以gpu开头的主机名的特定节点时,我才会加载模块。

代码语言:javascript
复制
if [[ $(hostname) == gpu* ]]; then
    module load PyTorch/1.12.0-foss-2022a-CUDA-11.7.0;
    module load pdsh/2.34-GCCcore-11.3.0;
fi
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/732511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档