我如何仅在列表中的目标上在makefile中使用.NOTPARALLEL?

问题描述 投票:0回答:1

我使用make执行复杂的计算,其中涉及多个运行不同程序的程序,其计算结果相互依赖。在这些运行中,有多次执行高度优化/矢量化/多线程程序,以及多次执行单线程python脚本。所以Makefile有这部分:

slow_target/%: fast_target/%
   python $<
   #run of the unparalleled single-threaded python program

fast_target/%: #some dependencies for each %
   #run of the multi-core paralleled program

[fast_target/%可以存储在变量中,但不能手工枚举(有数十种)。

我想依次计算所有fast_target/%,但并行计算其他目标。怎么做?

P.S。这个问题有点类似于How can I use .NOTPARALLEL in makefile only on specific targets?

makefile gnu-make
1个回答
0
投票

一种可能的方法是在配方中的文件级别上使用同步。它当然不是最好的(因为它仍然会消耗make的工作),但不应通过运行n

© www.soinside.com 2019 - 2024. All rights reserved.