Command Palette
Search for a command to run...
LAMMPS-Bench 分子动力学基准数据集
*该数据集支持在线使用,点击此处跳转。
LAMMPS Benchmark 数据集用于测试和比较 LAMMPS(分子动力学模拟软件)在不同硬件或配置上的性能表现。
这些数据集并不是科学实验数据,而是用来评估计算性能(speed 、 scaling 、效率)的,包含特定体系结构、力场文件、输入脚本、初始原子坐标等内容,由 LAMMPS 官方在 bench/ 文件夹中提供。
相关论文成果为「LAMMPS – a flexible simulation tool for particle-based materials modeling at the atomic, meso, and continuum scales」,由桑迪亚国家实验室联合密歇根州立大学、天普大学等机构于 2022 年发布。
本数据集包含 5 个基准测试问题,它们在 LAMMPS 文档的 Benchmark 部分以及 LAMMPS 官方网站的 Benchmark 页面(https://www.lammps.org/bench.html)中都有讨论。
本数据集中还包含一个子目录:
POTENTIALS :LAMMPS 中各种势能的基准测试脚本
所有这些基准测试的结果都显示并讨论在 LAMMPS 官网的 Benchmark 页面上:https://www.lammps.org/bench.html
本简介其余部分介绍数据集中包含的 5 个基准测试问题,以及如何在 CPU 上(串行或并行)运行它们。子目录中包含各自的 README 文件,在运行这些脚本之前需先阅读相应文件。
以下是 5 个基准测试问题:
LJ = 原子流体,采用 Lennard-Jones 势,截断半径为 2.5 σ(每个原子约 55 个近邻),在 NVE 系综下进行时间积分。
Chain = 由 100 个单体组成的珠-弹簧聚合物熔体,采用 FENE 键和 Lennard-Jones 对相互作用,截断半径为 2^(1/6) σ(每个原子约 5 个近邻),在 NVE 系综下进行时间积分。
EAM = 金属固体,采用铜(Cu)的嵌入原子法势(EAM potential),截断半径为 4.95 Å(每个原子约 45 个近邻),在 NVE 系综下进行时间积分。
Chute = 颗粒物料沿斜槽流动(granular chute flow),采用带摩擦历史项的势函数,截断半径为 1.1 σ(每个原子约 7 个近邻),在 NVE 系综下进行时间积分。
Rhodo = 溶剂化脂质双层中的视紫红质(rhodopsin)蛋白体系,采用 CHARMM 力场,LJ 截断半径为 10 Å(每个原子约 440 个近邻),长程库仑作用通过粒 – 粒/粒 – 网方法(PPPM)计算,在 NPT 系综下进行时间积分。
这 5 个问题每个都包含 32,000 个原子,并运行 100 个时间步。每个测试都可以作为串行基准(单处理器)运行,也可以并行运行。在并行模式下,每个基准测试可以作为固定规模(fixed-size)或可扩展规模(scaled-size)问题运行。对于固定规模基准测试,同样的 32K 原子体系在不同数量的处理器上运行。对于可扩展规模基准测试,体系规模随着处理器数量的增加而扩大。例如,在 8 个处理器上运行 256K 原子体系;在 1,024 个处理器上运行 3,200 万原子体系等。
本数据集中包含一些在不同机器和不同处理器数量下运行的示例日志文件,用于与你的结果进行比较。例如,日志文件名 log.date.chain.lmp.scaled.foo.P 表示在机器「foo」上,使用 P 个处理器运行的 Chain 基准测试的可扩展版本,所使用的 LAMMPS 版本以日期标识。注意,Eam 和 Lj 基准测试在不同机器上可能不会得到完全相同的结果,这是因为「velocity loop geom」选项会根据原子坐标分配速度 —— 有关详细信息请参阅 velocity 命令的文档说明。
运行的 CPU 时间(秒)在日志文件的「Loop time」一行中显示,例如:
Loop time of 3.89418 on 8 procs for 100 steps with 32000 atoms
这些问题在不同机器上的计时结果可在 LAMMPS 官网的 Benchmark 页面上找到。
以下是每个问题的运行方法,假设 LAMMPS 可执行文件名为 lmp_mpi,
并使用 mpirun 命令启动并行运行:
串行运行(单处理器):
lmp_mpi -in in.lj
lmp_mpi -in in.chain
lmp_mpi -in in.eam
lmp_mpi -in in.chute
lmp_mpi -in in.rhodo
并行固定规模运行(此例为 8 个处理器):
mpirun -np 8 lmp_mpi -in in.lj
mpirun -np 8 lmp_mpi -in in.chain
mpirun -np 8 lmp_mpi -in in.eam
mpirun -np 8 lmp_mpi -in in.chute
mpirun -np 8 lmp_mpi -in in.rhodo
并行可扩展规模运行(此例为 16 个处理器):
mpirun -np 16 lmp_mpi -var x 2 -var y 2 -var z 4 -in in.lj
mpirun -np 16 lmp_mpi -var x 2 -var y 2 -var z 4 -in in.chain.scaled
mpirun -np 16 lmp_mpi -var x 2 -var y 2 -var z 4 -in in.eam
mpirun -np 16 lmp_mpi -var x 4 -var y 4 -in in.chute.scaled
mpirun -np 16 lmp_mpi -var x 2 -var y 2 -var z 4 -in in.rhodo.scaled
对于 Chute 运行,必须有 Pz = 1 。
因此 P = Px * Py,只需设置变量 x 和 y 。