我们在鲲鹏920服务器上移植了VASP 6.3版本,编译器使用的是毕昇编译器,数学库选的是ARM Performance Libraries,MPI用HyperMPI。编译过程顺利,测试算例也能跑完。但用来计算一个标准铝原子体系的原子受力时,输出结果和课题组在Intel平台上的参考值对不上。具体来说,某些原子的受力方向一致但大小差了10%左右,而对称位置上的原子受力本应相同,在鲲鹏计算结果里却出现了微小差异。用同样的INCAR、POSCAR和POTCAR文件,在Intel平台重新跑一遍,结果和参考值一致。尝试换用GCC重新编译VASP,偏差依然存在,只是具体数值略有不同。关闭所有优化选项编译后,偏差缩小了一些但没有完全消失。想请教这种数值结果不一致的问题是否和底层数学库的实现有关,还是说VASP中某些与架构相关的编译宏需要在鲲鹏上额外定义。
我们在鲲鹏920服务器上移植了VASP 6.3版本,编译器使用的是毕昇编译器,数学库选的是ARM Performance Libraries,MPI用HyperMPI。编译过程顺利,测试算例也能跑完。但用来计算一个标准铝原子体系的原子受力时,输出结果和课题组在Intel平台上的参考值对不上。具体来说,某些原子的受力方向一致但大小差了10%左右,而对称位置上的原子受力本应相同,在鲲鹏计算结果里却出现了微小差异。用同样的INCAR、POSCAR和POTCAR文件,在Intel平台重新跑一遍,结果和参考值一致。尝试换用GCC重新编译VASP,偏差依然存在,只是具体数值略有不同。关闭所有优化选项编译后,偏差缩小了一些但没有完全消失。想请教这种数值结果不一致的问题是否和底层数学库的实现有关,还是说VASP中某些与架构相关的编译宏需要在鲲鹏上额外定义。