gpt4 book ai didi

python - srun(或mpirun)如何同步不同集群节点上的执行环境?

转载 作者:行者123 更新时间:2023-12-01 09:13:28 29 4
gpt4 key购买 nike

这个问题很容易用例子来解释。我正在运行一个 myscript.py 虚拟 Python-MPI 脚本,其内容就在下面两行。

from subprocess import call
call(['which', 'python'])

默认情况下,MPI 集群节点可见的 Python 可执行文件是 /usr/bin/python。我在主目录中安装了另一个 Python 版本,可以通过运行 source myhome/python35tf/bin/activate 来激活它。

现在我登录到集群中的主节点 (N-0) 并在 shell 中运行以下两个命令。

source myhome/python35tf/bin/activate
srun -N 4 python myscript.py

这会产生以下输出。

/path-to-users/myhome/python35tf/bin/python
/path-to-users/myhome/python35tf/bin/python
/path-to-users/myhome/python35tf/bin/python
/path-to-users/myhome/python35tf/bin/python

至少有一个输出指向 python35tf Python 可执行文件,因为我在 N-0 节点中激活了它。但为什么所有其他节点也在其环境中看到相同的 Python 可执行文件呢?他们不是应该打印 /usr/bin/python 吗? srun如何保证所有节点的执行环境与N-0的执行环境同步?

[更新]这里有一个相关问题:How does OpenMPI Secure SHell into all the compute nodes from the master node?

最佳答案

默认情况下,srun 命令将所有用户环境传播到计算节点。您可以使用 --export 参数控制要导出的变量。

关于python - srun(或mpirun)如何同步不同集群节点上的执行环境?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51452723/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com