各位好,目前为了做测试,希望可以在计算节点计算的过程中控制核数与使用的内存。
通过与服务器工程师沟通得知,每个核会平均分配内存数。之前尝试过4核、32G进行计算,但实际计算过程中使用的是8核、32G,因为那台服务器每核会分配4G的内存。
目前我的疑惑点在于:
1、如何固定计算时调用的内存数?
目前我尝试过的方法如下:
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=4
#SBATCH --mem=16G
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=4
#SBATCH --mem-per-cpu=4G
2、如何查看实际内存的使用率?
目前我尝试过的方法如下:
ssh <usrname>@<nodelist> # 登录计算节点
top # 第一种查看内存的方法
ps -u<usrname> -o %cpu,rss,args # 第二种查看内存的方法
scontrol show job <jobID>
# 打印任务完成后 SLURM 的内存使用情况
echo "任务完成,统计内存使用情况:"
echo "----------------------------------------"
sacct -j $SLURM_JOBID --format=JobID,AllocCPUs,ReqMem,MaxRSS
echo "----------------------------------------"
真的好困惑,感觉设置内存也没什么特殊的问题,但是查看实际调用的内存又往往核设定的内存不一致。
恳请各位帮忙!!!!
相似问题