Связывание процессов MPI на втором сокете ЦП с помощью MVAPICH2.2

Я использую вычислительные узлы NUMA, где сеть (Mellanox InfiniBand HCA) подключена ко второму сокету процессора (и узлу NUMA). Существует ли какая-либо переменная среды, которая просто связывает все процессы MPI со вторым сокетом ЦП с помощью MVAPICH2.2?

MV2_CPU_BINDING_LEVEL=socket MV2_CPU_BINDING_POLICY=bunch Комбинация не работает, так как она начинает перегруппировку процессов на первом сокете процессора.

Я обычно заканчиваю тем, что использую что-то вроде: -genv MV2_CPU_MAPPING 10:11:12:13:14:15:16:17:18:19:30:31:32:33:34:35:36:37:38:39 (используйте все SMT второго 10-ядерного сокета процессора), но это некрасиво и зависит от количества ядер.

1 ответ

Это не переменная среды, но если вы можете изменить /etc/default/grub в ваших системах вы можете изолировать ядра пакета 0 от планировщика. Пример для ваших 10-ядерных (гиперпоточных) процессоров:

GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT isolcpus=0-19"
Другие вопросы по тегам