openmm/openmm: OpenMM 8.0.0
Authors/Creators
- Peter Eastman1
- Jason Swails2
- John Chodera3
- Robert T. McGibbon4
- Andy Simmonett5
- Michael Sherman6
- Lee-Ping Wang
- Rafal Wiewiora7
- Charlles Abreu8
- Saurabh Belsare9
- Yutong Zhao
- Kyle Beauchamp
- Chaya Stern10
- João Rodrigues11
- Joy Ku
- Sam Mikes
- Marc Marí
- Jing Huang12
- Michael J. Schnieders13
- Thomas Trummer
- Andreas Krämer
- Chengwen Liu14
- Justin MacCallum15
- M J Harvey
- jaimergp
- Zheng GONG16
- Matthew Harrigan17
- Mike Henry18
- Sunhwan Jo
- Christian Schwantes19
- 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
- Is supplement to
- https://github.com/openmm/openmm/tree/8.0.0 (URL)