Hi there,
I just started to use the OpenMM package and i have an issue with using the AMOEBA FF.
If i am running the testInstallation script everything is fine. Also if i am doing Amber calculations on the CUDA platform everything is smooth. But if i am running an AMOEBA calculation i got the following error message:
Exception: Specified a Platform for a Context which does not support all required kernels
Do you have any idea what the problem could be?
Thanks,
Michael
CUDA Problem using the AMOEBA FF
- Peter Eastman
- Posts: 2573
- Joined: Thu Aug 09, 2007 1:25 pm
Re: CUDA Problem using the AMOEBA FF
Hi Michael,
I can think of two potential problems. First, make sure you really are using the CUDA platform. I know you said you are, but just make absolutely sure, since the OpenCL platform doesn't include AMOEBA, so that could cause this problem.
The other possibility is that the AMOEBA CUDA plugin isn't getting loaded. Try the following commands:
That will print the names of all plugins that got loaded. If the AMOEBA CUDA plugin isn't listed, that's the problem and we need to figure out why. To do that, try loading that plugin individually by calling Platform.loadPluginLibrary(), passing it an absolute path to that file. (It will be inside <OpenMM install directory>/lib/plugins.) If it fails, it will throw an exception with a hopefully informative error message.
Peter
I can think of two potential problems. First, make sure you really are using the CUDA platform. I know you said you are, but just make absolutely sure, since the OpenCL platform doesn't include AMOEBA, so that could cause this problem.
The other possibility is that the AMOEBA CUDA plugin isn't getting loaded. Try the following commands:
Code: Select all
import simtk.openmm as mm
print mm.pluginLoadedLibNames
Peter
- Michael Schauperl
- Posts: 22
- Joined: Wed Sep 04, 2013 6:10 am
Re: CUDA Problem using the AMOEBA FF
Hi Peter,
I tried what you said. Acutally the following plugins are loaded:
('libOpenMMDrudeSerialization.so', 'libOpenMMOpenCL.so', 'libOpenMMRPMDOpenCL.so', 'libOpenMMAmoebaSerialization.so', 'libOpenMMPME.so', 'libOpenMMCUDA.so')
Which means that the AMOEBA CUDA plugin isnt loaded.
If i am importing it per your definition, the program works.
You have any idea why i have to do that?
Thanks for your help,
Michael
I tried what you said. Acutally the following plugins are loaded:
('libOpenMMDrudeSerialization.so', 'libOpenMMOpenCL.so', 'libOpenMMRPMDOpenCL.so', 'libOpenMMAmoebaSerialization.so', 'libOpenMMPME.so', 'libOpenMMCUDA.so')
Which means that the AMOEBA CUDA plugin isnt loaded.
If i am importing it per your definition, the program works.
You have any idea why i have to do that?
Thanks for your help,
Michael
- Peter Eastman
- Posts: 2573
- Joined: Thu Aug 09, 2007 1:25 pm
Re: CUDA Problem using the AMOEBA FF
Strange. Let's confirm what's really happening.
First, I assume you're using the binary distribution of OpenMM 5.2?
Try
So it really is loading plugins from the directory you think it is?
Now try
and libOpenMMAmoebaCUDA.so does not get listed? But if you call Platform.loadPluginLibrary(), specifying just that file in the same directory, it does successfully load?
Peter
First, I assume you're using the binary distribution of OpenMM 5.2?
Try
Code: Select all
print Platform.getDefaultPluginsDirectory()
Now try
Code: Select all
print Platform.loadPluginsFromDirectory(Platform.getDefaultPluginsDirectory())
Peter
- Michael Schauperl
- Posts: 22
- Joined: Wed Sep 04, 2013 6:10 am
Re: CUDA Problem using the AMOEBA FF
Hi Peter,
I am using the binary distribution.
if i am using the command
Platform.loadPluginsFromDirectory(Platform.getDefaultPluginsDirectory())
the Amoeba Cuda package is loaded.
I am using the binary distribution.
if i am using the command
Platform.loadPluginsFromDirectory(Platform.getDefaultPluginsDirectory())
the Amoeba Cuda package is loaded.
- Peter Eastman
- Posts: 2573
- Joined: Thu Aug 09, 2007 1:25 pm
Re: CUDA Problem using the AMOEBA FF
That's really strange. That is precisely the line that gets executed when you "import simtk.openmm". Inside the __init__.py for that package you'll find
I have no idea why it would fail to load the plugin there, but succeed when you entered exactly the same command later...
Peter
Code: Select all
pluginLoadedLibNames = Platform.loadPluginsFromDirectory(Platform.getDefaultPluginsDirectory())
Peter