-
Notifications
You must be signed in to change notification settings - Fork 3
Compilation
Omegaice edited this page Aug 8, 2012
·
3 revisions
To compile the LTMD OpenMM plugin, you first need to download and install the OpenMM library which can be found here. You will either need to download the source code and build it yourself, or you will need to install the prebuilt binary and download the source code as this project requires access to the internals of OpenMM.
The LTMD OpenMM plugin utilizes CMake as its primary build system. As so, to build it we need to do the following:
- Create a "build" directory
- Move into the "build"
- Execute the "ccmake .." command to bring up the configuration manager
- Press the "c" key on the keyboard to do the initial configuration
- Select options that you wish to compile with
- Press the "c" key again to add the new options configuration
- Press the "g" key to generate the configuration
- Build and install the plugin with the command "make install"
CMake allows for the generation of certain IDE projects. To do this you must add "-G " to the end of the command in step 3, where the generator is one of the following:
- Xcode
- CodeBlocks - Unix Makefiles
- Eclipse CDT4 - Unix Makefiles
LTMD OpenMM can be configured with the following options:
- BUILD_FIRST_ORDER - Builds the code with a first order implementation of the force perturbations. This improves the performance of the simulation where the time is dominated by the force calculations.
- BUILD_GPU - Builds the code with GPU options enabled.
- BUILD_GPU_CUDA - Builds the CUDA GPU code version.
- BUILD_GPU_DOUBLE - Builds all GPU code with double precision enabled.
- BUILD_MKL - Builds the code with Intel's Math Kernel Library Enabled. Only available when compiling with the intel compiler.
- BUILD_OPENMP - Builds the code to utilize OpenMP to provide parallelism where available.
- BUILD_PROFILE - Builds the code with gprof profiling enabled allowing for performance profiling of the plugin itself.
- BUILD_TESTING - Builds the testing code to allow testing of the parts of the plugin.