OpenMM 8.x · CUDA · OpenCL · Reference
Enhanced sampling that never leaves the GPU.
GLUED is an OpenMM plugin that runs every collective variable, bias method, and chain-rule force scatter inside the GPU kernel pipeline. Positions stay on the device between integration steps — no PCIe round-trip, no CPU sync.
22collective variables
14bias methods
0 bytes / step
1import openmm as mm 2import glued 3 4# Force — temperature & PBC set once. 5force = glued.Force(pbc=True, temperature=300.0) 6 7# Register a CV — plain Python list. 8phi = force.add_dihedral([4, 6, 8, 14]) 9 10# Bias it. OPES needs only sigma + biasfactor. 11force.add_opes(phi, sigma=0.35, gamma=10.0, pace=500) 12 13# Standard OpenMM from here. 14system.addForce(force) 15simulation.step(10_000_000)
Architecture
CV evaluation, bias deposition, and force scatter — all in one GPU context.
GLUED inherits OpenMM's ForceImpl and slots its own NVRTC-compiled kernels into the per-step compute pipeline. There's no host-side intermediate buffer to download into and upload back. For why that matters at GPU speeds, see the benchmarks.
Build it once. Run on every platform OpenMM does.
Reference (CPU), CUDA, and OpenCL all build from the same CMake invocation. Linux, Windows (incl. WSL2), and macOS supported. Source build only — no pip, no conda.