If you have superuser privileges, then you will have the option of just installing to the default locations. If you have a site installation policy that prohibits this, or lack superuser privileges, or wish to maintain multiple GROMACS installations, then you will need to choose somewhere suitable to install. GROMACS is able to compile as a set of shared libraries, which greatly reduces the disk footprint of the installation, but this can be tricky on some platforms. If you encounter problems at the linking stages below, it is recommended that you configure everything for static libraries i. However prior to version 4.
|Published (Last):||8 April 2013|
|PDF File Size:||20.20 Mb|
|ePub File Size:||18.80 Mb|
|Price:||Free* [*Free Regsitration Required]|
Other issues 1. Quick and dirty installation Get the latest version of your compiler. Check you have CMake version 2. Make a separate build directory and change to it. Run CMake with the path to the source as an argument Run make and make install Or, as a sequence of commands to execute: tar xfz gromacs If you already have FFTW installed, you can remove that argument to cmake.
Sadly, the interactions of hardware, libraries, and compilers are only going to continue to get more complex. Prerequisites 3. However, Gromacs also comes with many hardware-specific extensions to provide very high performance on those platforms, and to enable these we have slightly more specific requirements since old compilers do not support new features, or they can be buggy. For best performance, the GROMACS team strongly recommends you get the most recent version of your preferred compiler for your platform e.
GCC 4. Unfortunately this makes GROMACS more sensitive to the compiler used, and the binary will only work on the hardware for which it is compiled, but the good news is that it has enabled us to significantly accelerate performance compared to version 4. On Intel-based x86 hardware, we recommend you to use the GNU compilers version 4. The Intel compiler has historically been better at instruction scheduling, but recent gcc versions have proved to be as fast or sometimes faster than Intel.
Opteron series processors , it is worth using the Intel compiler for better performance, but gcc version 4. Thus, on the most recent AMD processors you want to use gcc version 4. The Intel compiler will only generate code for the subset also supported by Intel processors, and that is significantly slower right now. Both clang and gcc will work, but they produce lower performance and each have some shortcomings. Clang does not support OpenMP, and the current gcc ports e.
No user action is required in order to enable this. Fermi or Kepler cards. If you wish to run in parallel on multiple machines across a network, you will need to have an MPI library installed that supports the MPI 1. The most recent version of either of this is likely to be the best.
You can install gcc version 4. In summary, for maximum performance you will need to examine how you will use GROMACS, what hardware you plan to run on, and whether you can afford a non-free compiler for slightly better performance. The only way to find out is unfortunately to test different options and parallelization schemes for the actual simulations you want to run. You will still get good performance with the default build and runtime options better than in version 4.
CMake From version 4. The previous build system that used configure from the GNU autotools package has been removed permanently. Lower versions will not work. You can check whether CMake is installed, and what version it is, with cmake --version.
If you need to compile CMake yourself and have a really old environment, you might first have to compile a moderately recent version say, 2. This is a one-time job, and you can find lots of documentation on the CMake website if you run into problems. FFTW FFTW is likely to be available for your platform via its package management system, but there can be compatibility and significant performance issues associated with these packages.
If you use this option, you will see a warning that advises how you can eliminate this risk. Choose the precision i. There is no need to compile with threading or MPI support, but it does no harm. On x86 hardware, compile only with --enable-sse2 regardless of precision even if your processors can take advantage of AVX extensions. Configuring these are discussed here.
There are many resources available on the web, which we suggest you search for when you encounter problems not covered here.
For other platforms, see the specialist instructions below. If you are building GROMACS on hardware that is identical to that where you will run mdrun, then you can be sure that the defaults will be pretty good. The build configuration will for instance attempt to detect the specific hardware instructions available in your processor. However, if you want to control aspects of the build, there are plenty of things you can set manually. It also means you can never corrupt your source code by trying to build it!
So, the only required argument on the CMake command line is the name of the directory containing the CMakeLists. You can edit this file by hand, but this is not recommended because it is easy to reach an inconsistent state. You should not attempt to move or copy this file to do another build, because file paths are hard-coded within it. There are also informational warnings that you might like to take on board or not. Piping the output of cmake through less or tee can be useful, too. CMake works in an iterative fashion, re-running each time a setting is changed to try to make sure other things are consistent.
Once things seem consistent, the iterations stop. Once cmake returns, you can see all the settings that were chosen and information about them by using e. You can actually use ccmake available on most Unix platforms, if the curses library is supported directly in the first step, but then most of the status messages will merely blink in the lower part of the terminal rather than be written to standard out.
Most platforms including Linux, Windows, and Mac OS X even have native graphical user interfaces for CMake, and it can create project files for almost any build environment you want including Visual Studio or Xcode. The settings you might normally want to change are already presented.
This might require several configuration stages when you are using ccmake - when you are using cmake the iteration is done behind the scenes. You will need to be able to write to this directory in order to install GROMACS later, and if you change your mind later, changing it in the cache triggers a full re-build, unfortunately. So if you do not have super-user privileges on your machine, then you will need to choose a sensible location within your home directory for your GROMACS installation.
You should not attempt to change compilers after the initial run of CMake. If you need to change, clean up and start again. You can even save that in a shell script to make it even easier next time. CMake advanced options The options that can be seen with ccmake are ones that we think a reasonable number of users might want to consider changing.
Portability aspects Here, we consider portability aspects related to CPU instruction sets, for details on other topics like binaries with statical vs dynamic linking please consult the relevant parts of this documentation or other non-GROMACS specific resources. The reason for this is that hardware-specific optimizations are selected at configure-time, like the SIMD instruction set used in the compute-kernels. This selection will be done by the build system based on the capabilities of the build host machine or based on cross-compilation information provided to CMake at configuration.
Often it is possible to ensure portability by choosing the least common denominator of SIMD support, e. However, we discourage attempts to use a single GROMACS installation when the execution environment is heterogeneous, such as a mix of AVX and earlier hardware, because this will lead to slow binaries especially mdrun , on the new hardware. Building two full installations and locally managing how to call the correct one e.
Alternatively, as at the moment the GROMACS tools do not make strong use of SIMD acceleration, it can be convenient to create an installation with tools portable across different x86 machines, but with separate mdrun binaries for each architecture. To achieve this, one can first build a full installation with the least common denominator SIMD instruction set, e.
SSE2, then build separate mdrun binaries for each architecture present in the heterogeneous environment. The internal versions are fine for normal use. If you need to specify a library with a non-standard name e. Any feedback on this build process and fixes in particular are very welcome! Static linking Dynamic linking of the GROMACS executables will lead to a smaller disk footprint when installed, and so is the default on platforms where we believe it has been tested repeatedly and found to work.
Note, that in general CMake picks up whatever is available, so this option only instructs CMake to prefer static libraries when both static and shared are available. If no static version of an external library is available, even when the aforementioned option is ON, the shared library will be used. Also note, that the resulting binaries will still be dynamically linked against system libraries if that is all that is available common on Mac OS X.
The most common use cases have been single and double precision, and with and without MPI. For instance, to set a custom suffix for binaries and libraries, one might specify: cmake.. Then you can run make to start the compilation. Search the web first for solutions to problems, but if you need help, ask on gmx-users, being sure to provide as much information as possible about what you did, the system you are building on, and what went wrong. If this is an system directory, then you will need permission to write there, and you should use super-user privileges only for make install and not the whole procedure.
You may wish to arrange for your login scripts to do this automatically; please search the web for instructions on how to do this for your shell. By default, the programs will use the environment variables set in the GMXRC script, and if this is not available they will try to guess the path based on their own location.
This usually works well unless you change the names of directories inside the install tree. If you still need to do that, you might want to recompile with the new install location properly set, or edit the GMXRC script.
While this improves reliability quite a lot, not everything is tested, and since we increasingly rely on cutting edge compiler features there is non-negligible risk that the default compiler on your system could have bugs. We have tried our best to test and refuse to use known bad versions in CMake, but we strongly recommend that you run through the regression tests yourself. It only takes a few minutes, after which you can trust your build.
You can find more options e. Hopefully you will get a report that all tests have passed. If there are individual failed tests it could be a sign of a compiler bug, or that a tolerance is just a tiny bit too tight. Check the output files the script directs you too, and try a different or newer compiler if the errors appear to be real.
If you cannot get it to pass the regression tests, you might try dropping a line to the gmx-users mailing list, but then you should include a detailed description of your hardware and an example logfile from mdrun which contains valuable information in the header. Until that is ready, we recommend that you start by comparing the performance to release 4.
Having difficulty? It is recommended that you follow these steps to find the solution: Read the installation instructions again, taking note that you have followed each and every step correctly.
Installation Instructions 4.6
Fri 29 Aug Description This program reads a. These files can subsequently be processed to generate a run input file. By default the forcefield selection is interactive, but you can use the -ff option to specify one of the short names in the list on the command line instead. After choosing a force field, all files will be read only from the corresponding force field directory. If you want to modify or add a residue types, you can copy the force field directory from the GROMACS library directory to your current working directory.
Installation Instructions 4.5
Specifying the -pp flag will get the pre-processed topology file written out so that you can verify its contents. When using position restraints a file with restraint coordinates can be supplied with -r, otherwise restraining will be done with respect to the conformation from the -c option. For free energy calculation the the coordinates for the B topology can be supplied with -rb, otherwise they will be equal to those of the A topology. Starting coordinates can be read from trajectory with -t. The last frame with coordinates and velocities will be read, unless the -time option is used. Only if this information is absent will the coordinates in the -c file be used.