brucefan1983 / GPUMD

Graphics Processing Units Molecular Dynamics
https://gpumd.org/dev
GNU General Public License v3.0
466 stars 116 forks source link

Please make the NEP run in parallel in LAMMPS. #272

Closed grtheaory closed 2 years ago

grtheaory commented 2 years ago

Professor Fan, thank you for all your hard work! It is expected that NEP can be run in parallel in LAMMPS. The logic is as follows:

  1. NEP is easier to develop. The number of structures required by the NEP train-dataset may be only 1/4-1/20 of the number of structures in the DP train-dataset, which means that a large amount of DFT calculation can be saved, and it also means that the NEP is easier to develop.

  2. The speed of NEP is fast and the precision is high. NEP is at least an order of magnitude faster than all other current MLPs, and is as accurate as DP.

  3. NEP urgently needs more functions and application scenarios. While NEP is excellent, many of GPUMD's features are still under development; At the same time, LAMMPS lacks high precision and fast potential functions. Although it is rich in features, it is like a human with developed limbs but not a strong "soul". Therefore, if NEP can be run on LAMMPS, the functional requirements and application scenarios of NEP can be solved temporarily.

  4. The development of GPUMD can be slowed down. Even if NEP can run in LAMMPS, it will obviously lose some speed. Therefore, the convenience and speed of GPUMD built-in functions are obviously better, so people will still love GPUMD (especially for formal projects and large system MD), and will only use NEP in LAMMPS as a convenience tool. As the built-in functionality of GPUMD grows, clearly, people will be more likely to use the features built in GPUMD.

So, please and thanks and respect !

brucefan1983 commented 2 years ago

This sounds a challenging task for me, as I have zero experience for writing MPI-based code. But perhaps LAMMPS has already handled all the MPI-related stuff. I can give a try, but I am not sure if I can make an efficient implementation.

brucefan1983 commented 2 years ago

It's done here: https://github.com/brucefan1983/NEP_CPU