[问题] 为什么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