同时运行多个程序或命令时出现问题

同时运行多个程序或命令时出现问题

我遇到了一个问题,因为我必须使用不同的数据执行相同的程序近 1700 次。该程序使用迭代进行多次计算,大约 5 小时后获得答案。问题是今天早上我创建了一个 bash 脚本,它在不同的目录中移动并使用 执行程序nohup ./name_of_the-program >1&,但是当我运行它时,我的服务器因这些命令而崩溃,我必须手动重新启动它(我认为它们是当其他人完成时执行)。我怎样才能运行它?我可以使用 3 个不同的 Linux 服务器,其中我可以同时运行 16、16 和 20 个。先感谢您。

答案1

GNU Parallel 就是为这种事情而构建的。

在一台服务器上启动tmux

tmux

确保您可以ssh连接到 server1、server2 和 server3。

然后运行:

cat 1700_arguments |
  parallel --dry-run --joblog my.log -S server1,server2,server3 name_of_the-program

当要运行的命令看起来正确时,删除--dry-run.

然后断开与服务器的连接(用于tmux at重新连接)。

有了它,--joblog您将能够恢复或重新运行失败的作业。

要到达正确的目录,您可能需要使用--wd ..

相关内容