Move the non-bonded workonto the card
Most of a step is short-range non-bonded forces. Hand those to a GPU and the same run finishes several times sooner.
The largest slice of every step, and the part that maps most naturally onto a GPU.
The long-range half of electrostatics, now able to run on the card rather than beside it.
Bonds, angles and constraints are cheap, so the CPU keeps them and overlaps with the card.
PME wasthe ceiling
Long-range electrostatics used to sit on one GPU no matter how many you had. That is what capped multi-GPU scaling.
Particle Mesh Ewald splits electrostatics into a short-range part, which decomposes cleanly across ranks, and a long-range part computed on a grid with FFTs. The FFT is global — every rank needs data from every other — so for years it stayed on a single GPU while the rest of the step spread out. Add more cards and that one grew into the whole runtime.
Recent GROMACS releases decompose PME across GPUs as well, with distributed FFTs and direct card-to-card communication instead of a round trip through host memory. On large systems across many nodes that is the difference between scaling stopping at a handful of GPUs and continuing well past it.
Where the gainactually lands
Multi-node PME decomposition matters at a scale most runs never reach. Knowing which side of that line you are on saves money.
One machineis usually the answer
We hand you a single machine, not a cluster. For the overwhelming majority of systems that is the right shape anyway.
A protein in water — a hundred thousand atoms, give or take — saturates one good GPU long before it needs a second. The honest advice is to fill one card first: check that mdrun reports the GPU busy rather than waiting on the CPU, and only then think about more hardware.
GROMACS isalready built
Nothing here needs compiling. Pick a machine, and these two commands put it on there.
$ dxflow workflow create --identity gromacs hub://gromacs
$ dxflow workflow start gromacs