There is a newer version of the record available.

Published January 31, 2023 | Version 8.0.0
Software Open

openmm/openmm: OpenMM 8.0.0

  • 1. Stanford University
  • 2. Entos, Inc.
  • 3. Memorial Sloan Kettering Cancer Center
  • 4. D.E. Shaw Research
  • 5. QC Ware
  • 6. Toyota Research Institute
  • 7. Chodera Lab // MSKCC
  • 8. Redesign Science Inc
  • 9. Kern-Ralph Co-Lab, University of Oregon
  • 10. @rahko-ai
  • 11. Schrodinger Inc
  • 12. Westlake University
  • 13. The University of Iowa
  • 14. University of Texas
  • 15. University of Calgary
  • 16. ENS de Lyon
  • 17. Google
  • 18. @choderalab & @OpenFreeEnergy
  • 19. DeepMile Networks

Description

A major focus of this release is on better supporting machine learning potentials. Many of the changes are internal ones that are not directly visible, but are needed by the OpenMM-Torch and OpenMM-ML plugins.

There are many optimizations to the CPU platform. You should see some improvement in most situations, but in certain cases it's especially dramatic.

  • Custom forces are much faster than before on ARM CPUs. Previously it only supported JIT compilation of custom expressions on x86. On other architectures they needed to be evaluated with an interpreter, which was much slower. JIT compilation is now supported on ARM as well.

  • CustomNonbondedForce should be much faster in most cases. Previously the JIT compiler was only able to produce scalar code that evaluated a single interaction at a time. It now can produce vectorized code, allowing the expression to be evaluated for multiple interactions at once.

  • NonbondedForce is also much faster when the nonbonded method is NoCutoff. Previously the code for computing interactions with a cutoff was vectorized, but without a cutoff it was not. That code is now vectorized also, leading to large speedups.

  • Previously we used FFTW to compute FFTs. We switched to PocketFFT, which in our internal testing is usually faster. This should improve the performance of PME on the CPU platform.

There also are a number of optimizations that affect other platforms as well. Some apply only to very specific situations. For example, recomputing the long range correction coefficient for CustomNonbondedForce is much faster.

CustomNonbondedForce now supports per-particle computed values, similar to CustomGBForce. You provide an expression that gets evaluated for each particle, and the result can be used in the energy expression. This can improve performance a lot in some cases, by only computing intermediate quantities once per particle instead of once per interaction.

When building solvent boxes, Modeller.addSolvent() has a new boxShape option for building non-rectangular boxes (rhombic dodecahedron or truncated octahedron). This makes it much easier to build non-rectangular boxes without needing to compute box vectors yourself.

As part of that feature, addSolvent() has changed how it interprets the "padding" option. It now makes a rigorous guarantee that no atom will be closer than the padding distance to any atom of any periodic copy. Previously it didn't guarantee that, and the amount of solvent it added could be either more or less than what was required. The new behavior should be better and closer to what you expect in almost all cases. Just be aware that it has changed. This may impact existing workflows that build solvent boxes.

The OpenCL platform now has improved support for low end GPUs that don't support 64 bit atomic operations. That includes, for example, the embedded GPUs found in Intel and Apple processors. Previusly there were certain Forces that couldn't be used on those GPUs, such as CustomManyParticleForce and AmoebaMultipoleForce. All Forces are now fully supported on those processors. In addition, performance on them will often be better than before.

When simulating a system with Drude particles, the temperature reported by StateDataReporter was previously a weighted average of the system temperature and Drude temperature, which tended to confuse people. It now reports the system temperature, and should match the value specified in the integrator.

Files

openmm/openmm-8.0.0.zip

Files (21.1 MB)

Name Size Download all
md5:c8292b446daac2b44cdf60edae1b0eec
21.1 MB Preview Download

Additional details

Related works