Having said that, I never ended up using the GPU-enabled gromacs for which I built openmm, so it was all an enormous waste of time -- for those of you thinking about GPU/Gromacs know this:
* not all graphics cards are supported or worth supporting
* there's no speed-up for explicit solvent molecules, and what else would you use gromacs or MD for?
* consumer-grade graphics cards get very hot
I make no attempt at ferreting out what packages are needed other than what I'm explicitly prompted for. Look at http://verahill.blogspot.com.au/2012/01/debian-testing-64-wheezy_20.html for an indication of what you might need.
Also, I already have openmm 4.0 installed, so e.g. paths and other things defined in the post above are still active.
Start here
Register with simtk.org and download the source file.
sudo apt-get install cmake-curses-gui libgccxml-dev gccxml nvidia-cuda-toolkit
unzip -x OpenMM4.1-Source.zipe
mkdir openmm_build
cd openmm_build/
ccmake -i ../OpenMM4.1-Source/
It'll say Empty Cache. Hit c which will populate the list.
I think we can ignore the EMU libs since they do device emulation. I never figured out what the CUT program was and it's not mentioned in the manual from what I can see.
These are the settings I chose -- I had problems before setting the OPENCL parts (in red) to off.
BUILD_TESTING:BOOL=ON
CMAKE_BUILD_TYPE:STRING=Release
CMAKE_INSTALL_PREFIX:PATH=/home/verahill/.openmm
CUDA_BUILD_TYPE:STRING=Device
CUDA_INSTALL_PREFIX:PATH=/usr/bin
CUDA_NVCC:FILEPATH=/usr/bin/nvcc
DL_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libdl.so
FOUND_CUBLAS:FILEPATH=/usr/lib/x86_64-linux-gnu/libcublas.so
FOUND_CUBLASEMU:FILEPATH=FOUND_CUBLASEMU-NOTFOUND
FOUND_CUFFT:FILEPATH=/usr/lib/x86_64-linux-gnu/libcufft.so
FOUND_CUFFTEMU:FILEPATH=FOUND_CUFFTEMU-NOTFOUND
FOUND_CUT:FILEPATH=FOUND_CUT-NOTFOUND
FOUND_CUT_INCLUDE:PATH=FOUND_CUT_INCLUDE-NOTFOUND
GCCXML_EXTRA_ARGS:STRING=
GCCXML_PATH:FILEPATH=/usr/bin/gccxml
OPENMM_BUILD_AMOEBA_CUDA_LIB:BOOL=ON
OPENMM_BUILD_AMOEBA_PLUGIN:BOOL=ON
OPENMM_BUILD_CUDA_LIB:BOOL=ON
OPENMM_BUILD_CUDA_TESTS:BOOL=TRUE
OPENMM_BUILD_C_AND_FORTRAN_WRAPPERS:BOOL=ON
OPENMM_BUILD_FREE_ENERGY_CUDA_LIB:BOOL=ON
OPENMM_BUILD_FREE_ENERGY_PLUGIN:BOOL=ON
OPENMM_BUILD_OPENCL_LIB:BOOL=OFF
OPENMM_BUILD_OPENCL_TESTS:BOOL=OFF
OPENMM_BUILD_PYTHON_WRAPPERS:BOOL=ON
OPENMM_BUILD_RPMD_OPENCL_LIB:BOOL=OFF
OPENMM_BUILD_RPMD_PLUGIN:BOOL=ON
OPENMM_BUILD_SERIALIZATION_SUPPORT:BOOL=ON
OPENMM_BUILD_STATIC_LIB:BOOL=ON
OPENMM_GENERATE_API_DOCS:BOOL=OFF
OPENMM_SVN_REVISION:STRING=exported
PYTHON_EXECUTABLE:FILEPATH=/usr/bin/python
SVNVERSION_PROGRAM:FILEPATH=/usr/bin/svnversion
SWIG_EXECUTABLE:FILEPATH=/usr/bin/swig
SWIG_VERSION:STRING=2.0.7
Make your changes and hit c again, then hit g which brings you back to the terminal.
make -d|tee make.log
make test
If all goes well you'll see
126/126 Test #126: TestParser ...................................... Passed 0.02 sec
100% tests passed, 0 tests failed out of 126
Total Test time (real) = 345.83 sec
make install
[..]
-- Installing: /home/verahill/.openmm/examples/Makefile
-- Installing: /home/verahill/.openmm/examples/NMakefile
-- Installing: /home/verahill/.openmm/examples/MakefileNotes.txt
-- Installing: /home/verahill/.openmm/examples/Empty.cpp
And you are done!
tree ~/.openmm/ -L 4 -d
.openmm/
|-- bin
|-- docs
| |-- api-c++
| `-- api-python
|-- examples
| `-- VisualStudio
|-- include
| `-- openmm
| |-- internal
| `-- serialization
|-- lib
| `-- plugins
`-- licenses
Very usefull. My compilation not pass all the test only 59 of 126. What can I do?
ReplyDeleteErnesto,
ReplyDeleteI can't really tell without knowing what tests passed and which ones didn't.
Did it fail 67 tests or just didn't run them?
What were the error messages?
53% tests passed, 59 tests failed out of 126
ReplyDeleteTotal Test time (real) = 22.84 sec
I am new using cmake, and I don´t like it! The log doesn´t give me any usefull message
Thanks
Note that make -d is make in debug mode -- it's been a while so not sure why I did that, but be aware that some information might be lost in the massive amount of stuff -d returns -- i.e. try building just using make.
DeleteAll I can guess is that your make doesn't complete properly and that there are missing files, but it's hard without any specific error messages.
OpenMM is generally a PITA to compile, and cmake doesn't exactly help.
Close
ReplyDeletePreview
Edit Anonymous said...
Dear lindqvist!
I've forced with the problem during compilation of the openMM 4.1.1. I've followed to the instructions of your blog but obtain error during make install step
[ 95%] Creating OpenMM Python swig input files...
Traceback (most recent call last):
File "/usr/local/openmm/python/src/swig_doxygen/swigInputBuilder.py", line 616, in
main()
File "/usr/local/openmm/python/src/swig_doxygen/swigInputBuilder.py", line 590, in main
pythonappendFilename, skipAdditionalMethods)
File "/usr/local/openmm/python/src/swig_doxygen/swigInputBuilder.py", line 135, in __init__
root = etree.parse(os.path.join(inputDirname, file)).getroot()
File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1183, in parse
Why this occurs ? Actually I have updated swig and dohygen. Finally below you can found output of cmake file
Code: Select all
-- The C compiler identification is GNU 4.6.3
-- The CXX compiler identification is GNU 4.6.3
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Could not find 'svnversion' executable; 'about' will be wrong. (Cygwin provides one on Windows.)
-- Found OPENCL: /usr/lib/x86_64-linux-gnu/libOpenCL.so
thanks for help
James
Have a look at this post: http://verahill.blogspot.com.au/2012/01/debian-testing-64-wheezy_20.html -- look under "Errors and Solutions", number 4.
DeleteBasically:
wget http://py-dom-xpath.googlecode.com/files/py-dom-xpath-0.1.tar.gz
tar xvf py-dom-xpath-0.1.tar.gz
cd py-dom-xpath-0.1/
sudo python setup.py install
Hello,
ReplyDeletethanks for the tutorial, I'm doing the same procedure for my 64 bit machine but I got this error:
/usr/local/cuda/lib/libcudart.so: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
make[2]: *** [libOpenMMCuda.so] Error 1
make[1]: *** [platforms/cuda/sharedTarget/CMakeFiles/OpenMMCuda.dir/all] Error 2
make: *** [all] Error 2
Could you help me please?
Thanks in advance.
Try
Deletefile /usr/local/cuda/lib/libcudart.so
I presume that the output is consistent with your architecture? Does it come from libcudart or nvidia-cuda-dev or another package?
it worked the make step but in the make test step all the cuda test failed:
ReplyDelete63% tests passed, 59 tests failed out of 160
Total Test time (real) = 199.64 sec
The following tests FAILED:
31 - TestCudaGBVIForce (Failed)
32 - TestCudaSettle (Failed)
33 - TestCudaVerletIntegrator (Failed)
34 - TestCudaMonteCarloBarostat (Failed)
35 - TestCudaLocalEnergyMinimizer (Failed)
36 - TestCudaLangevinIntegrator (Failed)
37 - TestCudaCustomNonbondedForce (Failed)
38 - TestCudaRBTorsionForce (Failed)
39 - TestCudaGBSAOBCForce2 (Failed)
40 - TestCudaNonbondForce2 (Failed)
41 - TestCudaGBVIForce2 (Failed)
42 - TestCudaHarmonicAngleForce (Failed)
43 - TestCudaPeriodicTorsionForce (Failed)
44 - TestCudaAndersenThermostat (Failed)
45 - TestCudaCustomTorsionForce (Failed)
46 - TestCudaCMAPTorsionForce (Failed)
47 - TestCudaCustomAngleForce (Failed)
48 - TestCudaNonbondedForce (Failed)
49 - TestCudaCMMotionRemover (Failed)
50 - TestCudaEwald (Failed)
51 - TestCudaHarmonicBondForce (Failed)
52 - TestCudaRandom (Failed)
53 - TestCudaGBSAOBCForce (Failed)
54 - TestCudaVariableVerletIntegrator (Failed)
55 - TestCudaVariableLangevinIntegrator (Failed)
56 - TestCudaBrownianIntegrator (Failed)
57 - TestCudaCustomExternalForce (Failed)
58 - TestCudaCustomBondForce (Failed)
95 - TestCudaOBCSoftcoreForce (Failed)
96 - TestCudaLJSoftcoreForce (Failed)
97 - TestCudaGBVISoftcoreForce (Failed)
98 - TestSerializeFreeEnergyNonbondedSoftcoreForce (Failed)
99 - TestSerializeFreeEnergyGBVISoftcoreForce (Failed)
100 - TestSerializeFreeEnergyGBSAOBCSoftcoreForce (Failed)
111 - TestCudaAmoebaVdwForce (Failed)
112 - TestCudaAmoebaTorsionForce (Failed)
113 - TestCudaAmoebaHarmonicInPlaneAngleForce (Failed)
114 - TestCudaAmoebaOutOfPlaneBendForce (Failed)
115 - TestCudaAmoebaHarmonicBondForce (Failed)
116 - TestCudaAmoebaTorsionTorsionForce (Failed)
117 - TestCudaAmoebaUreyBradleyForce (Failed)
118 - TestCudaAmoebaPME (Failed)
119 - TestCudaAmoebaHarmonicAngleForce (Failed)
121 - TestCudaAmoebaPiTorsionForce (Failed)
122 - TestCudaAmoebaStretchBendForce (Failed)
123 - TestSerializeAmoebaGeneralizedKirkwoodForce (Failed)
124 - TestSerializeAmoebaMultipoleForce (Failed)
125 - TestSerializeAmoebaPiTorsionForce (Failed)
126 - TestSerializeAmoebaOutOfPlaneBendForce (Failed)
127 - TestSerializeAmoebaUreyBradleyForce (Failed)
128 - TestSerializeAmoebaTorsionForce (Failed)
129 - TestSerializeAmoebaWcaDispersionForce (Failed)
130 - TestSerializeAmoebaHarmonicInPlaneAngleForce (Failed)
131 - TestSerializeAmoebaStretchBendForce (Failed)
132 - TestSerializeAmoebaHarmonicBondForce (Failed)
133 - TestSerializeAmoebaVdwForce (Failed)
134 - TestSerializeAmoebaTorsionTorsionForce (Failed)
135 - TestSerializeAmoebaHarmonicAngleForce (Failed)
137 - TestOpenCLRpmd (Failed)
Errors while running CTest
I used the default ccmake configuration https://dl.dropbox.com/u/11027999/ffavela%40beta%20%28148.247.182.154%29%20-%20byobu_002.png
Could you please help me?
Cheers!
What happened with libcudart.so?
DeleteRun make with verbose output and see what's missing.
What version are you building? 4.1 or 4.1.1?
In trying with openmm 4.1.1 - CUDA 5 and - 3 Nvidia GTX 680 cards, is there any compatibility problem?
ReplyDeleteThanks in advance.
I haven't tried 4.1.1, only 4.0 and 4.1.
DeleteDid you fix the libcudart.so issue?
What did running with verbose output yield?
the libcudart.so issue dissapear with this:
ReplyDeletecd /usr/local/cuda
sudo mv lib lib32
sudo ln -s lib64 lib
My log files
https://dl.dropbox.com/u/11027999/make.log
https://dl.dropbox.com/u/11027999/test.log
And if I try for example ./TestCudaEwald I get this error:
ReplyDeleteexception: cudaMemcpyToSymbol: SetSim copy to cSim failed invalid device symbol
The last error could be due differences in versions between the expect libs and the present libs.
DeleteFor the test errors you may want to post on the simtk.org website.
I'm not using openmm any longer (for implicit solvation I might as well use nwchem) and haven't compiled 4.1.1, so I don't know if it's something particular with your setup or if it's the usual QC issues when it comes to the openmm code.
I'll do it.
ReplyDeleteThanks :)