Dan*_*iel 5 linux mpi parallelism
假设我有一个 4 核工作站,如果我执行 Linux (Ubuntu) 会做什么
mpirun -np 9 XXX
Run Code Online (Sandbox Code Playgroud)
9 会立即一起跑,还是他们会在 4 后跑 4?
我觉得用9不好,因为剩下的1会让电脑糊涂,(不知道是不是完全糊涂了,还是电脑的“头”来决定4核中哪个核会被使用吗?)或者它会被随机挑选。谁决定调用哪一个核心?
如果我觉得我的cpu还不错,我的ram还可以,足够大,而且我的箱子不是很大。为了充分利用我的 cpu 和 ram,我这样做mpirun -np 8 XXX,甚至mpirun -np 12 XXX.
启动更多线程实际上不会对性能造成太大影响(启动线程的成本小于 1MB),但也可能无济于事。
知道什么会更快地执行的唯一方法是测试它,但使用以下规则作为指导: 至少使用与核心数相同的线程数。此外,如果进程到处都有大量的内存访问,那么拥有更多的线程实际上可能比核心更快(与执行其他指令相比,内存访问非常慢,并且操作系统将用实际执行某些内容来填充时间)否则不必等待)。