[問題] 為什麼make -j建議加偶數

作者: sakishil (亞凱)   2020-07-23 15:19:14
開發平台(Platform): (Ex: Win10, Linux, ...)
Linux
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
gcc
問題(Question):
1.為什麼編譯的process的數量建議是偶數 (make -j even_number)
2.為什麼進行數值運算MPI的process數量也是建議偶數(mpirun -np even_number)
之前用奇數被烱
作者: sanctitysky (常自在)   2020-07-23 17:34:00
我猜因為hyper-threading 不過也還好就編譯而已
作者: dces4212 (flawless)   2020-07-23 17:40:00
同1樓,可能locality比較好的關係。不過好奇跑多個recipe時多一個vcpu跑不是算增加效率嗎?掛?尤其是單一recipe裡面command很多時
作者: MartinJ40 (Martin J-40)   2020-07-23 17:59:00
你看過CPU設計嘛 thread和core都是dualL2上面偶數個L1 L3上面偶數個L2所以當你奇數的時候cache會多一份在另一個core我是覺得還好啦 跟GPGPU的batch塞滿問題來比CPU這種問題到不是很需要在意
作者: k2450 (要呷賽了...)   2020-07-24 12:06:00
之前在公司一直都make -j8 要報廢時才發現是4c4t...
作者: a58524andy (a58524andy)   2020-07-24 14:59:00
有聽過j數字比thrd多點沒關係的說法因為可能有些在等io之類 那他還有其他事情做
作者: lc85301 (pomelocandy)   2020-07-24 16:19:00
其實吧我不太相信有多大差別耶

Links booklink

Contact Us: admin [ a t ] ucptt.com