OpenMM Troubleshooting Guide
=== Errors During Installation === [notebookHelp] 1. [Mac/Linux] The installation script fails, and "Permission denied" appears somewhere in the output.
- This happens when you are trying to install in a location you do not have permission to write to. The default install location is /usr/local/openmm, which typically has restricted access. In addition, the Python packages get installed into Python's site-packages directory, which for the default system Python will usually have restricted access.
- The simplest solution is to run the install script as root:
If you do not have root access, you can instead install OpenMM to a location inside your home directory. Be sure to set the OPENMM_PLUGIN_DIR environment variable to point to the plugin directory, as described in the User Guide. You will also need to instruct Python to install the Python packages inside your home directory by including the --user command line option:
2. [Windows] The Python API installer displays an error that the required Python version "was not found in the registry".
- Make sure you are running the Python API installer corresponding to the Python version you have installed.
OpenMM requires the standard Python version from http://python.org. It may not work with other Python versions, such as the ones included with Cygwin.
- OpenMM requires 32 bit Python. Even if you are using 64 bit Windows, you should still install the 32 bit version of Python.
3. [Windows] A "Program Compatibility Assistant" window appears with the warning, "This program might not have installed correctly."
- This message is harmless. Just click "This program installed correctly" and ignore it.
Errors Running the testInstallation.py Script
1. The script fails with the message, "Failed to import OpenMM packages."
- This may indicate that the OpenMM Python API has not been installed. In this case, the error message will specify, "No module named simtk.openmm.app." Make sure you are running the script with the same Python you installed the OpenMM API into.
- It may also indicate that the OpenMM libraries could not be loaded. The error message may specify, "cannot open shared object file," or, "Library not loaded." Make sure the library path is set correctly to include the OpenMM lib directory. For Linux, also make sure you have installed the OpenMM version (32 or 64 bit) that matches the Python you are using.
2. The script does not list the OpenCL and/or CUDA platforms as being available.
- Make sure you have set the library path correctly, as described in the User Guide. It should include the lib directory from the CUDA toolkit (if you have an Nvidia GPU) or AMD APP SDK (if you have an AMD GPU). On Mac OS X, OpenCL is built into the OS, so you only need to do this if you want to use the CUDA platform.
- If you installed OpenMM somewhere other than the default location, make sure you set the OPENMM_PLUGIN_DIR environment variable to point to its plugins directory.
3. [Mac] An error occurs computing forces with the OpenCL platform.
- There is a serious bug in the OpenCL implementation on OS X 10.7.5 and later that prevents OpenMM from working correctly. It typically produces an error message similar to
OpenCL internal error: OpenCL Warning : clBuildProgram failed: could not build program for 0x1022600 (GeForce GT 330M) (err:-44)
- If you have an affected version of OS X, use the CUDA platform instead of the OpenCL platform.
- This also can happen on laptops with multiple GPUs, only one of which supports OpenCL. To make sure the correct GPU is enabled, open the System Preferences and go to the Energy Saver panel. On OS X 10.6, look for two radio buttons at the top labeled "Better battery life" and "Higher performance". Make sure that "Higher performance" is selected. On OS X 10.7, there will be a single checkbox labeled "Automatic graphics switching", which should be disabled.
4. The script crashes when it gets to the CUDA platform.
- Make sure you have installed the correct version of CUDA (both toolkit and driver) specified in the OpenMM documentation. Different CUDA versions are not binary compatible with each other, so OpenMM will only work with the precise version it was compiled against.
Errors Running Simulations
1. Creating a System from a PDB file fails with the message, "No template found for residue."
- OpenMM knows how to handle all standard amino acids, DNA bases, RNA bases, water molecules, and common ions. If your file contains any other compounds, such as small molecules or non-standard amino acids, OpenMM will not be able to process it.
- Make sure your PDB file includes all hydrogen atoms. If it does not, you can use the Modeller class to add missing hydrogens.
Make sure your file uses standard PDB 3.0 names for all atoms and residues. Many programs generate PDB files with non-standard names, and while OpenMM tries hard to recognize the most common variations on names, it cannot always succeed.
If you cannot load your PDB file for any of these reasons, we recommend using AmberTools to process the file and then loading the resulting prmtop and inpcrd files into OpenMM.