
VASP计算效率的讨论.doc
4页vasp运行效率vasp运行时间主要消耗在对角化上运行时间正比于NBANDS * NPLNW2,前者是能带数目,后者是平面波数目;也正比于NELECT3,电子数目三次方由于NPLNW ∝ ENCUT3/2,故运行时间正比于ENCUT3IALGO, 选择对角化算法对于小体系,用IALGO=38(Davidson algorithm) ;对于大体系用IALGO=48(RMM-DIIS)可以设置ALGO=very fast or fast. RMM-DIIS并行效率比Davidson algorithm高一些NPAR,如果IALGO=38,则NPAR取1对IALGO=48,影响不是特别大,可选2或4,可选节点数,取值越大,内存占用越多并行效率总是低于线性叠加效率的,核越多并行效率越低所以对于一定核(如20),一定作业(如2个),同时算(每个作业10个核)比先后算(每个作业20个核)要更节约时间LREAL 控制赝势能量的非局域部分如何计算(k空间或实空间)对k-空间,计算量正比于平面波数目(∝ENCUT3/2*a1*a2*a3)实空间计算依赖体系大小小于25个原子,可用K空间对大体系用 LREAL = Auto or LREAL = .Ture. 。
设置KPAR为计算节点数或K点数KPAR用来设置K点的计算并行度每个K点用N/KPAR个核来计算,N为总核数核数很多时(>100),这个参数的影响比较大vasp大体系计算的参数设置1. 减小收敛精度的一些参数设置k点密度 减少K点改变迭代算法(ALGO) 大体系,一般ALGO=Very_Fast, IALGO=48提高高斯展宽(SIGMA增加) SIGMA默认0.2设置自洽延迟(NELMDL) 在一开始计算时初始化的过程中电子非自洽迭代的步数截断能ENCUT 确定平面波的切断动能PREC 确定计算的精度,它决定了ENCUT和ROPT的默认值默认设为Medium中等的,VASP4.5以后的版本可设置的值为Normal普通和Accurate精确2. 有两个提高并行效率的参数NPAR和KPAR3. 大体系一般不进行收敛测试了,主要根据小体系的测试值和别人文章的使值来选择比较合适的参数4. 分步优化:先采用低精度进行优化,比如增大离子步长,降低收敛精度,等收敛之后再提高精度进行精优化,这样相对比较可能会快一些vasp的并行计算vasp的并行分为两个方面:一是对平面波系数的并行,一是对能带的并行。
对两者都支持的算法是RMM—DIIS迭代矩阵对角化(即IALGO=48);而共轭梯度band by band 法(IALGO=8)只支持对平面波系数的并行开启对能带并行的命令是NPARNPAR 的默认值是1,意思是只对平面波系数并行,所有的节点都计算同一个能带vasp手册中建议这种情况适合于节点数较少的集群如果设置NPAR的值为总节点数,那么每个节点将会独自计算一个能带vasp手册中指出,这种情况适合于通信带宽较小的集群,同时,将会增加内存需求如果NPAR的值位于1到总节点数之间,此时,计算一个能带所需的节点数为:总节点数/NPAR另一个常设的并行参数是,LPLANE经常这样取值:LPLANE=.TRUE.这样取值,会减少在快速傅里叶变换时的通信带宽,但同时可能会破坏下载平衡但这只针对于那些超大规模的集群而言,如上海超算中心那样VASP手册相关内容:Parallelisation: NPAR, NCORE, LPLANE, and the KPAR-tag并行计算:NPAR, NCORE, LPLANE, 和 KPAR 标签VASP currently offers parallelisation (and data distribution分布) over bands, parallelization (and data distribution) over plane wave coefficients系数 (see also Section 4), and as of VASP.5.3.2, parallelization over k-points (no data distribution). To obtain high efficiency on massively parallel systems大规模并行系统 or modern multi-core machines现代多核机器, it is strongly recommended推荐 to use all at the same time. Most algorithms算法 work with any data distribution数据分布 (except for the single band conjugated gradient共轭梯度, which is considered to be obsolete过时的)。
VASP目前提供包含能带的并行计算(和数据分布),包含平面波系数的并行计算(和数据分布),在VASP 5.3.2版本中,还提供了K点的并行计算(没有数据分布)为了在大规模并行系统或者现在的多核机器上获得高的运算效率,强烈地推荐在任何时候都使用并行计算对绝大多数具有任何数据分布算法的工作都是适用的除了共轭梯度算法算单个能带的情况,被认为是过时的NCORE is available可用的 from VASP.5.2.13 on, and is more handy than方便得多 the previous之前的 parameter NPAR. The user should either可以 specify指定 NCORE or NPAR, where NPAR takes a higher preference更高的优先级. The relation between both parameters is NCORE=total number cores/NPAR NCORE determines how many cores work on one orbital轨道. The value is also printed输出 at the beginning of the OUTCAR file. The current当前 default默认 is NCORE=1, implying表示、意味着 that one orbital is treated by one core. NPAR is then set to the total number of cores. If NCORE equals the total number of cores, NPAR is set to 1. This implies distribution分布 over plane wave coefficients系数 only: all cores will work on every individual个别的 band, by distributing分布 the plane wave coefficients over all cores. This is usually very slow and should be avoided. 在VASP.5.2.13中,NCORE是可以用的,它比之前的参数NPAR用起来要方便得多。
用户可以指定NCORE或者NPAR,其中NPAR拥有更高的优先级这两个参数之间的关系是 NCORE=体系总的原子数/NPARNCORE决定了每一条轨道用多少个核计算这个值也会保存在OUTCAR文件的前面之前这个值默认为NCORE=1,意味着一条轨道由一个核来处理NPAR的值设为总核数如果,NCORE等于总核数,NPAR设为1这就仅仅意味着平面波系数的分布:所有的核都用于处理每一个单独的能带,平面波系数分布在所有的核这样做,通常非常慢,所以应该避免NCORE=1 is the optimal最佳的、最理想的 setting for platforms平台 with a small communication通讯、交流 bandwidth带宽 and is a good choice for up to cores, as well as和…一样, machines with a single core per node节点 and a Gigabit千兆比特 network. However, this mode模式 substantially实质上 increases the memory requirements增加了对存储的需求, because the non-local projector functions非局域投影波函数 must be stored存储 entirely完全地 on each core. In addition此外, substantial实质的,大量的 all-to-all communications所有的通讯 are required to orthogonalize使正交化 the bands. On massively parallel systems大规模并行系统 and modern multi-core machines we strongly urge to set强烈建议设置成NPAR=number of cores 核数的开方 or NPAR=number of cores per compute node 每个计算节点的核数In selected cases, we found that this improves改善 the performance性能 by a factor of up to four 四倍compared to the default, and it also significantly显著地 improves the stability稳定性 of the code due to reduced memory requirements减少内存需求. NCORE=1是窄通讯带宽平台的最佳选择,并且对于多核是一个很好的选择,和机器在每个节点单个核和千兆比特的网络一样。
然而,这种模式实质上会增加对存储能力的要求,因为非局域投影波函数必须完全地存储在每个核上此外,实质上所有的通讯都需要使能带正交化对于大规模并行系统和现代多核机器,我们强烈建议将NPAR设置成核数的开方或者每个节点的核数在选择的情形中,我们发现参数这样设置与默认值相比可以改善性能4倍以上,并且可以显著地提升节点的稳定性,因为减少了对内存的需求The second switch开关 influences the data distribution is LPLANE. If LPLANE is set to .TRUE. in the INCAR file, the data distribution in real space is done plane wise明智的. Any combination组合 of NPAR and LPLANE can be used. Generally通常, LPLANE=.TRUE. reduces the communication band width通信带宽 during the FFT's, but at the same time it unfortunately不幸地 worsens恶化 the loa。












