PBS:两个节点上的作业只使用一个内存

时间:2015-02-23 13:33:37

标签: cluster-computing pbs

我正在尝试使用MPI在集群上运行作业(python代码)。每个节点上有63GB的可用内存。 当我在一个节点上运行它时,我指定PBS参数(此处仅列出相关参数):

#PBS -l mem=60GB
#PBS -l nodes=node01.cluster:ppn=32
time mpiexec -n 32 python code.py

比工作得好。

由于PBS手册页说mem是每个整个作业的内存,我尝试在两个节点上运行它时的参数是

#PBS -l mem=120GB
#PBS -l nodes=node01.cluster:ppn=32+node02.cluster:ppn=32
time mpiexec -n 64 python code.py

这不起作用(qsub: Job exceeds queue resource limits MSG=cannot satisfy queue max mem requirement)。即使我设置mem=70GB(例如系统需要更多内存),它也会失败。 如果我在尝试使用两个节点时设置mem=60GB,我会得到

=>> PBS: job killed: mem job total xx kb exceeded limit yy kb.

我也尝试使用pmempmem=1875MB),但没有成功。

我的问题是:如何使用整个120GB的内存?

1 个答案:

答案 0 :(得分:2)

Torque / PBS忽略mem资源,除非作业使用单个节点(参见here):

  

作业使用的最大物理内存量。 (在Darwin,Digital Unix,Free BSD,HPUX 11,IRIX,NetBSD和SunOS上忽略。如果节点数不是1,则在Linux上也会被忽略。在AIX和HPUX 10上未实现。)< / p>

您应该使用限制每个作业进程的内存pmem资源。使用ppn=32时,您应将pmem设置为1920MB,以便每个节点获得60 GB。在这种情况下,您应该注意pmem不允许在节点上运行的进程之间以mem的方式灵活地分配内存(因为后者被视为聚合值而pmem }适用于每个流程。)