Как я могу увеличить лимит памяти 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.
--------------------------------------------------------------------------
Я прочитал ссылку на предупреждающее сообщение, и я сделал это до сих пор;
- присоединять
options mlx4_core log_num_mtt=20 log_mtts_per_seg=4
на/etc/modprobe.d/mlx4_en.conf
, - Убедитесь, что следующие строки написаны на
/etc/security/limits.conf
* soft memlock unlimited
* hard memlock unlimited
- присоединять
session required pam_limits.so
на/etc/pam.d/sshd
- Удостовериться
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
не снимает ограничение на количество заблокированной памяти, а ограничивает размер файлов дампа памяти.