Makefile 平行制造的麻烦不总是在一项工作完成后开始另一项工作

Makefile 平行制造的麻烦不总是在一项工作完成后开始另一项工作,makefile,Makefile,我在一个有四个逻辑CPU(如果有必要的话,两个双核CPU)的系统上工作。我正在使用make来并行化12个简单的可并行化任务,并从cron开始执行 调用如下所示: make -k -j 4 -l 3.99 -C [dir] [12 targets] 我遇到的问题是,有时一个作业会完成,但下一个作业不会启动,即使它不应该被负载平均限制器停止。每个目标大约需要四个小时才能完成,我想知道这是否是问题的一部分 编辑:有时一个目标确实失败了,但我使用-k选项使make的其余部分仍然运行。我没有注意到与工作

我在一个有四个逻辑CPU(如果有必要的话,两个双核CPU)的系统上工作。我正在使用make来并行化12个简单的可并行化任务,并从cron开始执行

调用如下所示:

make -k -j 4 -l 3.99 -C [dir] [12 targets]
我遇到的问题是,有时一个作业会完成,但下一个作业不会启动,即使它不应该被负载平均限制器停止。每个目标大约需要四个小时才能完成,我想知道这是否是问题的一部分


编辑:有时一个目标确实失败了,但我使用-k选项使make的其余部分仍然运行。我没有注意到与工作失败和下一份工作没有开始有任何关联。

是否让人认为其中一个目标失败了?如果是这样,它将在运行的作业完成后停止make。您可以使用-k命令它继续运行,即使出现错误。

我会删除'-l'

如果你计划运行这个系统的全部是这个版本,我认为-J4可以满足你的需要

根据我的记忆,如果您运行了其他任何东西(crond?),那么平均负载将超过4

@

我99.9%确定-l不是问题的原因,因为我可以在机器上观察平均负载,它会下降到大约三个,有时甚至低到一个(!),而无需开始下一个作业