The functionality of OpenMM will (eventually) include everything that one would need to run modern molecular simulation.
-
Kevin Bishop
- Posts: 11
- Joined: Sat Nov 03, 2012 8:10 pm
Post
by Kevin Bishop » Wed Feb 18, 2015 1:03 pm
Hello,
I've been trying to install the Linux binary. From the installation guide, it appears all I need to do is set LD_LIBRARY_PATH and OPENMM_CUDA_COMPILER prior to running install.sh. My variables are set as follows:
Code: Select all
LD_LIBRARY_PATH=/usr/local/cuda-6.5/lib64:/usr/lib64:/home/sdm/Dev/lib:/home/sdm/Dev/openmm/lib:/home/sdm/Dev/openmm/lib/plugins
OPENMM_CUDA_COMPILER=/usr/local/cuda-6.5/bin/nvcc
I've run the install and everything looks to be ok but when I test it with python -m simtk.testInstallation, I get:
Code: Select all
There are 4 Platforms available:
1 Reference - Successfully computed forces
2 CPU - Successfully computed forces
3 OpenCL - Successfully computed forces
Segmentation fault (core dumped)
I've tried to track down where it could be having trouble and managed to find this error:
Code: Select all
Program received signal SIGSEGV, Segmentation fault.
0x00002aaab7bb6739 in cufftCreate () from /usr/local/cuda-6.5/lib64/libcufft.so.6.5
Missing separate debuginfos, use: debuginfo-install bzip2-libs-1.0.5-7.el6_0.x86_64 glibc-2.12-1.132.el6.x86_64 keyutils-libs-1.4-4.el6.x86_64 krb5-libs-1.10.3-15.el6_5.1.x86_64 libcom_err-1.41.12-18.el6.x86_64 libgcc-4.4.7-4.el6.x86_64 libselinux-2.0.94-5.3.el6_4.1.x86_64 libstdc++-4.4.7-4.el6.x86_64 openssl-1.0.1e-16.el6_5.14.x86_64
Any advice is greatly appreciated!
Thanks!
Kevin
-
Kevin Bishop
- Posts: 11
- Joined: Sat Nov 03, 2012 8:10 pm
Post
by Kevin Bishop » Wed Feb 18, 2015 1:11 pm
I've also seen the following output:
Code: Select all
There are 4 Platforms available:
1 Reference - Successfully computed forces
2 CPU - Successfully computed forces
3 OpenCL - Successfully computed forces
4 CUDA - Error computing forces with CUDA platform
CUDA platform error: Error initializing FFT: 11
Median difference in forces between platforms:
Reference vs. CPU: 2.02195e-05
Reference vs. OpenCL: 2.15539e-05
CPU vs. OpenCL: 1.59235e-05
So for some reason, the FFT isn't initializing properly with CUDA.
Kevin
-
Peter Eastman
- Posts: 2611
- Joined: Thu Aug 09, 2007 1:25 pm
Post
by Peter Eastman » Wed Feb 18, 2015 1:31 pm
Try this:
ldd /home/sdm/Dev/openmm/lib/plugins/libOpenMMCUDA.so
That will print out information about all the libraries it's linking to. I'm wondering if it's somehow picking up the wrong version of cufft.
Also, let's make sure it's really using the version of OpenMM you think it is. Launch a python interpreter then type:
import simtk.openmm
print(simtk.openmm.version.openmm_library_path)
I assume you have not set OPENMM_PLUGIN_DIR, correct?
Peter
-
Kevin Bishop
- Posts: 11
- Joined: Sat Nov 03, 2012 8:10 pm
Post
by Kevin Bishop » Wed Feb 18, 2015 1:53 pm
Thanks for the quick reply!
Code: Select all
$ ldd /home/sdm/Dev/openmm/lib/plugins/libOpenMMCUDA.so
linux-vdso.so.1 => (0x00007fff5271e000)
libOpenMM.so => /home/sdm/Dev/openmm/lib/libOpenMM.so (0x00002b7c9db1b000)
libcuda.so.1 => /usr/lib64/libcuda.so.1 (0x00002b7c9dfe9000)
libcufft.so.6.5 => /usr/local/cuda-6.5/lib64/libcufft.so.6.5 (0x00002b7c9ef4d000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00002b7ca1983000)
libdl.so.2 => /lib64/libdl.so.2 (0x00002b7ca1ba1000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00002b7ca1da5000)
libm.so.6 => /lib64/libm.so.6 (0x00002b7ca20ab000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00002b7ca2330000)
libc.so.6 => /lib64/libc.so.6 (0x00002b7ca2546000)
librt.so.1 => /lib64/librt.so.1 (0x00002b7ca28da000)
libz.so.1 => /home/sdm/Dev/lib/libz.so.1 (0x00002b7ca2ae3000)
/lib64/ld-linux-x86-64.so.2 (0x0000003793e00000)
So it appears to be picking up the correct version of cufft. Could the problem be that libcuda is linking to a different directory?
I have tried setting OPENMM_PLUGIN_DIR but I have unset it and obtained the following from a python interpreter:
Code: Select all
Python 2.7.9 (default, Feb 18 2015, 11:03:27)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import simtk.openmm
>>> print(simtk.openmm.version.openmm_library_path)
/home/sdm/Dev/openmm/lib
-
Kevin Bishop
- Posts: 11
- Joined: Sat Nov 03, 2012 8:10 pm
Post
by Kevin Bishop » Wed Feb 18, 2015 2:31 pm
I figured out what was causing the problem.
I had updated the machine to CUDA 6.5 awhile ago and it put nvcc in /usr/local/cuda-6.5 but the utilities in /usr/bin/nvidia* (ie. nvidia-smi) were still with the older driver 331.x. I updated these files and nvidia-smi now shows Driver version 340.29 and OpenMM passes all the tests!
Thanks for the help!
Kevin