12.14 PWFA¶
12.14.1 概况¶
- PWFA 实验租用 Slurm 集群的公共计算平台资源来完成相关计算任务,具体资源如下:
| 资源类型 | 具体资源 | 说明 |
|---|---|---|
| 登录节点 | pvm057 | PWFA 专用登录节点 |
| Slurm | spub partition的计算节点 | spub[001-016]和gpu036,具备最高使用优先级 |
| home目录 | /ihepfs/pwfa/user/{username} | 配套存储 |
| 工作目录 | /ihepfs/pwfa/data/ | 配套存储 |
12.14.2 Slurm 集群使用简介¶
申请集群帐号¶
- 帐号申请参考 4.1 账号申请
登录集群¶
- 使用 ssh 命令登录集群,其中
<user_name>为集群帐号
# 通用登录节点 lxlogin
ssh <user_name>@lxlogin.ihep.ac.cn
# 专用登录节点 pvm057
ssh <user_name>@pvm057.ihep.ac.cn
使用集群¶
- 两种方式使用集群:
- 交互式:使用专用登录节点 pvm057,可用于程序调试
- 提交作业:使用 Slurm 集群作业提交命令
sbatch,在后台运行已调试好的程序- 作业可提交到专用分区 pwfadebug,也可以提交到共享分区 spub
- 更详细的集群使用方法请参考 9.1.2 Slurm 作业
12.14.3 可使用的计算资源¶
- PWFA 实验租用公共计算平台服务,目前可使用的计算资源均在 Slurm 集群中,可分为三类
| Partition | 节点 | 功能 | 说明 |
|---|---|---|---|
| login | pvm057 | 专用登录节点 | 可使用ssh命令登录,用于前台命令行交互 |
| pwfadebug | pvm058 | 专用计算节点 | sbatch 作业提交方式、后台计算 |
| spub | spub[001-016],gpu036 | 共享计算节点 | sbatch 作业提交方式、后台计算 |
12.14.4 可使用的存储目录¶
- PWFA 实验使用公共计算平台配套的存储目录 /ihepfs,可作为数据及 home 目录使用,具体路径如下表所示,其中
<user_name>代表集群帐号
| 目录 | 功能 | quota 限制 |
|---|---|---|
/ihepfs/pwfa/user/<user_name> |
home目录 | 100GB,20万文件 |
/ihepfs/pwfa/data/<user_name> |
数据目录 | 1TB,20万文件 |
12.14.5 已安装的软件¶
| 软件名称 | 集群安装路径 | 软件官网 |
|---|---|---|
| fbpic | /cvmfs/slurm.ihep.ac.cn/centos7.9/anaconda3/envs/fbpic | github fbpic |
| QuickPIC | /cvmfs/pwfa.ihep.ac.cn/software/QuickPIC-OpenSource-dev/source/qpic.e | github QuickPIC |
12.14.6 Slurm 作业脚本样例¶
- PWFA 用户向 partition pwfadebug 及 spub 提交作业时,需在作业脚本中指定 partition、account 以及 qos 参数,参数具体值为:
| partition | account | qos |
|---|---|---|
| pwfadebug | pwfa | spubpwfa |
| spub | pwfa | spubpwfa |
QuickPIC¶
- 以向partition spub提交作业、运行QuickPIC为例,可提交的作业脚本样例
qpic_sample_job.sh如下所示:
#! /bin/bash
#SBATCH --partition=spub
#SBATCH --account=pwfa
#SBATCH --qos=spubpwfa
#SBATCH --ntasks=32
#SBATCH --mem-per-cpu=4GB
#SBATCH --job-name=quickPIC
module use /cvmfs/slurm.ihep.ac.cn/alma9/modulefiles
module load quickpic/develop
export UCX_NET_DEVICES=mlx5_0:1
export OMP_NUM_THREADS=1
echo $SLURM_NTASKS
mpirun -np $SLURM_NTASKS /cvmfs/slurm.ihep.ac.cn/alma9/software-gcc11/QuickPIC-OpenSource-dev/source/qpic.e
脚本说明
module use /cvmfs/slurm.ihep.ac.cn/alma9/modulefiles和module load quickpic/develop用于加载运行 QuickPIC 所需的软件环境UCX_NET_DEVICES、OMP_NUM_THREADS用于设置运行 QuickPIC 所需的网络及线程环境变量qpic.e是 QuickPIC 的可执行文件,默认的输入文件为qpinput.json,需要存放在作业提交的当前目录下,具体格式和内容可参考 Input File for QuickPIC
- 作业提交命令为
fbpic¶
- 以向partition spub提交作业、运行fbpic为例,可提交的作业脚本样例
fbpic_cpu.sh如下所示:
#! /bin/bash
#=====================================================
# FBPIC CPU job on one spub CPU node
#
# Usage:
# sbatch fbpic_cpu.sh
# sbatch fbpic_cpu.sh fbpic_script.py
#
# Tune --cpus-per-task and THREADS together if you do
# not want to use all 56 CPU cores on the node.
#=====================================================
#SBATCH --partition=spub
#SBATCH --account=pwfa
#SBATCH --qos=spubpwfa
#SBATCH --job-name=fbpic_cpu
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=56
#SBATCH --mem=240G
#SBATCH --output=fbpic_cpu_%j.out
#SBATCH --error=fbpic_cpu_%j.err
set -euo pipefail
source /ihepfs/pwfa/data/public/env_FBPIC.sh
export NUMBA_CACHE_DIR=/ihepfs/pwfa/data/${USER}/cache
mkdir -p "${NUMBA_CACHE_DIR}"
# FBPIC CPU multi-threading. Keep these equal to --cpus-per-task.
THREADS="${SLURM_CPUS_PER_TASK:-56}"
export MKL_NUM_THREADS="${THREADS}"
export NUMBA_NUM_THREADS="${THREADS}"
export OMP_NUM_THREADS="${THREADS}"
export OPENBLAS_NUM_THREADS="${THREADS}"
export NUMEXPR_NUM_THREADS="${THREADS}"
# Keep all worker threads on the CPU cores allocated by Slurm.
export OMP_PROC_BIND=close
export OMP_PLACES=cores
FBPIC_SCRIPT="${1:-fb-in.py}"
echo "Job ID: ${SLURM_JOB_ID}"
echo "Node list: ${SLURM_JOB_NODELIST}"
echo "FBPIC script: ${FBPIC_SCRIPT}"
echo "CPU threads: ${THREADS}"
echo "Memory requested: ${SLURM_MEM_PER_NODE:-240G}"
srun --cpu-bind=cores python "${FBPIC_SCRIPT}"
脚本说明
- 该脚本用于在一个 spub CPU 节点上运行 fbpic 的 CPU 作业,可通过
sbatch fbpic_cpu.sh [fbpic_script.py]提交,若不指定fbpic_script.py则默认运行fb-in.py - 如果不想使用节点上全部 56 个 CPU 核,请同时调整
--cpus-per-task和脚本中的线程数THREADS source /ihepfs/pwfa/data/public/env_FBPIC.sh用于加载运行 fbpic 所需的环境NUMBA_CACHE_DIR用于指定 numba 的缓存目录,避免多用户共享安装目录时产生缓存冲突MKL_NUM_THREADS、NUMBA_NUM_THREADS、OMP_NUM_THREADS、OPENBLAS_NUM_THREADS、NUMEXPR_NUM_THREADS用于设置 fbpic 各计算库使用的线程数,需与--cpus-per-task保持一致OMP_PROC_BIND、OMP_PLACES用于将计算线程绑定在 Slurm 分配的 CPU 核心上,避免线程迁移影响性能
- 作业提交命令为
常见问题(FAQ)¶
见常见问题。
🤖 AI 助手
💬 快速提问
×
有问题?输入后跳转到对话页继续交流