Page 1 of 1
OpenMM-plumed plugin on CUDA platform
Posted: Tue Jun 20, 2017 1:18 pm
by fisiksnju
Hi,
I have been working with OpenMM-plumed plugin on CUDA platform recently. I do not know if I correctly understand the code, it seems that when we run simulation on CUDA, there is lots of communication between OpenMM and plumed. Based on this function:
https://github.com/peastman/openmm-plum ... s.cpp#L198, it seems that at every step OpenMM firstly copies current state to plumed and then receives calculated results from plumed and do post-computation. Since plumed is running on CPU (I checkout the code and there is no CUDA implementation for that), will this communication affect simulation speed?
Thanks!
Wei
Re: OpenMM-plumed plugin on CUDA platform
Posted: Tue Jun 20, 2017 2:40 pm
by peastman
Yes, there's some overhead from that. It's usually not too bad, but it does slow things down a bit. A bigger problem is that Plumed itself can be very slow.
We're working on a native CV feature within OpenMM that has the potential to be a lot faster. Take a look at
https://github.com/pandegroup/openmm/pull/1837 if you're interested. The API is in
https://github.com/peastman/openmm/blob ... mCVForce.h. If you'd like to try it out, I'd value your feedback.
Peter
Re: OpenMM-plumed plugin on CUDA platform
Posted: Wed Jun 21, 2017 1:43 pm
by fisiksnju
Thank you!
May I know what is the difference between "CustomCVForce" and "CustomManyParticleForce"? Is it that "CustomCVForce" breaks the expression of "CustomManyParticleForce" into two parts: first part defines CV with "addCollectiveVariable" and second one defines energy in terms of CVs?
Thanks!
Wei
Re: OpenMM-plumed plugin on CUDA platform
Posted: Wed Jun 21, 2017 1:46 pm
by peastman
I'm not sure what you're talking about. CustomManyParticleForce is totally unrelated. It has nothing to do with collective variables.
Peter
Re: OpenMM-plumed plugin on CUDA platform
Posted: Wed Jun 21, 2017 1:55 pm
by fisiksnju
For instance, if we want to do umbrella sampling on one dihedral angle, can we just pass:
Code: Select all
1/2 * (phi - 1) ^ 2;
phi = dihedral(p1,p2,p3,p4);
into "CustomManyParticleForce"
Or equivalently we may also pass
into "CustomCVForce"
and then define "phi" as a CV separately.
Is that how CustomCVForce works?
Wei
Re: OpenMM-plumed plugin on CUDA platform
Posted: Wed Jun 21, 2017 2:04 pm
by peastman
Maybe you mean CustomCompoundBondForce instead of CustomManyParticleForce?
Yes, that's the basic idea. In the most trivial case, you could add a single CV called "v" to the CustomCVForce, then set its energy expression to just "v". In that case, its energy would be the same as if you had just added the Force defining the CV directly to the System. Of course, in that case there wouldn't be any reason to use CustomCVForce.
Peter
Re: OpenMM-plumed plugin on CUDA platform
Posted: Thu Jun 22, 2017 7:21 am
by fisiksnju
Thank you for clarifying this!
Just curious, are you going to implement biasing methods (e.g. metadynamics and some others) on top of Custom CV in OpenMM package?
Wei
Re: OpenMM-plumed plugin on CUDA platform
Posted: Thu Jun 22, 2017 9:42 am
by peastman
Yes, that's the plan.
Peter
Re: OpenMM-plumed plugin on CUDA platform
Posted: Thu Jun 22, 2017 12:59 pm
by fisiksnju
Nice to hear that!
Thank you!
Wei
Re: OpenMM-plumed plugin on CUDA platform
Posted: Fri Aug 18, 2017 1:11 pm
by spadanco
It was so good