如何在多台运行 Ubuntu 操作系统的机器上运行作业

如何在多台运行 Ubuntu 操作系统的机器上运行作业

我需要在特定云中的多台虚拟机中运行一项作业,我有所有虚拟机的 IP 地址,并为所有虚拟机配置了主机名。如何在虚拟机网络中运行命令?请注意,此作业的脚本将作业分为 4 个步骤以并行运行,因为每个步骤都需要 2 个在一台机器上并行运行的线程,现在我需要使用多台机器运行相同的脚本,让线程使用以下命令使用所有这些机器执行并行操作:

./script.py '100 digits number' slaves.hostnames=hostname1,hostname2,hostname3 --slaves 4 --client-threads 2

上述数字是我需要使用所有这些机器来考虑的数字,以减少总体执行时间。

答案1

有几种工具可以实现某种“并行 ssh”。如果你使用 Python,pssh应该没问题。使用以下命令安装它pip

$ sudo pip install pssh  

创建一个 pssh 主机文件,如下所示:

192.168.0.10:22
192.168.0.11:22

然后调用:

$ pssh -h pssh-hosts -l root -A echo "Hi!"

您将被要求输入密码,但您可以使用证书来避免手动输入密码。

查看更多:

http://www.tecmint.com/execute-commands-on-multiple-linux-servers-using-pssh/

重要提示:如果你想并行解决问题,你可能需要 MPI(消息传递接口)。我建议骨髓间充质干细胞。MPI 提供了一种标准的通信方式,可以与多台机器并行协作解决问题。尽管如此,编写快速应用程序来查找素数/因子并不是什么新鲜事。

如果您有多核机器,请使用多线程。但如果您要使用多台计算机,则需要 MPI。

相关内容