OPENMM installation problem

The functionality of OpenMM will (eventually) include everything that one would need to run modern molecular simulation.
POST REPLY
User avatar
Jyh-Shyong Ho
Posts: 5
Joined: Thu Jan 15, 2009 8:45 pm

OPENMM installation problem

Post by Jyh-Shyong Ho » Mon Feb 23, 2009 6:09 pm

Hi,

I just downloaded OpenMM source and tried to installed it on our
computer running Open OpenSuSE 11.0,
but failed due to some unknown error. The computer has NVIDIA C1060 and
Cuda driver and toolkit installed
(both are the latest version).

Here is the installation log:

chem@gch:/scratch/OpenMMPreview2-Source/src> cmake
/scratch/OpenMMPreview2-Source/src

-- Looking for doxygen...
-- Looking for doxygen... - found /usr/bin/doxygen
-- Looking for dot tool...
-- Looking for dot tool... - found /usr/bin/dot
-- Configuring done
-- Generating done
-- Build files have been written to: /scratch/OpenMMPreview2-Source/src


chem@gch:/scratch/OpenMMPreview2-Source/src> make
Scanning dependencies of target OpenMM_d
[ 0%] Building CXX object
CMakeFiles/OpenMM_d.dir/openmmapi/src/OpenMMContextImpl.cpp.o
[ 0%] Building CXX object
CMakeFiles/OpenMM_d.dir/openmmapi/src/RBTorsionForceImpl.cpp.o
[ 0%] Building CXX object
CMakeFiles/OpenMM_d.dir/openmmapi/src/NonbondedForceImpl.cpp.o
[ 1%] Building CXX object
CMakeFiles/OpenMM_d.dir/openmmapi/src/RBTorsionForce.cpp.o
[ 1%] Building CXX object
CMakeFiles/OpenMM_d.dir/openmmapi/src/HarmonicAngleForceImpl.cpp.o
[ 1%] Building CXX object
CMakeFiles/OpenMM_d.dir/openmmapi/src/PeriodicTorsionForceImpl.cpp.o
[ 2%] Building CXX object
CMakeFiles/OpenMM_d.dir/openmmapi/src/OpenMMContext.cpp.o
[ 2%] Building CXX object
CMakeFiles/OpenMM_d.dir/openmmapi/src/PeriodicTorsionForce.cpp.o
[ 2%] Building CXX object
CMakeFiles/OpenMM_d.dir/openmmapi/src/BrownianIntegrator.cpp.o
[ 3%] Building CXX object
CMakeFiles/OpenMM_d.dir/openmmapi/src/AndersenThermostatImpl.cpp.o
In file included from
/scratch/OpenMMPreview2-Source/src/openmmapi/include/internal/AndersenTher
mostatImpl.h:35,
from
/scratch/OpenMMPreview2-Source/src/openmmapi/src/AndersenThermostatImpl.cp
p:32:
/scratch/OpenMMPreview2-Source/src/openmmapi/include/internal/ForceImpl.h:
97:
error: 滻tring?is not a member of 滻td?
/scratch/OpenMMPreview2-Source/src/openmmapi/include/internal/ForceImpl.h:
97:
error: 滻tring?is not a member of 滻td?
/scratch/OpenMMPreview2-Source/src/openmmapi/include/internal/ForceImpl.h:
97:
error: template argument 1 is invalid
/scratch/OpenMMPreview2-Source/src/openmmapi/include/internal/ForceImpl.h:
97:
error: template argument 3 is invalid
/scratch/OpenMMPreview2-Source/src/openmmapi/include/internal/ForceImpl.h:
97:
error: template argument 4 is invalid
/scratch/OpenMMPreview2-Source/src/openmmapi/include/internal/ForceImpl.h:
101:
error: 滻tring?is not a member of 滻td?
/scratch/OpenMMPreview2-Source/src/openmmapi/include/internal/ForceImpl.h:
101:
error: 滻tring?is not a member of 滻td?
/scratch/OpenMMPreview2-Source/src/openmmapi/include/internal/ForceImpl.h:
101:
error: template argument 1 is invalid
/scratch/OpenMMPreview2-Source/src/openmmapi/include/internal/ForceImpl.h:
101:
error: template argument 2 is invalid
In file included from
/scratch/OpenMMPreview2-Source/src/openmmapi/src/AndersenThermostatImpl.cp
p:32:
/scratch/OpenMMPreview2-Source/src/openmmapi/include/internal/AndersenTher
mostatImpl.h:60:
error: conflicting return type specified for 潎irtual
std::map<std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, double, std::less<std::basic_string<char,
std::char_traits<char>, std::allocator<char> > >,
std::allocator<std::pair<const std::basic_string<char,
std::char_traits<char>, std::allocator<char> >, double> > >
OpenMM::AndersenThermostatImpl::getDefaultParameters()?
/scratch/OpenMMPreview2-Source/src/openmmapi/include/internal/ForceImpl.h:
97:
error: overriding 潎irtual int OpenMM::ForceImpl::getDefaultParameters()?
/scratch/OpenMMPreview2-Source/src/openmmapi/include/internal/AndersenTher
mostatImpl.h:61:
error: conflicting return type specified for 潎irtual
std::vector<std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, std::allocator<std::basic_string<char,
std::char_traits<char>, std::allocator<char> > > >
OpenMM::AndersenThermostatImpl::getKernelNames()?
/scratch/OpenMMPreview2-Source/src/openmmapi/include/internal/ForceImpl.h:
101:
error: overriding 潎irtual int OpenMM::ForceImpl::getKernelNames()?
make[2]: ***
[CMakeFiles/OpenMM_d.dir/openmmapi/src/AndersenThermostatImpl.cpp.o] Error
1
make[1]: *** [CMakeFiles/OpenMM_d.dir/all] Error 2
make: *** [all] Error 2

The installation failed due to some errors, perhaps I have missed some
step? Any suggestion is welcome and
appreciated.

Jyh-Shyong Ho, Ph.D.
Research Scientist
National Center for High Performance Computing
Hsinchu, Taiwan, ROC

User avatar
Peter Eastman
Posts: 2564
Joined: Thu Aug 09, 2007 1:25 pm

RE: OPENMM installation problem

Post by Peter Eastman » Mon Feb 23, 2009 6:19 pm

You must be using gcc 4.3. OpenMM was developed with gcc 4.2, and I've recently discovered that a couple of minor changes are necessary to make it compile under 4.3. You need to add

#include <string>

to ForceImpl.h, and

#include <stdlib>
#include <string>

to cudatypes.h.

Peter

User avatar
Jyh-Shyong Ho
Posts: 5
Joined: Thu Jan 15, 2009 8:45 pm

RE: OPENMM installation problem

Post by Jyh-Shyong Ho » Mon Feb 23, 2009 9:52 pm

Thanks, I did the modification, now there is another error message:

...
Linking CXX executable ../../../TestReferenceRandom
[ 42%] Built target TestReferenceRandom
Scanning dependencies of target TestReferenceVerletIntegrator
[ 42%] Building CXX object platforms/reference/tests/CMakeFiles/TestReferenceVerletIntegrator.dir/TestReferenceVerletIntegrator.cpp.o
Linking CXX executable ../../../TestReferenceVerletIntegrator
[ 42%] Built target TestReferenceVerletIntegrator
[ 42%] Building (Device) NVCC Dependency File: /scratch/OpenMMPreview2-Source/src/src/cuda/src/kernels//kCalculateCDLJForces.cu_OpenMMCuda_d_generated.cpp.NVCC-depend
In file included from /scratch/OpenMMPreview2-Source/src/platforms/cuda/sharedTarget/../src/kernels//gputypes.h:35,
from /scratch/OpenMMPreview2-Source/src/platforms/cuda/sharedTarget/../src/kernels//kCalculateCDLJForces.cu:41:
/scratch/OpenMMPreview2-Source/src/platforms/cuda/sharedTarget/../src/kernels//cudatypes.h:36:18: error: stdlib: No such file or directory
make[2]: *** [src/cuda/src/kernels/kCalculateCDLJForces.cu_OpenMMCuda_d_generated.cpp.NVCC-depend] Error 255
make[1]: *** [platforms/cuda/sharedTarget/CMakeFiles/OpenMMCuda_d.dir/all] Error 2
make: *** [all] Error 2
gch:/scratch/OpenMMPreview2-Source/src

Perhaps I need to modify more files?

User avatar
Michael Sherman
Posts: 806
Joined: Fri Apr 01, 2005 6:05 pm

RE: OPENMM installation problem

Post by Michael Sherman » Tue Feb 24, 2009 10:00 am

I think you want #include <cstdlib> rather than <stdlib>.

Sherm

User avatar
Jyh-Shyong Ho
Posts: 5
Joined: Thu Jan 15, 2009 8:45 pm

RE: OPENMM installation problem

Post by Jyh-Shyong Ho » Tue Feb 24, 2009 5:35 pm

Thanks for your help. I tried again with the modification and now is making some progress:

[ 63%] Building CXX object platforms/cuda/sharedTarget/CMakeFiles/OpenMMCuda_d.dir/__/src/CudaStreamFactory.o
[ 63%] Building CXX object platforms/cuda/sharedTarget/CMakeFiles/OpenMMCuda_d.dir/__/src/kernels/gpu.o
/scratch/OpenMMPreview2-Source/src/platforms/cuda/src/kernels/gpu.cpp: In function 潎oid* gpuInit(int)?
/scratch/OpenMMPreview2-Source/src/platforms/cuda/src/kernels/gpu.cpp:1498: error: 滵emset?was not declared in this scope
/scratch/OpenMMPreview2-Source/src/platforms/cuda/src/kernels/gpu.cpp: In function 潎oid gpuSetup(void*)?
/scratch/OpenMMPreview2-Source/src/platforms/cuda/src/kernels/gpu.cpp:2099: warning: deprecated conversion from string constant to 歊har*?
/scratch/OpenMMPreview2-Source/src/platforms/cuda/src/kernels/gpu.cpp:2100: warning: deprecated conversion from string constant to 歊har*?
/scratch/OpenMMPreview2-Source/src/platforms/cuda/src/kernels/gpu.cpp:2101: warning: deprecated conversion from string constant to 歊har*?
/scratch/OpenMMPreview2-Source/src/platforms/cuda/src/kernels/gpu.cpp:2102: warning: deprecated conversion from string constant to 歊har*?
/scratch/OpenMMPreview2-Source/src/platforms/cuda/src/kernels/gpu.cpp:2103: warning: deprecated conversion from string constant to 歊har*?
/scratch/OpenMMPreview2-Source/src/platforms/cuda/src/kernels/gpu.cpp:2104: warning: deprecated conversion from string constant to 歊har*?
/scratch/OpenMMPreview2-Source/src/platforms/cuda/src/kernels/gpu.cpp:2105: warning: deprecated conversion from string constant to 歊har*?
/scratch/OpenMMPreview2-Source/src/platforms/cuda/src/kernels/gpu.cpp:2106: warning: deprecated conversion from string constant to 歊har*?
make[2]: *** [platforms/cuda/sharedTarget/CMakeFiles/OpenMMCuda_d.dir/__/src/kernels/gpu.o] Error 1
make[1]: *** [platforms/cuda/sharedTarget/CMakeFiles/OpenMMCuda_d.dir/all] Error 2
make: *** [all] Error 2


Any suggestions?


Jyh-Shyong

User avatar
Michael Sherman
Posts: 806
Joined: Fri Apr 01, 2005 6:05 pm

RE: OPENMM installation problem

Post by Michael Sherman » Tue Feb 24, 2009 6:03 pm

The output you sent contains a real error and a bunch of warnings. The real error is that it couldn't find memset(). That should be defined in header #include <cstring>, not <string>. So you might need to change that include fine name also.

The warnings are complaining that a string constant is being passed to a "char *" (writable) but string constants should only be passed to "const char *" so they won't get modified. This warning is harmless except that the messages tend to obscure the real problems.

Sherm

User avatar
Jyh-Shyong Ho
Posts: 5
Joined: Thu Jan 15, 2009 8:45 pm

RE: OPENMM installation problem

Post by Jyh-Shyong Ho » Tue Feb 24, 2009 6:42 pm

Thanks, it works now, the compilation and the installation completed without errors.


POST REPLY