我有一個makefile,編譯並運行一個相當大的程序集,以產生輸出。有些程序是單線程的,有些使用OpenMP在多個CPU內核上運行。相當一部分任務需要很長時間才能運行,所以傳遞一個「-j」選項以使單線程程序能夠並行運行會很有用。但是,OpenMP任務已經使用了所有可用的CPU核心(以及相當多的RAM),因此它們應該一次運行一個。運行使用單線程和多線程食譜的混合
是否有一個標誌可以附加到在makefile中使用OpenMP的任務,以防止其他任務與其並行運行,同時允許其他任務在其他時間並行運行?我認爲.NOTPARALLEL特殊目標完全禁用了所有的並行性。
http://savannah.gnu.org/patch/?5108正是我正在尋找的,但還沒有被納入GNU make。歡迎進一步的想法。 – user1649641