什么是在Linuxnetworking中分发命令/任务的简单解决scheme?

可能重复:
Linux – 一次在许多机器上运行相同的命令

情况如下:

  • 我们有一个由15台四核机器组成的实验室,每台机器运行Ubuntu Linux。
  • 有一个我需要运行的video编码软件,但一个工作(即一个configuration一个video)需要很长时间(几个小时)。
  • 机器的configuration(约15个)和约20个video的configuration大致相同。

所以我想通过集中存储来访问video,但让每台机器都运行编码过程。

在其最基本的forms中,使用的命令是这样的

./encode -d default.conf -f local.conf -i inputFile.yuv 

现在的问题是:是否有任何软件可以用来在实验室机器上轻松部署这些任务? 我在想:

  • 有一个派遣工作的主人,例如“告诉机器1运行/home/user/encode -i input1.yuv ,然后/home/user/encode -i input2.yuv等等”
  • 能够看到哪个节点正在处理哪个任务以及多长时间
  • 能够停止任务或在失败后重试

我不限于CLI,也可以是GUI应用程序。 有任何想法吗?

考虑安装TORQUE 。 它的调度程序并不是那里最好的,但对于这种用法来说已经足够了。 如果您以后需要额外的function,您可以用毛伊来replace调度程序。

TORQUE列表中唯一的function是在失败时自动重试作业。 但是你应该可以在TORQUE服务器上自己编写脚本,通过检查它的qstat命令的输出来知道哪些作业正在运行,以及你的输出文件夹的内容知道什么是完成的。

如果您需要更多的解决scheme和更多的选项,请考虑Sun Grid Engine(SGE),现在称为Oracle Grid Engine。

http://en.wikipedia.org/wiki/Oracle_Grid_Engine