Open yuxzhou opened 1 year ago
Most likely the path to the .xml file is wrong - should it really start with a '/', which denotes an absolute path from the root of the filesystem?
Many thanks for this!
I have checked the absolute dir and also update the quippy to the latest version, and it works! After this, I compare the predicted energies and forces of the same structure using both the mpi potential and openmp potential, both of which were fitted using the same reference database and the same hypers.
However, I found that the mpi potential behaves differently with my previous openmp potential.
I followed the exactly same process as you suggested: (1) do only sparsification first using one node; (2) generate input files using the python script gap_prepare_sparsex_input.py
; (3) create a new folder, copy all input files and xyz file to the folder and run a mpi gap_fit with separately specified gap
s (i.e., gap={ {gap1}:{gap2}:...:{gap9} }, six two-body terms and three soap terms). The reference database for both mpi and openmp potential is the same.
But I think I have two different potentials, not only with different fitting coefficiencies but also different predicted energies and forces from my tests.
I'm not sure if it is appropriate to post this issue here but do you have any suggestions or comments?
Thank you again for you help!
I think that the gap_rss sparsification is by default stochastic, and if that's true, unless you pass a seed and the random numbers are used in exactly the same way in the OpenMP and MPI parallelized versions of the sparsification (likely, but not guaranteed unless someone thought about this aspect), you'd expect small changes in the resulting model and its predictions. In fact, you can in some sense use those variations as a committee to estimate uncertainty.
How different are the energy and force values for the two potentials?
A quick test: I calculated the energy and forces for two different structures - one is an amorphous structure (on which the potentials are specifically trained) and the other one is a highly disordered liquid structure at elevated temperatures.
0.013 eV/atom
; and the RMSE of forces is 0.076 eV/ANG
. 0.1 eV
, and the RMSE of forces is 1.0 eV/ANG
. It seems quite reasonable since the regularization parameters for energy and forces are 0.01 and 0.2 separately. So if two potentials are generated using different random seeds, I assume that the numeric differences between two different potentials should also lie in this uncertainty (regularization) range (namely, 0.01 for energy and 0.2 for forces)?
However, I also see some differences in running practical MD simulations for these two potentials. In some melt-quench MD simulations which starts at high temperatures (e.g., 3000K), the mpi potential will predict a very large forces which caused super large pressures (e.g., 100k - 200k bars) and led to lost atoms in LAMMPS. This doesn't happen in the openmp potential with the same starting configurations.
BTW, thanks so much for @bernstei 's comments on the idea of using the variations from independently fitted potentials as a committee to estimate uncertainty, which can be used in some active learning algorithms I think.
However, I also see some differences in running practical MD simulations for these two potentials. In some melt-quench MD simulations which starts at high temperatures (e.g., 3000K), the mpi potential will predict a very large forces which caused super large pressures (e.g., 100k - 200k bars) and led to lost atoms in LAMMPS. This doesn't happen in the openmp potential with the same starting configurations.
I think it's not a problem of the potential. I made a mpi potential and also was employed to melt-quench simulation for producing an amorphous model. It works fine at molten temperature and quench process even if some unphysical configurations appeared in the amorphous model.
One quick question: can the current quippy package reads in the mpi potential which is fitted using the latest version of gap_fit (QUIP) code?
I installed the latest version of quippy
using pip install quippy-ase
and the version is 0.9.12. However, when I try to read the new mpi potential and call Potential, an error comes out saying that Database was created with a later version of the code.Version of code used to generate the database is 1675289491.Version of current code is 1673447045. Please update your code.
It seems that the quippy has to be updated before reading any new mpi potentials?
It's always true that the code used to evaluate a GAP potential has to be at least as new as the one used to create it, to ensure compatibility.
Thanks. Can I use pip
to install the latest version of quippy
, or shall I manually intall it via make
?
I'm having same problem with GAP version when reading GAP with quippy.potential
.
I received error message as following.
RuntimeError: Database was created with a later version of the code.Version of code used to generate the database is 1643998566.Version of current code is 1631710424. Please update your code.
I realized that I can search for gap_version
in my potential file (**.xml) and when I replace that particular line of GAP version to current version number (1643998566 --> 1631710424), it works fine as expected.
I think it could be easy way around for this problem rather than reinstalling QUIP and so on.
But I wonder would this be problematic for evaluation of some properties or source of unexpected behavior.
If anyone have idea on this way of solution (whether it's okay or not), I would be happy to listen!
Thank you in advance
Best Hyunwook
We only update the pypi version infrequently. so if you really want to work with the latest code, install it manually
can I close this?
I think you can.. sorry for late reply but thank you for your comment!On 18. May 2023, at 10:40, gabor1 @.***> wrote: can I close this?
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: @.***>
Dear developers and users,
I have fitted a potential using the
mpi
version of gap_fit on Archer2, and tried to validate it comparing to my previously fitted potential (with the same reference dataset). However, I can't use the quippy.Potential to read the newmpi
potential in my python code.This is what I did in my python script:
I received the error shown below:
Do you have any suggestions on this?
Thank you!