Correct MDP parameters for -update GPU

GROMACS version: 2022,1
GROMACS modification: No

Hi :)
I’m trying to run my MD on our GPU node and I’m facine a problem with -update gpu: I have the following issue :

Inconsistency in user input:
Update task on the GPU was required,
but the following condition(s) were not satisfied:
The number of coupled constraints is higher than supported in the GPU LINCS
code.

I saw it is link to the LINCS parameters, so I put “constraints=none” to try but it doesn’t work either.

So my question is : What are the correct parameters to fully the the MD on GPU :) ?

Here’s my MDP parameters if you need :

integrator        = md              ; leap-frog algorithm
nsteps            = 500000        ; 0.002 * 500000.0 = 1000.0 ps or 1.0 ns
dt                = 0.002           ; 2 fs

; Output control
nstxout           = 10000                ; save coordinates every 10 ps
nstvout           = 10000                ; save velocities every 10 ps
nstxtcout         = 10000             ; xtc compressed trajectory output every 10 ps
nstenergy         = 10000             ; save energies every 10 ps
nstlog            = 10000             ; update log file every 10 ps
nstcomm           = 1000               ; center of mass motion removal
; Bond parameters
constraint_algorithm = lincs         ; holonomic constraints
constraints          = h-bonds     ;  (even heavy atom-bH bonds) constrained
lincs_iter           = 1             ; accuracy of LINCS
lincs_order          = 4             ; also related to accuracy

; Neighborsearching
ns_type           = grid             ; search neighboring grid cells
nstlist           = 25               ; with Verlet lists the optimal nstlist is >= 10, with GPUs >= 20.
rlist             = 1.0              ; short-range neighborlist cutoff (in nm)
rcoulomb          = 1.0              ; short-range electrostatic cutoff (in nm)
rvdw              = 1.0              ; short-range van der Waals cutoff (in nm)
rlistlong         = 1.0              ; long-range neighborlist cutoff (in nm)
cutoff-scheme     = Verlet

; Electrostatics
coulombtype       = PME              ; Particle Mesh Ewald for long-range electrostatics
pme_order         = 4                ; cubic interpolation
fourierspacing    = 0.16             ; grid spacing for FFT

; Temperature coupling is on
tcoupl          = V-rescale               ; v-rescale is used now to have a canonical space
tc-grps         = Protein Non-Protein     ; two coupling groups - more accurate
tau_t           = 0.1    0.1              ; time constant, in ps
ref_t           = 300    300             ; reference temperature, one for each group,in K

; Pressure coupling is on
pcoupl          = Parrinello-Rahman     ; pressure coupling is on for NPT
pcoupltype      = isotropic             ; uniform scaling of box vectors
tau_p           = 2.0                   ; time constant, in ps
ref_p           = 1.0                   ; reference pressure, in bar
compressibility = 4.5e-5                ; isothermal compressibility of water, bar^-1

; Periodic boundary conditions
pbc            = xyz                    ; 3-D PBC

; Dispersion correction
DispCorr       = EnerPres               ; account for cut-off vdW scheme

; Velocity generation
gen_vel        = no                     ; Velocity generation is off
gen_temp       = 300                    ; reference temperature, for protein in K

You can not simply set constraints=none. Most force fields are not parametrized for this and you would need a very small time step.

constraints=h-bonds is not an issue for GPU update. The error you get must be caused by a molecule in your system that has all bonds constrained in its topology.

Hi @hess - setting constraints=h-bonds, do you suggest to put dt=1fs? I am using -update gpu to speed up my sims (from 145ns/d to 200ns/d on 88k atoms) but using dt=2fs. With dt=1fs I get 100ns/d

No, with constraints=h-bonds you can use a time step of 2 fs. There is no reason to go to 1 fs.

1 Like