没有足够的锁定内存(rdma_setup_startup_ring:无法创建 cq)

Not enough locked memory (rdma_setup_startup_ring: cannot create cq)

我对 CentOS 7 上锁定页面中的可用内存数量有疑问。 使用 slurm 分配节点后,当我使用 MPI (mvapich) 启动作业时,遇到以下错误:

Fatal error in MPI_Init:
Other MPI error, error stack:
MPIR_Init_thread(514).......:
MPID_Init(359)..............: channel initialization failed
MPIDI_CH3_Init(401).........:
MPIDI_CH3I_RDMA_init(221)...:
rdma_setup_startup_ring(410): cannot create cq

这似乎是由于缺少锁定内存。但是,它似乎设置为无限制,因为 ulimit -a returns:

core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 254957
max locked memory       (kbytes, -l) unlimited
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 4096
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

使用 sudo 启动 mpirun 时,它正在运行。

问题来自 slurm,它没有检索到 最大锁定内存 的正确值。 salloc -N ulimit -l返回 64 而不是 无限

解决办法是在/etc/init.d/slurm

中加入下面一行
ulimit -l unlimited 

然后停止并重新启动 slurm:

sudo /etc/init.d/slurm stop
sudo /etc/init.d/slurm start