Page 1 of 2

OpenMM 5.0 beta

Posted: Thu Dec 20, 2012 1:28 pm
by peastman
We've released a beta of OpenMM 5.0, and we're looking for people to help test it. You can find information about it on the beta testers mailing list.

If you'd like to try it, you should add yourself to the mailing list, then email me so I can give you access to it.

Thanks in advance!

Peter

Re: OpenMM 5.0 beta

Posted: Tue Jan 01, 2013 8:21 am
by brookscl
Dear Peter,

Happy New Year! Can you provide some guidance regarding installation for testing of OpenMM5.0. I have successfully installed the precompiled version on my Mac OSX10.8 laptop and can run some of our tests through the CHARMM/OpenMM interface. However, I seem to have problems w/ using the variable timestep dynamics. This hangs my machine/fails in all cases we test (variable timestep w/ Verlet and Langevin).

To further check things I have attempted to have installed the precompiled versions of OpenMM5.0 on our Linux machines with various NVIDIA GPUs installed. I am having a number of issues getting this to work. It seems the OpenCL now will run but I am not successful in getting any CUDA calculations to run (through the OpenMM/CHARMM interface). I am a bit unsure what needs to be updated regarding the CUDA libraries and drivers, e.g., do the latest drivers need to be installed as well as the latest CUDA compilers and libraries?

Also, using OpenCL on the Linux/NVIDIA platforms I find that the single precision variable timestep dynamics appears to work as in the past, but mixed and double yield an exception:

terminate called after throwing an instance of 'OpenMM::OpenMMException'
what(): Error downloading array stepSize: clEnqueueReadBuffer (-36)
Abort


I am able to get the precompiled code to run on one of our Linux/NVICIA platforms in CUDA and I get the following error when using the variable timestep algorithm:

terminate called after throwing an instance of 'OpenMM::OpenMMException'
what(): getPropertyValue: Illegal property name
terminate called recursively
Abort


Any guidance you have regarding this, both the variable timestep error and the requirements for NVIDIA Cuda compilers, drivers and tools would be helpful.

Cheers,

Charles Brooks

Re: OpenMM 5.0 beta

Posted: Wed Jan 02, 2013 11:08 pm
by peastman
This hangs my machine/fails in all cases we test (variable timestep w/ Verlet and Langevin).
Could you describe exactly what happens? Does the test hang and needed to be killed? Or the machine freezes and needs to be rebooted? Or something else? I assume this is with CUDA (since OS X 10.8 has serious problems with OpenCL)?
do the latest drivers need to be installed as well as the latest CUDA compilers and libraries?
The OpenMM 5.0 binaries were all compiled against CUDA 5.0. Since CUDA isn't binary compatible between releases, they will only work with that exact release. So you need both the toolkit and drivers corresponding to that. On the other hand, if you recompile OpenMM from source, it ought to work with some earlier CUDA versions.
what(): Error downloading array stepSize: clEnqueueReadBuffer (-36)
That generally means, "Something is messed up on the GPU." It's not actually a problem in downloading the array. That's just the point where the driver figures out that some previous operation has overwritten something in device memory.

Perhaps you can figure out more specifically where the error is happening. Each test program contains several unit tests. For example, TestOpenCLVariableLangevinIntegrator has four test methods (testSingleBond, testTemperature, testConstraints, and testRandomSeed) that are each called from its main() function. Could you try removing all but one of the calls, then running it? That way we can see which of the four tests are producing the error.

I gather that variable time step CUDA test cases pass?
what(): getPropertyValue: Illegal property name
Is this happening when you run one of the test cases, or is it in CHARMM? This means someone is calling getPropertyValue() on a Platform, asking for a property that isn't defined for that Platform. Can you tell where it's being called from?

Happy New Year!

Peter

Re: OpenMM 5.0 beta

Posted: Mon Jan 07, 2013 2:08 pm
by brookscl
Hi Peter,

Michael Garrahan and I have dug in some more and will soon send model "unit tests" that demonstrate the following failures in OpenMM5.0

Using OpenMM5.0 on CUDA platform with VariableLangevinIntegrator causes an exception to be thrown for all precision models.

Using OpenMM5.0 on OpenCL platform with VariableVerletIntegrator and VariableLangevinIntegrator causes an exception to be thrown for precision models "mixed" and "double".

This appears to be size dependent, because the existing variable timestep integrator unit tests work. The one we will send considers an 8x8x8 array of Argon/LJ atoms with periodic boundary conditions.

I note that if one makes the example C++ code HellowWaterBox.cpp use a variable timestep Langevin integrator and the CUDA platform it too throws the same exception as the unit tests.

Re: OpenMM 5.0 beta

Posted: Mon Jan 07, 2013 2:47 pm
by peastman
Thanks for helping to track this down. I successfully reproduced the problem by converting HelloWaterBox.cpp to use a VariableLangevinIntegrator (but a VariableVerletIntegrator works fine). I'll see if I can figure out where it's coming from.

Do send along your unit tests when they're ready. Those will be helpful too.

Peter

Re: OpenMM 5.0 beta

Posted: Mon Jan 07, 2013 4:02 pm
by peastman
Ok, I've checked in the fix. It's in revision 3565 if you want to try it yourself.

Peter

Re: OpenMM 5.0 beta

Posted: Mon Jan 07, 2013 7:31 pm
by brookscl
Thanks Peter. We'll check it out.

Charlie

P. S. did you find both the issues in CUDA and OpenCL?

Re: OpenMM 5.0 beta

Posted: Mon Jan 07, 2013 7:35 pm
by peastman
Yes, they're both fixed. The problems were slightly different, but very closely related. They were both allocating too little memory for an array on the GPU, just for different reasons.

Peter

Re: OpenMM 5.0 beta

Posted: Mon Jan 07, 2013 7:38 pm
by mgarraha
r3565 does not throw the OpenMMExceptions we were getting from our variable timestep CHARMM test script on either CUDA or OpenCL.

Re: OpenMM 5.0 beta

Posted: Mon Jan 07, 2013 8:06 pm
by peastman
Great, thanks!

Peter