作者sakishil (亞凱)
看板C_and_CPP
標題[問題] 為什麼make -j建議加偶數
時間Thu Jul 23 15:19:14 2020
開發平台(Platform): (Ex: Win10, Linux, ...)
Linux
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
gcc
問題(Question):
1.為什麼編譯的process的數量建議是偶數 (make -j even_number)
2.為什麼進行數值運算MPI的process數量也是建議偶數(mpirun -np even_number)
之前用奇數被烱
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.164.216.112 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1595488756.A.F43.html
※ 編輯: sakishil (1.164.216.112 臺灣), 07/23/2020 15:20:50
1F:推 sanctitysky: 我猜因為hyper-threading 不過也還好就編譯而已 07/23 17:34
2F:推 dces4212: 同1樓,可能locality比較好的關係。不過好奇跑多個 07/23 17:40
3F:→ dces4212: recipe時多一個vcpu跑不是算增加效率嗎?掛? 07/23 17:41
4F:→ dces4212: 尤其是單一recipe裡面command很多時 07/23 17:42
5F:推 MartinJ40: 你看過CPU設計嘛 thread和core都是dual 07/23 17:59
6F:→ MartinJ40: L2上面偶數個L1 L3上面偶數個L2 07/23 17:59
7F:→ MartinJ40: 所以當你奇數的時候cache會多一份在另一個core 07/23 18:00
8F:→ MartinJ40: 我是覺得還好啦 跟GPGPU的batch塞滿問題來比 07/23 18:00
9F:→ MartinJ40: CPU這種問題到不是很需要在意 07/23 18:01
10F:推 k2450: 之前在公司一直都make -j8 要報廢時才發現是4c4t... 07/24 12:06
11F:→ a58524andy: 有聽過j數字比thrd多點沒關係的說法 07/24 14:59
12F:→ a58524andy: 因為可能有些在等io之類 那他還有其他事情做 07/24 14:59
13F:推 lc85301: 其實吧我不太相信有多大差別耶 07/24 16:19