使用make -j的工作者配置

时间:2016-12-03 04:34:44

标签: gnu-make

我有一个包含多个阶段的数据处理管道,目前使用自定义驱动程序和管道框架。我真的很想使用类似make的东西,但我需要使用并行功能来提高效率。

我的问题是,是否可以对make -j使用的工作人员进行任何配置?

例如,如果用户运行make -j8,我希望8个进程中的每个进程使用稍微不同的环境。

目前我使用MATLAB进行自定义设置,我知道MATLAB的并行处理工具箱允许工作人员设置/拆卸功能。

以下是一个例子:

all: t1 t2 t3 t4 t5 t6 t7 t8 t9

t%:
    $APP args

$APP生成的每个进程的-j不同。

为什么我要这个?在这种情况下,我有一个$APP不能同时运行多次,因此我想创建一个池:$APP1$APP2$APP3,等,并向他们分发make个工作。

1 个答案:

答案 0 :(得分:0)

我不确定你的想法,但是make会为它构建的每个目标运行不同的配方,无论它们是否并行运行。每个人都可以拥有和你一样多的差异。例如:

all: t1 t2 t3 t4 t5 t6 t7 t8 t9

t%:
        TARGET=$@ run some command

TARGET的值将设置为正在构建的目标的名称。