我正在使用 NUMA 计算节点,其中网络(Mellanox InfiniBand HCA(连接到第二个 CPU 插槽(和 NUMA 节点(。 是否有任何环境变量可以简单地将所有 MPI 进程绑定到MVAPICH2.2的第二个 CPU 插槽?
MV2_CPU_BINDING_LEVEL=socket MV2_CPU_BINDING_POLICY=bunch
组合不起作用,因为它开始重新组合进程 在第一个 CPU 插槽上。
我通常最终使用类似的东西:-genv MV2_CPU_MAPPING 10:11:12:13:14:15:16:17:18:19:30:31:32:33:34:35:36:37:38:39
(使用第二个 10 核 CPU 插槽的所有 SMT(,但这很丑陋,并且取决于内核数量。
这不是环境变量,但如果能够修改系统上的/etc/default/grub
,则可以将包 0 上的核心与调度程序隔离。 10 核(超线程(CPU 的示例:
GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT isolcpus=0-19"