LAMMPS命令行-partition选项的理解

版权声明:iSimuLy创作 https://blog.csdn.net/iSimuLy/article/details/82973141

LAMMPS在命令行部分,设置了partition选项,并且在in文件中设置了partition命令来进行辅助处理。

一般来说,partition命令用的不多,下面主要介绍下下-partition(或-p)命令行参数的意义和设置。

-partition用于唤醒lammps采用多分块模式,这个分块是指把计算用的cup进行分块划分。假设你在并行时用 -n指定了p个CPU内核。
那么如果不设置-p,那么p个核会只跑一个作业,也是我们常用的模式,也就是p个核进行并行。

可是有些情况,我们需要做一些副本交换的模拟(LAMMPS有好几种算法可以实现),
来加强抽样,那么这时候,我们用一个命令提交的这个作业,可能要分成几个副本进行模拟,这时候就要用到-p的参数了。
这个参数可以把你指定的核分成多个不同块,每块独立的进行计算,这些块之间有可能进行简单数据的交换(依赖于算法)

举例来说吧:

-partition MxN 或者(-p MxN)是指把计算核心,化成M个块,每块有N个计算核心; M乘以N应该等于 -n指定的核心数
-p a b c d是指 总共化成了 4个块,每块计算核心分别是 a b c d个,那么这a+b+c+d应该等于 -n指定的核心数。

有时候,上面的两个参数形式可能联合使用,比如
-p 4x6 8 6 12

意思是 把核心数这样划分的, 分块总数为 4 + 1 + 1 +1 = 7个; 前四个块每个块包含6个核心,后面三个块,分别是8,6,12.
在时间操作是,如果模拟系统差不多,每块最好使用相同的计算核心数,这个计算的时候,每个副本计算时间上基本是差不多的。

此外,LAMMPS也支持虚拟计算核心,比如你在单核机器上装了MPI并行软件后,你可以在上面跑副本交换,上述方法也可以用。

猜你喜欢

转载自blog.csdn.net/iSimuLy/article/details/82973141