July 11, 2024 | Yair Litman, Venkat Kapil, Yotam M. Y. Feldman, Davide Tisi, Tomislav Begušić, Karen Fidanyan, Guillaume Fraux, Jacob Higer, Matthias Kellner, Tao E. Li, Eszter S. Pós, Elia Stocco, George Trenins, Barak Hirschberg, Mariana Rossi, and Michele Ceriotti
i-PI 3.0 is a flexible and efficient framework for advanced atomistic simulations. It provides a modular software architecture based on inter-process communication through a socket interface, enabling integration with various simulation techniques. The code is implemented in Python, which facilitates rapid prototyping but can introduce computational overhead. In this release, i-PI has been benchmarked and optimized for several common simulation scenarios, making the overhead negligible when modeling systems with tens of thousands of atoms using widely adopted machine learning interatomic potentials such as Behler-Parinello, DeePMD, and MACE neural networks. New features include an efficient algorithm for modeling bosonic and fermionic exchange, a framework for uncertainty quantification, a communication infrastructure for deeper integration with electronic-driven simulations, and an approach to simulate coupled photon-nuclear dynamics in optical or plasmonic cavities.
i-PI is a force engine that operates with a client-server paradigm. It is designed to be universal, with a general and flexible backend that accommodates a wide range of client codes. The code is distributed under a dual GPL and MIT license and is written in Python 3. It is used for a wide range of applications, including the dynamics of charge density wave materials, interpretation of neutron scatter experiments, nuclear motion associated with electronic excitations, and the elucidation of the thermodynamic properties of aqueous electrons. i-PI is also used as a simulation engine with newly developed MLIP architectures, making it easy to use them in combination with advanced sampling techniques.
The code has been improved in terms of robustness, usability, and performance. It now supports a wide range of simulation algorithms, including classical and path integral molecular dynamics, thermostats, barostats, geometry optimizers, enhanced sampling and free energy calculations, multiple time-stepping, approximate quantum dynamics calculations, and advanced path integral simulations and estimators. It also supports efficient integrators, barostats, advanced path integral simulations and estimators, vibrational analysis, particle exchange Monte Carlo, path integral molecular dynamics for indistinguishable particles, cavity MD, nuclear propagation by additional dynamical variables, ensemble models, extracting dynamical information from thermostatted simulations, and non-linear spectroscopy.
The efficiency of i-PI for large-scale simulations has been analyzed, showing that the overhead associated with UNIX- and TCP-socket communications, and Python's inherent inefficiency compared to lower-level languages, can be significant. However, with the improvements made in this release, the overhead has been reduced, making i-PI suitable for simulations with up to a few thousand atoms. The code has been optimized to reduce the overhead associated with accessing i-PI depend objects, substituted explicit loops with array operations, and removed other obvious bottlenecks from the implementation. This has reduced the overhead of the NVE integrator by a factor of 3-5, and the communication overhead by a factor of 2.
The performance of i-PI has been testedi-PI 3.0 is a flexible and efficient framework for advanced atomistic simulations. It provides a modular software architecture based on inter-process communication through a socket interface, enabling integration with various simulation techniques. The code is implemented in Python, which facilitates rapid prototyping but can introduce computational overhead. In this release, i-PI has been benchmarked and optimized for several common simulation scenarios, making the overhead negligible when modeling systems with tens of thousands of atoms using widely adopted machine learning interatomic potentials such as Behler-Parinello, DeePMD, and MACE neural networks. New features include an efficient algorithm for modeling bosonic and fermionic exchange, a framework for uncertainty quantification, a communication infrastructure for deeper integration with electronic-driven simulations, and an approach to simulate coupled photon-nuclear dynamics in optical or plasmonic cavities.
i-PI is a force engine that operates with a client-server paradigm. It is designed to be universal, with a general and flexible backend that accommodates a wide range of client codes. The code is distributed under a dual GPL and MIT license and is written in Python 3. It is used for a wide range of applications, including the dynamics of charge density wave materials, interpretation of neutron scatter experiments, nuclear motion associated with electronic excitations, and the elucidation of the thermodynamic properties of aqueous electrons. i-PI is also used as a simulation engine with newly developed MLIP architectures, making it easy to use them in combination with advanced sampling techniques.
The code has been improved in terms of robustness, usability, and performance. It now supports a wide range of simulation algorithms, including classical and path integral molecular dynamics, thermostats, barostats, geometry optimizers, enhanced sampling and free energy calculations, multiple time-stepping, approximate quantum dynamics calculations, and advanced path integral simulations and estimators. It also supports efficient integrators, barostats, advanced path integral simulations and estimators, vibrational analysis, particle exchange Monte Carlo, path integral molecular dynamics for indistinguishable particles, cavity MD, nuclear propagation by additional dynamical variables, ensemble models, extracting dynamical information from thermostatted simulations, and non-linear spectroscopy.
The efficiency of i-PI for large-scale simulations has been analyzed, showing that the overhead associated with UNIX- and TCP-socket communications, and Python's inherent inefficiency compared to lower-level languages, can be significant. However, with the improvements made in this release, the overhead has been reduced, making i-PI suitable for simulations with up to a few thousand atoms. The code has been optimized to reduce the overhead associated with accessing i-PI depend objects, substituted explicit loops with array operations, and removed other obvious bottlenecks from the implementation. This has reduced the overhead of the NVE integrator by a factor of 3-5, and the communication overhead by a factor of 2.
The performance of i-PI has been tested