【发布时间】:2023-03-29 04:21:01
【问题描述】:
我想并行运行大量密集型进程,其中我使用 for 循环遍历不同的参数。类似问题的许多答案都提到可以使用 xargs 来完成并行运行进程,但似乎没有一个人提到如果每个命令的参数发生变化,是否或如何做到这一点。
作为例子(伪代码):
for paramA in 1 2 3
for paramB in 1 2 3
./intensiveCommand $paramA $paramB
end
end
我想并行化 intensiveCommand
或者有没有比使用 xargs 更简单的方法?
【问题讨论】:
-
您可以在命令末尾添加和签名,使用“intensiveCommand”。这将并行运行作业。
-
是的,但这并没有考虑负载,对吧?因此它将不断添加进程,因此它将开始交换并减慢进程。
-
在这种情况下,您可以从 uname 的输出中解析负载平均值并有条件地运行新进程。
标签: bash parallel-processing xargs