2011-12-22 61 views
0

我遇到的一个常见问题是必须运行一些具有50个左右不同参数的脚本。在过去,我喜欢写东西(例如)适用于一台机器的qsub?

for i in `seq 1 50` 
do 
    ./myscript $i 
done 

在当今时代,虽然,我所有的机器可以同时处理4个或8个线程。这些脚本不是多线程的,所以我想要做的就是一次运行4或8个参数,并且在老的完成时自动启动新的作业。我可以自己安装一个杂乱的系统(并且在过去),但是我怀疑必须有一个linux实用程序来做到这一点。有什么建议么?

+0

sudo apt-get install gridengine – bmargulies 2011-12-22 03:32:10

回答

1

GNU parallel这样做。有了它,你的例子变成:

parallel ./myscript -- `seq 1 50` 
+0

谢谢,这正是我想要的。应该是:parallel -j 4 ./myscript --' seq 1 50' 虽然 – 2012-01-12 17:30:51

+0

糟糕,无法在工作中测试它。修正了这个例子。 -j的缺省值是内核的数量,所以这不是严格需要的。 – 2012-01-12 18:32:38

+0

参数必须在命令行中的' - '后面指定,而不是通过管道连接。另外,在我上面的例子中,它应该是'seq 1 50'。 – 2012-01-12 21:55:13

相关问题