首先lammps的运行(RunLAMMPS)
本章共分为了4个部分,主要介绍了在有分子动力学代码的前提下进行命令行
的输入并运行代码。共有多核和单核,多线程和单线程。
1. 运行lammps的基础
1 lmp_serial -in in.file
2 lmp_serial < in.file
3 lmp -in in.file
4 lmp < in.file
5 /path/to/lammps/src/lmp_serial -i in.file
6 mpirun -np 4 lmp_mpi -in in.file
7 mpiexec -np 4 lmp -in in.file
8 mpirun -np 8 /path/to/lammps/src/lmp_mpi -in in.file
9 mpiexec -n 6 /usr/local/bin/lmp -in in.file
10 lmp -in in.txt -pk omp 4 -sf omp
目前主要使用的是第3个和第10个,分别是单线程和多线程,
多核目前尚存在问题,欢迎大家帮助我解决多核运行的问题。
2. 命令行选项
1 mpirun -np 16 lmp_mpi -v f tmp.out -l my.log -sc none -i in.alloy
2 mpirun -np 16 lmp_mpi -var f tmp.out -log my.log -screen none -in in.allo
-echo 去弄清你的脚本中哪一行造成了输入错误。
-help 告诉你想要使用的命令是否在编译时通过,使用此选项,lammps将打印信息并立即退出。
-in file 确定哪一个文件是输入文件。
-log file 书写lammps运行的状态信息
3.屏幕和日志文件输出
Loop time of 0.942801 on 4 procs for 300 steps with 2004 atoms
Performance: 54.985 ns/day, 0.436 hours/ns, 318.201 timesteps/s, 637.674 katom-step/s
195.2% CPU use with 2 MPI tasks x 2 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.61419 | 0.62872 | 0.64325 | 1.8 | 66.69
Bond | 0.0028608 | 0.0028899 | 0.002919 | 0.1 | 0.31
Kspace | 0.12652 | 0.14048 | 0.15444 | 3.7 | 14.90
Neigh | 0.10242 | 0.10242 | 0.10242 | 0.0 | 10.86
Comm | 0.026753 | 0.027593 | 0.028434 | 0.5 | 2.93
Output | 0.00018341 | 0.00030942 | 0.00043542 | 0.0 | 0.03
Modify | 0.039117 | 0.039348 | 0.039579 | 0.1 | 4.17
Other | | 0.001041 | | | 0.11
Nlocal: 1002 ave 1006 max 998 min
Histogram: 1 0 0 0 0 0 0 0 0 1
Nghost: 8670.5 ave 8691 max 8650 min
Histogram: 1 0 0 0 0 0 0 0 0 1
Neighs: 354010 ave 357257 max 350763 min
Histogram: 1 0 0 0 0 0 0 0 0 1
Total # of neighbors = 708020
Ave neighs/atom = 353.30339
Ave special neighs/atom = 2.3403194
Neighbor list builds = 26
Dangerous builds = 0
读取输入文件时,输出有关设置模拟所需的重要操作信息,模拟准备开始时,
输出即将执行的运行信息,打印系统初始热力学状态的细节。
在模拟运行过程中,打印热力学信息。在运行结束时,
打印最终的热力学状态和模拟的总运行时间。
Looptime 全局循环时间概括。模拟运行的总时间。
Performance 帮助预测运行所需物理模拟的时间。
CPU 提供每个MPI任务的CPU利用率。
MPI task 给出了CPU运行时间的分解。
Pair 非粘结力计算。
Bond 成键相互作用:键,角度,二面体,不对称(impropers)。
Kspace 长程作用:PME, SPME和PPPM。
Neigh 临近相互作用构建
Comm 原子及其性质的内在通信。
Output 输出热力学信息和转储文件。
Modify 由约束引起的约束和计算。
Other 其余的时间
最少、平均、最大时间,最大值或最小值与平均值相差的百分比。此类别中花费的总循环时间的百分比。
4.Running LAMMPS on Windows
运行串行可执行文件
开始运行cmd
移动到存放输入脚本的目录
输入lmp -in in.file回车
多线程并行化
lmp -in in.lj -pk omp 4 -sf omp
这个代码和上面运行lammps基础中第10条是一样的。
对于MPI可执行文件,需要下载并安装兼容的MPI库二进制包;安装后cmd(adm)运行smpd.exe –install,应该就可以使用了。
mpiexec.exe -np 4 lmp -in Ti_1511.txt -pk omp 4 -sf omp
将mpi多核和多线程一起使用。感觉没有单核4线程舒服。
引用自lammps官网,仅有部分内容经过本人尝试
对MPI的安装过程,将该路径放入到环境变量中,可直接使用mpiexec进行求解,千万要看到最后,不然你会一直觉得自己的MPI没有安装。
mpiexec -localonly 4 lmp -in in.file
mpiexec -np 4 lmp -in in.file
可运行第二种。
两种使用多核的方法,第一种我是真的没办法了,计算机总是拒绝。第二种还好,需要等的时间较长。
对该mpi进行吐槽:
第二个可以计算,但是反应感觉就太慢了。它总是跳。
在这种模式下,输出可能不会立即显示在屏幕上,因此,如果输入脚本需要很长时间才能执行,则可能需要在输出显示之前<保持耐心>。 需要保持耐心,我真的是服了。。。 下一章开启,如何进行分子动力学分析,并针对使用,进行具体化分析。
补一下:提示环境变量 OMP_NUM_THREADS 未设置,因此系统将默认使用单线程模式执行程序。在环境变量中添加该变量并将变量值设置为线程数就可以使用MPI多核多线程。完成!