科学计算, 生活

超算提交任务时CPU数量的选取

超算提交任务的相关命令参考:Linux的常用命令超算中作业管理系统PBS/LSF/Slurm的常用命令。本篇讨论PBS提交任务时CPU数量的选取,也就是 .sh 或 .pbs 文件中 “ppn” 的大小。其中,“ppn”代表“processors per node”。

如果使用的是某个软件,那么按软件的要求配置 CPU 数量即可。

如果是自定义程序,且程序整体是串行/非并行的,那么指定一个核计算即可,这时候性价比是最高的,即“#PBS -l nodes=1:ppn=1”。虽然多核运算时,有些代码的底层算法有一定程度的加速,但加速的比例并没有按CPU数量成倍增加。如果不清楚某个程序并行的能力,可以用单核、双核、三核等配置分别进行测试,并记录计算时间。

如果内存不足导致的报错,可以适当提高单任务的 CPU 核数。一般来说,单核 CPU 运行时配置的内存为 4G(具体以服务器商家提供的信息为准),那么双核 CPU 运行时配置的内存为 8G。另外,有的程序内存要求会比较高,但少 CPU 数量/小内存运行时也不报错,这有可能是因为虚拟内存(磁盘)在起作用,但磁盘的访问速度会慢很多,这种情况下会导致 CPU 长时间等待数据,运行时间会特别长,反而增加了计算成本,计算时间甚至可能会 10 倍以上的增加。另外,如果是并行程度比较高的程序,单核运行的速度也比多核运行速度慢很多。总的来说,对于内存要求比较高的程序,或者并行程度比较高的程序,建议是提前使用不同 CPU 数量进行小规模的时间测试。

附:

双核 CPU 运行的 PBS 文件 a.sh 为

#!/bin/sh
#PBS -N task
#PBS -l nodes=1:ppn=2
python a.py

四核 CPU 运行的 PBS 文件 a.sh 为

#!/bin/sh
#PBS -N task
#PBS -l nodes=1:ppn=4
python a.py
194 次浏览

【说明:本站主要是个人的一些笔记和代码分享,内容可能会不定期修改。为了使全网显示的始终是最新版本,这里的文章未经同意请勿转载。引用请注明出处:https://www.guanjihuan.com

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

Captcha Code