【发布时间】:2013-03-11 16:24:12
【问题描述】:
我可以访问一台可以访问 10 个内核的机器——我想实际使用它们。我习惯在自己的机器上做的事情是这样的:
for f in *.fa; do
myProgram (options) "./$f" "./$f.tmp"
done
我想要对 10 个文件执行此操作 - 我们称它们为 blah00.fa、blah01.fa、... blah09.fa。
这种方法的问题是 myProgram 一次只使用 1 个核心,而在多核机器上这样做我会一次使用 1 个核心 10 次,所以我不会使用我的机器发挥了最大的能力。
如何更改我的脚本,使其同时运行我的所有 10 个 .fa 文件?我查看了Run a looped process in bash across multiple cores,但我无法从中获取命令来执行我想要的操作。
【问题讨论】:
-
你试过
gnu parallel?什么不适合你? -
您是否尝试过在该答案中使用 gnu 并行建议?
-
seq 0 10 | parallel myProgram -opt1 -opt2 ./blah{}.fa ./blah{}.tmp -
是的,我尝试使用并行。问题:在有许多内核的机器上,它没有安装,我没有 sudo 访问权限,所以不能并行使用。 :(
-
您无需root即可安装;下载源代码并运行
./configure --prefix=${HOME}; make; make install将其安装在您的主目录中。
标签: linux bash parallel-processing multiprocessing