OpenMM-plumed plugin on CUDA platform
OpenMM-plumed plugin on CUDA platform
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
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
- Peter Eastman
- Posts: 2593
- Joined: Thu Aug 09, 2007 1:25 pm
Re: OpenMM-plumed plugin on CUDA platform
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
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
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
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
- Peter Eastman
- Posts: 2593
- Joined: Thu Aug 09, 2007 1:25 pm
Re: OpenMM-plumed plugin on CUDA platform
I'm not sure what you're talking about. CustomManyParticleForce is totally unrelated. It has nothing to do with collective variables.
Peter
Peter
Re: OpenMM-plumed plugin on CUDA platform
For instance, if we want to do umbrella sampling on one dihedral angle, can we just pass:
into "CustomManyParticleForce"
Or equivalently we may also pass
into "CustomCVForce"
and then define "phi" as a CV separately.
Is that how CustomCVForce works?
Wei
Code: Select all
1/2 * (phi - 1) ^ 2;
phi = dihedral(p1,p2,p3,p4);
Or equivalently we may also pass
Code: Select all
1/2 * (phi - 1) ^ 2;
and then define "phi" as a CV separately.
Is that how CustomCVForce works?
Wei
- Peter Eastman
- Posts: 2593
- Joined: Thu Aug 09, 2007 1:25 pm
Re: OpenMM-plumed plugin on CUDA platform
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
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
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
Just curious, are you going to implement biasing methods (e.g. metadynamics and some others) on top of Custom CV in OpenMM package?
Wei
- Peter Eastman
- Posts: 2593
- Joined: Thu Aug 09, 2007 1:25 pm
Re: OpenMM-plumed plugin on CUDA platform
Yes, that's the plan.
Peter
Peter
Re: OpenMM-plumed plugin on CUDA platform
Nice to hear that!
Thank you!
Wei
Thank you!
Wei
- web design
- Posts: 10
- Joined: Fri Aug 18, 2017 12:43 pm
Re: OpenMM-plumed plugin on CUDA platform
It was so good