linux - 如何增加 Torque 作业的 OpenFabrics 内存限制?

标签 linux mpi ulimit torque ofed

当我通过 InfiniBand 运行 MPI 作业时,出现以下磨损情况。我们使用扭矩管理器。

--------------------------------------------------------------------------
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. /etc/modprobe.d/mlx4_en.conf 上附加选项 mlx4_core log_num_mtt=20 log_mtts_per_seg=4
  2. 确保以下行写入 /etc/security/limits.conf
    • * 软内存锁无限制
    • * 硬内存锁无限制
  3. /etc/pam.d/sshd 上附加 session 所需的 pam_limits.so
  4. 确保 /etc/init.d/pbs_mom 上的 ulimit -c unlimited 未注释

谁能帮我找出我缺少的东西吗?

最佳答案

您的 mlx4_core 参数仅允许注册 2^20 * 2^4 * 4 KiB = 64 GiB。每个节点有 192 GiB 物理内存,并且建议至少拥有两倍的可注册内存,您应该将 log_num_mtt 设置为 23,这会将限制增加到 512 GiB - 最接近的幂两个大于或等于 RAM 量的两倍。请务必重新启动节点或卸载然后重新加载内核模块。

您还应该提交一个执行ulimit -l 的简单 Torque 作业脚本,以验证锁定内存的限制并确保不存在此类限制。请注意,ulimit -c unlimited 不会取消锁定内存量的限制,而是取消核心转储文件大小的限制。

关于linux - 如何增加 Torque 作业的 OpenFabrics 内存限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17755433/

相关文章:

linux - 从 Linux 用户空间检测修改过的文件

c++ - 从多个并行可执行文件写入单个文件的最佳方法

linux - "ulimit -s unlimited"有什么作用?

linux - 为什么我的 ulimit 设置在 shell 中被忽略了?

python - apt-get 安装不同的 python 版本

linux - Linux 中的 Pascal Synaser - SendString 问题 - 在 Windows 中工作正常

c - MPI 中的并行 for 循环?

linux - gdb: 虚拟内存耗尽

linux - crontab 中没有 mdadm -D 输出

c++ - 如何使用 MPI 发送 3D 数组的切片?