使用 Screen 和 Bash 进行多重处理

2024-01-21

使用 SSH 在学校的不同节点上运行 python 脚本。每个节点有 8 个核心。我使用 GNU Screen 能够从单个进程中分离出来。

是否更可取的是:

  1. 运行几个不同的屏幕会话。
  2. 运行单屏进程并使用&在 bash 终端中。

它们相等吗?

我不确定我的实验是否编码不好并且花费了过多的时间(很可能)或者我选择使用 1. 大大减慢了过程。谢谢你!


With bash我想你正在做这样的事情(假设/home在网络挂载下):

#!/bin/bash    

for i in {1..$NUM_NODES}
do
    ssh node$i 'python /home/ryan/my_script.py' &
done

从单个脚本后面启动此脚本screen会工作得很好。启动多个会话screen没有提供任何性能提升,但增加了启动多个屏幕的额外复杂性。

请记住,有更好的方法可以在集群中分配负载(例如,如果其他人用完了所有的 Node7,您需要一种方法来检测它并将您的作业发送到其他地方)。我合作过的大多数集群都有Torque https://en.wikipedia.org/wiki/TORQUE_Resource_Manager, Maui https://en.wikipedia.org/wiki/Maui_Cluster_Scheduler or the qsub命令已安装。我建议看看这些。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Screen 和 Bash 进行多重处理 的相关文章

随机推荐