resource.json
resource.json
设置计算集群资源,包括对训练、分子动力学(MD)、DFT 计算(SCF、Relax、AIMD)使用的计算节点、CPU、GPU 资源以及对应的运行软件(Lammps、VASP、PWMAT、MatPL)。
所有可设置参数按照用途分为 train, explore, DFT, direct四种模块,每个模块中的参数意义相同。
对于初始训练集制备(init_bulk)可设置 explore, DFT, direct,这里以 mcloud 环境设置为例。explore 用于设置大模型 MD 环境,direct 用于设置 direct 采样环境,DFT 用于设置对结构做 SCF 或 AIMD 所用环境。
{
"DFT": {
"command":"mpirun -np 4 PWmat",
"task_run_num":1,
"number_node": 1,
"cpu_per_node": 4,
"gpu_per_node": 4,
"group_size": 1,
"queue_name": "3080ti,3090",
"custom_flags": [
],
"_custom_flags": [
],
"module_list": [
"compiler/2022.0.2",
"mkl/2022.0.2",
"mpi/2021.5.1",
"cuda/11.6",
"pwmat"
]
},
"explore": {
"command": "python sevennet_md.py",
"group_size": 1,
"number_node": 1,
"gpu_per_node": 1,
"cpu_per_node": 1,
"queue_name": "3080ti",
"custom_flags": [],
"source_list": [
"/share/app/anaconda3/envs/SevenNet/env.sh"
],
"module_list": [
],
"env_list": [
]
},
"direct": {
"command": "python direct.py",
"group_size": 1,
"number_node": 1,
"gpu_per_node": 1,
"cpu_per_node": 1,
"queue_name": "3080ti",
"custom_flags": [],
"source_list": [
"/share/app/anaconda3/envs/m3gnet/env.sh"
],
"module_list": [
],
"env_list": [
]
}
}
对于主动学习(run)可设置 train, explore, direct, DFT四个模块,这里以 mcloud 环境设置为例。train 用于设置训练环境,explore用于设置lammps分子动力学环境,direct 用于设置 direct 采样环境,DFT 用于设置对结构做 SCF环境 或者 大模型 MD 环境。
做:
{
"train": {
"command": "MatPL",
"group_size": 1,
"number_node": 1,
"gpu_per_node": 1,
"cpu_per_node": 1,
"queue_name": "3080ti,3090",
"custom_flags": [
],
"source_list": [
"/share/app/MATPL/MatPL-2025.3/env.sh"
],
"module_list": [
],
"env_list":[
]
},
"explore": {
"command": "mpirun -np 1 lmp_mpi -in in.lammps",
"group_size": 1,
"number_node": 1,
"gpu_per_node": 1,
"cpu_per_node": 1,
"queue_name": "3080ti,3090",
"custom_flags": [],
"source_list": [],
"module_list": [
"lammps4matpl/2025.3"
],
"env_list":[]
},
"DFT": {
"command": "mpirun -np 4 PWmat",
"number_node": 1,
"cpu_per_node": 4,
"gpu_per_node": 4,
"group_size": 1,
"queue_name": "3080ti,3090",
"custom_flags": [],
"source_list": [],
"module_list": [],
"env_list":[
"compiler/2022.0.2",
"mkl/2022.0.2",
"mpi/2021.5.1",
"cuda/11.6",
"pwmat"
]
}
}
参数细节
参数可以分为3类。
用于设置运行命令的command;
用于设置每个计算任务的资源数量
number_node、cpu_per_node、gpu_per_node、group_size、queue_name、custom_flags;
用于加载软件和环境变量 custom_flags、source_list、module_list、env_list。
详细解释如下。
command
必选参数,设置模块对应命令。
不同任务的设置,例子:
对于DFT计算设置
PWmat 设置:
"command":"mpirun -np 4 PWmat"
VASP设置:
"command":"vasp_std"
cp2k设置:
"command":"mpirun -np $SLURM_NTASKS cp2k.popt"
对于 Lammps 计算设置:
"command":"mpirun -np 10 lmp_mpi"
-np 后面为使用的 CPU 数量,需要与cpu_per_node 设置保持一致,如果 gpu_per_node设置,那么 np中设置的 cpu 任务将平均分配到 gpu_per_node 所设置的 GPU 上。
对于 MatPL 文档 模型训练设置:
"command":"MatPL"
group_size
该参数用于多个计算任务提交时的分组,同组内的计算任务将顺序执行。组间任务并行。
例如,对于 34 个 自洽计算任务,"group_size":5,此时将把 34 个自洽计算任务分为 6 个组,即 6 个 slurm 任务,每个 slurm 任务包含 5 个自洽计算(最后一个组有 4 个计算任务)。执行时,6 个 slurm 任务将同时提交到计算集群(slurm 任务内部的 5 个自洽计算将串行执行)。
- 对于训练或探索任务,默认值为
1,每组1个任务,即所有任务同时提交。 - 对于 AIMD 或 SCF 任务,即
DFT下的参数,默认值为-1,所有任务将分到一个组内,执行时,每个任务串行执行(即任务执行完毕后再提交执行下一个任务)。建议您根据实际的任务数量设置该参数,避免同时提交大量DFT任务,挤占所有计算资源。
number_node
用于设置每个 slurm 任务的计算节点数量,默认值为 1,即 1 个计算节点。
在 train 模块,该参数自动设置 1。
gpu_per_node
用于设置每个节点下使用的 GPU 数目,默认值为 0,如果使用 PWMAT 做 DFT 计算(自洽计算、驰豫或者 AIMD)该值需要与 "command" 中设置的 GPU 数量一致。
在 train 模块,该参数自动设置 1。
cpu_per_node
用于设置每个节点使用的 CPU 数目,默认值为 1,注意该值需要 ">= gpu_per_node"。
在 train 模块,该参数自动设置 1。