Как я могу увеличить лимит памяти OpenFabrics для заданий Torque?

Когда я запускаю работу MPI через InfiniBand, я получаю следующее беспокойство. Мы используем Torque Manager.

--------------------------------------------------------------------------
WARNING: It appears that your OpenFabrics subsystem is configured to only
allow registering part of your physical memory.  This can cause MPI jobs to
run with erratic performance, hang, and/or crash.

This may be caused by your OpenFabrics vendor limiting the amount of
physical memory that can be registered.  You should investigate the
relevant Linux kernel module parameters that control how much physical
memory can be registered, and increase them to allow registering all
physical memory on your machine.

See this Open MPI FAQ item for more information on these Linux kernel module
parameters:

http://www.open-mpi.org/faq/?category=openfabrics#ib-locked-pages

Local host:              host1

Registerable memory:     65536 MiB

Total memory:            196598 MiB

Your MPI job will continue, but may be behave poorly and/or hang.

--------------------------------------------------------------------------

Я прочитал ссылку на предупреждающее сообщение, и я сделал это до сих пор;

  1. присоединять options mlx4_core log_num_mtt=20 log_mtts_per_seg=4 на /etc/modprobe.d/mlx4_en.conf,
  2. Убедитесь, что следующие строки написаны на /etc/security/limits.conf
    • * soft memlock unlimited
    • * hard memlock unlimited
  3. присоединять session required pam_limits.so на /etc/pam.d/sshd
  4. Удостовериться ulimit -c unlimited не комментируется /etc/init.d/pbs_mom

Может ли кто-нибудь помочь мне узнать, что мне не хватает?

1 ответ

Решение

Ваш mlx4_core параметры позволяют для регистрации 2^20 * 2^4 * 4 KiB = 64 GiB только. С 192 ГБ физической памяти на узел и учитывая, что рекомендуется иметь как минимум вдвое больше регистрируемой памяти, вы должны установить log_num_mtt до 23, что увеличило бы ограничение до 512 ГиБ - ближайшая мощность двух больше или равна удвоенному объему оперативной памяти. Обязательно перезагрузите узел (ы) или выгрузите, а затем перезагрузите модуль ядра.

Вы также должны представить простой скрипт задания Torque, который выполняется ulimit -l чтобы проверить ограничения на заблокированную память и убедиться, что такого ограничения нет. Обратите внимание, что ulimit -c unlimited не снимает ограничение на количество заблокированной памяти, а ограничивает размер файлов дампа памяти.

Другие вопросы по тегам