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