我有一个包含多个阶段的数据处理管道,目前使用自定义驱动程序和管道框架。我真的很想使用类似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
个工作。
答案 0 :(得分:0)
我不确定你的想法,但是make会为它构建的每个目标运行不同的配方,无论它们是否并行运行。每个人都可以拥有和你一样多的差异。例如:
all: t1 t2 t3 t4 t5 t6 t7 t8 t9
t%:
TARGET=$@ run some command
TARGET
的值将设置为正在构建的目标的名称。