OpenMM 8.2 beta
Posted: Fri Sep 27, 2024 4:59 pm
The beta release of OpenMM 8.2 is now available. This release is a major update with a focus on improving performance.
For the first time in many years, this release introduces a new platform. It is based on AMD's HIP framework. When running on recent AMD GPUs, it delivers roughly double performance compared to the OpenCL platform. (Many thanks to Anton Gorenko for his amazing work on this!)
There also are many other optimizations. Some are low level optimizations that will benefit lots of simulations. Others are narrowly focused on particular features. DrudeSCFIntegrator, CustomHbondForce, and ATMForce are all faster. Energy minimization is often faster. Calling updateParametersInContext() methods to modify parameters is often faster. The overhead of using a reporter to save a trajectory to disk is decreased.
There also are some new features, though most are fairly minor. They include,
There is one significant change in behavior. Since LangevinMiddleIntegrator was introduced in OpenMM 7.5, the old LangevinIntegrator class has been supported only for backward compatibility. It is never recommended, since it is based on a less accurate discretization of the Langevin equation. Nonetheless, we frequently observe people using it, not realizing there is a better alternative and their results are unnecessarily inaccurate. After four years, the harm caused by this outweighs any remaining benefits of backward compatibility. This release changes LangevinIntegrator to use the same algorithm as LangevinMiddleIntegrator. The two classes are now identical in all respects except name. If for some reason you really want the old discretization, you can still use a CustomIntegrator to recreate it.
You can install it with conda or mamba using the command
or if you want to get the HIP platform,
Please give it a try and post how it works for you!
For the first time in many years, this release introduces a new platform. It is based on AMD's HIP framework. When running on recent AMD GPUs, it delivers roughly double performance compared to the OpenCL platform. (Many thanks to Anton Gorenko for his amazing work on this!)
There also are many other optimizations. Some are low level optimizations that will benefit lots of simulations. Others are narrowly focused on particular features. DrudeSCFIntegrator, CustomHbondForce, and ATMForce are all faster. Energy minimization is often faster. Calling updateParametersInContext() methods to modify parameters is often faster. The overhead of using a reporter to save a trajectory to disk is decreased.
There also are some new features, though most are fairly minor. They include,
- The position of a virtual site is now permitted to depend on another virtual site, a feature required for certain force fields.
- GromacsTopFile supports more types of virtual sites.
- Topology can now store atomic formal charges. When reading a PDB or PDBx/mmCIF file that includes formal charges, they are recorded in the Topology.
- Modeller.addHydrogens() has a new option that lets you specify exactly what hydrogens to add for a residue.
There is one significant change in behavior. Since LangevinMiddleIntegrator was introduced in OpenMM 7.5, the old LangevinIntegrator class has been supported only for backward compatibility. It is never recommended, since it is based on a less accurate discretization of the Langevin equation. Nonetheless, we frequently observe people using it, not realizing there is a better alternative and their results are unnecessarily inaccurate. After four years, the harm caused by this outweighs any remaining benefits of backward compatibility. This release changes LangevinIntegrator to use the same algorithm as LangevinMiddleIntegrator. The two classes are now identical in all respects except name. If for some reason you really want the old discretization, you can still use a CustomIntegrator to recreate it.
You can install it with conda or mamba using the command
Code: Select all
mamba install -c conda-forge/label/openmm_rc -c conda-forge openmm
Code: Select all
mamba install -c conda-forge/label/openmm_rc -c conda-forge openmm-hip