從GNU的文檔製作:http://www.gnu.org/software/make/manual/make.html#Parallel如何在多核Linux機器上使用GNU make -max-load?
當負載較重的系統,你可能會想跑得比當輕載它 的就業機會較少。您可以使用'-l'選項 tell make根據 負載平均值限制一次運行的作業數量。 '-l'或' - max-load'選項後面跟着一個浮點數 。例如,
-l 2.5
如果負載平均值超過2.5,則不會讓多個作業啓動。 沒有以下數字的'-l'選項將刪除裝載限制,如果其中一個 與以前的'-l'選項一起給出。
更確切地說,當make開始一個工作,並且它已經有至少一個工作正在運行時,它檢查當前的平均負載;如果它是 不低於'-l'所給出的限制,則等待,直到負載 平均值低於該限制,或直到所有其他作業完成。
從Linux手冊頁的正常運行時間:http://www.unix.com/man-page/Linux/1/uptime/
系統負載均衡是是 無論是在可運行或不間斷狀態的平均進程數。可運行的 狀態中的進程使用CPU或等待使用CPU。處於不可中斷狀態的進程 正在等待某些I/O訪問,例如等待 用於磁盤。平均值是在三個時間間隔內進行的。 負載平均值未針對系統中的CPU數量進行標準化, 因此負載平均值1表示單個CPU系統在4 CPU系統上加載所有 時間,這意味着它在75%的時間內處於空閒狀態。
我有一個平行的makefile,我想要做的明顯的事情:已經做出繼續增加處理,直至我得到充分的CPU使用率,但我不會引起抖動。
今天許多(所有?)機器都是多核的,所以這意味着平均負載不是應該檢查的數量,因爲這個數字需要根據內核數量進行調整。
這是否意味着GNU make的--max-load(aka -l)標誌現在是無用的?那些在多核機器上運行並行makefile的人們在做什麼?