我有一个编译和运行相当大的程序集的生成文件,以产生输出。有些程序是单线程的,有些程序使用 OpenMP 在多个 CPU 内核上运行。相当多的任务需要很长时间才能运行,所以传递一个“-j”选项来让单线程程序并行运行会很有用。但是,OpenMP 任务已经使用了所有可用的 CPU 内核(以及相当多的 RAM),因此它们应该一次运行一个。
是否有一个标志可以附加到 makefile 中使用 OpenMP 的任务,以防止其他任务与其并行运行,同时允许其他任务在其他时间并行运行?我认为 .NOTPARALLEL 特殊目标完全禁用了所有并行性。