OpenMM build issues, missing files

The functionality of OpenMM will (eventually) include everything that one would need to run modern molecular simulation.
User avatar
Ari Munic
Posts: 14
Joined: Thu May 31, 2012 11:06 am

OpenMM build issues, missing files

Post by Ari Munic » Tue Sep 25, 2012 11:36 am

Hello,

I am trying to build OpenMM 4.1 from source and I'm running into some issues. Many of the files fail to build because they cannot locate a file called OpenMMOpenCL.lib. When I try to build OpenMMOpenCL, it fails due to a number of errors. I'm running windows 7 and using VS10.

Any help would be appreciated,

Ari

User avatar
Ari Munic
Posts: 14
Joined: Thu May 31, 2012 11:06 am

Re: OpenMM build issues, missing files

Post by Ari Munic » Tue Sep 25, 2012 12:08 pm

Another bit of information. After doing some poking around I found that a file called cl.hpp is generating a large number of errors, such as "identifier not found" or "not a member of global namespace"

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

Re: OpenMM build issues, missing files

Post by Peter Eastman » Tue Sep 25, 2012 12:31 pm

Can you post the very first error that occurs? That's the root cause. Everything after that is probably just caused by the earlier error. Or you could just post the entire error log.

Peter

User avatar
Ari Munic
Posts: 14
Joined: Thu May 31, 2012 11:06 am

Re: OpenMM build issues, missing files

Post by Ari Munic » Tue Sep 25, 2012 12:50 pm

When I go to build OpenMMOpenCL I get these errors for every .cpp file, all stemming from a file the file cl.cpp

OpenCLBondedUtilities.cpp
2>C:/Users/Ari/Documents/research/OpenMM4.1.1-Source/platforms/opencl/src\cl.hpp(1270): warning C4290: C++ exception specification ignored except to indicate a function is not __declspec(nothrow)
2>C:/Users/Ari/Documents/research/OpenMM4.1.1-Source/platforms/opencl/src\cl.hpp(1556): error C2039: 'clUnloadCompiler' : is not a member of '`global namespace''
2>C:/Users/Ari/Documents/research/OpenMM4.1.1-Source/platforms/opencl/src\cl.hpp(1556): error C3861: 'clUnloadCompiler': identifier not found
2>C:/Users/Ari/Documents/research/OpenMM4.1.1-Source/platforms/opencl/src\cl.hpp(2200): error C2039: 'clCreateImage2D' : is not a member of '`global namespace''
2>C:/Users/Ari/Documents/research/OpenMM4.1.1-Source/platforms/opencl/src\cl.hpp(2200): error C3861: 'clCreateImage2D': identifier not found
2>C:/Users/Ari/Documents/research/OpenMM4.1.1-Source/platforms/opencl/src\cl.hpp(2245): error C2039: 'clCreateFromGLTexture2D' : is not a member of '`global namespace''
2>C:/Users/Ari/Documents/research/OpenMM4.1.1-Source/platforms/opencl/src\cl.hpp(2245): error C3861: 'clCreateFromGLTexture2D': identifier not found
2>C:/Users/Ari/Documents/research/OpenMM4.1.1-Source/platforms/opencl/src\cl.hpp(2299): error C2039: 'clCreateImage3D' : is not a member of '`global namespace''
2>C:/Users/Ari/Documents/research/OpenMM4.1.1-Source/platforms/opencl/src\cl.hpp(2299): error C3861: 'clCreateImage3D': identifier not found
2>C:/Users/Ari/Documents/research/OpenMM4.1.1-Source/platforms/opencl/src\cl.hpp(2345): error C2039: 'clCreateFromGLTexture3D' : is not a member of '`global namespace''
2>C:/Users/Ari/Documents/research/OpenMM4.1.1-Source/platforms/opencl/src\cl.hpp(2345): error C3861: 'clCreateFromGLTexture3D': identifier not found
2>C:/Users/Ari/Documents/research/OpenMM4.1.1-Source/platforms/opencl/src\cl.hpp(3389): error C2039: 'clEnqueueMarker' : is not a member of '`global namespace''
2>C:/Users/Ari/Documents/research/OpenMM4.1.1-Source/platforms/opencl/src\cl.hpp(3389): error C3861: 'clEnqueueMarker': identifier not found
2>C:/Users/Ari/Documents/research/OpenMM4.1.1-Source/platforms/opencl/src\cl.hpp(3396): error C2039: 'clEnqueueWaitForEvents' : is not a member of '`global namespace''
2>C:/Users/Ari/Documents/research/OpenMM4.1.1-Source/platforms/opencl/src\cl.hpp(3396): error C3861: 'clEnqueueWaitForEvents': identifier not found
2>C:/Users/Ari/Documents/research/OpenMM4.1.1-Source/platforms/opencl/src\cl.hpp(3511): error C2039: 'clEnqueueBarrier' : is not a member of '`global namespace''
2>C:/Users/Ari/Documents/research/OpenMM4.1.1-Source/platforms/opencl/src\cl.hpp(3511): error C3861: 'clEnqueueBarrier': identifier not found
2>C:/Users/Ari/Documents/research/OpenMM4.1.1-Source/openmmapi/include\openmm/System.h(127): warning C4018: '<' : signed/unsigned mismatch
2>..\..\..\..\OpenMM4.1.1-Source\platforms\opencl\src\OpenCLBondedUtilities.cpp(52): warning C4018: '<' : signed/unsigned mismatch
2>..\..\..\..\OpenMM4.1.1-Source\platforms\opencl\src\OpenCLBondedUtilities.cpp(120): warning C4018: '<' : signed/unsigned mismatch
2>..\..\..\..\OpenMM4.1.1-Source\platforms\opencl\src\OpenCLBondedUtilities.cpp(138): warning C4018: '<' : signed/unsigned mismatch

User avatar
Ari Munic
Posts: 14
Joined: Thu May 31, 2012 11:06 am

Re: OpenMM build issues, missing files

Post by Ari Munic » Thu Sep 27, 2012 11:14 pm

So it looks like there is something wrong with the cl.hpp file. All of the files that don't involve openCL work fine, but any that do fail to build.

I've also been able to reproduce this problem when trying to install openMM on my laptop. Could I have configured CMake improperly, or do I need to configure VS10 or is it because I'm using Windows 7 64 bit?

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

Re: OpenMM build issues, missing files

Post by Peter Eastman » Fri Sep 28, 2012 1:43 pm

I don't think there's anything wrong with that file. More likely it isn't finding your OpenCL header files.

In CMake, what is OPENCL_INCLUDE_DIR set to? What does the corresponding directory contain?

Using VS10 or 64 bit is unlikely to be causing this problem, but it could cause other problems later. In particular, do you plan to use any of the Python components of OpenMM? The standard Python interpreters distributed by python.org are built with VS9, so they can only link to other code that was also compiled with that same version.

Peter

User avatar
Ari Munic
Posts: 14
Joined: Thu May 31, 2012 11:06 am

Re: OpenMM build issues, missing files

Post by Ari Munic » Mon Oct 01, 2012 12:40 pm

It links to the include folder in my AMD APP folder. The include folder has three folders in it, CAL, CL, and OpenVideo. However I'm not using any of the python wrappers. I unselected a handful of the options in CMake that were turned on by default. Could that be another possible source of the errors?

User avatar
Ari Munic
Posts: 14
Joined: Thu May 31, 2012 11:06 am

Re: OpenMM build issues, missing files

Post by Ari Munic » Mon Oct 01, 2012 1:34 pm

I may have fixed my problem, but I'm not sure everything is working properly. I replaced the cl.hpp file that was in the OpenMM source with a cl.hpp file that was in the AMD APP include folder and rebuilt everything using CMake. Now everything compiles (but with a lot of warnings about unsigned/signed errors, but that may be ok I'm not sure) and all of the tests pass. However many of the OpenCl tests take a very long time. For instance TestOpenCLNonbondedForce took 69 seconds to complete, TestOpenCLEwald took 213 seconds and TestOpenCLCustomIntegrator took 118 seconds. Are these appropriate values? I just want to make sure replacing the cl.hpp file won't cause any issues down the road.

Thanks,
Ari

User avatar
Ari Munic
Posts: 14
Joined: Thu May 31, 2012 11:06 am

Re: OpenMM build issues, missing files

Post by Ari Munic » Mon Oct 01, 2012 2:58 pm

So everything seems to be working ok, however after installing my build I tried to run HelloArgon, but it used the Reference platform instead of OpenCL. I created the variable OPENMM_PLUGIN_DIR which didn't help. I'm using a 6950 card so it should work. Could an issue with the build prevent the use of the GPU?

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

Re: OpenMM build issues, missing files

Post by Peter Eastman » Mon Oct 01, 2012 3:30 pm

Interesting. I wonder what's different with their version of that file? I'll have to take a look.

It's fine for the tests to take a while. Each test program is really a whole test suite, so some of them run a lot of different tests.

Your 6950 should work fine. And clearly OpenCL is working, since the test cases ran and worked. Where is OpenMM installed? What is OPENMM_PLUGIN_DIR set to?

Peter

POST REPLY