Difference between revisions of "Compiling GROMACS on Cluster"
Stonybrook (talk | contribs) |
|||
(8 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | ==Download | + | ==Download tar files== |
− | In order to compile GROMACS on Cluster, you need two things: | + | In order to compile GROMACS on the Brookhaven Linux Cluster (using sunysb or blc nodes), you need two things: |
1.) The latest version of the GROMACS source code [http://www.gromacs.org/Downloads]. | 1.) The latest version of the GROMACS source code [http://www.gromacs.org/Downloads]. | ||
− | 2.) A recent FFT library [http://www.fftw.org/ | + | 2.) A recent FFT library [http://www.fftw.org/download]. The newest version of FFTW (linked here) is well tested and most recommended. |
For the purpose of these instructions, I am using GROMACS v4.5.4 and FFTW v3.2.2. | For the purpose of these instructions, I am using GROMACS v4.5.4 and FFTW v3.2.2. | ||
− | |||
==Compile FFTW== | ==Compile FFTW== | ||
Line 55: | Line 54: | ||
export CPPFLAGS="-I/home/wjallen/local/fftw-3.2.2-double/include" | export CPPFLAGS="-I/home/wjallen/local/fftw-3.2.2-double/include" | ||
− | export LDFLAGS="-L/home/wjallen/local/fftw-3.2.2-double/ | + | export LDFLAGS="-L/home/wjallen/local/fftw-3.2.2-double/lib" |
Now we are ready to configure GROMACS. Remember, we compiled double-precision FFTW libraries because we want to compile double-precision GROMACS. In this case, we will compile a serial version (cannot run on MPI, but can thread). Execute: | Now we are ready to configure GROMACS. Remember, we compiled double-precision FFTW libraries because we want to compile double-precision GROMACS. In this case, we will compile a serial version (cannot run on MPI, but can thread). Execute: | ||
− | ./configure --prefix=home/wjallen/local/gromacs-4.5.4-double --disable-float --program-suffix=-4.5.4-double --with-fft=fftw3 | + | ./configure --prefix=/home/wjallen/local/gromacs-4.5.4-double --disable-float --program-suffix=-4.5.4-double --with-fft=fftw3 |
If there are no errors in the configuration, finish with: | If there are no errors in the configuration, finish with: | ||
Line 65: | Line 64: | ||
make | make | ||
make install | make install | ||
− | |||
==Compile a parallel version of GROMACS== | ==Compile a parallel version of GROMACS== | ||
Line 72: | Line 70: | ||
make distclean | make distclean | ||
− | ./configure --enable-mpi --prefix=home/wjallen/local/gromacs-4.5.4-double-mpi --disable-float --program-suffix=-4.5.4-double-mpi | + | ./configure --enable-mpi --prefix=/home/wjallen/local/gromacs-4.5.4-double-mpi --disable-float --program-suffix=-4.5.4-double-mpi |
--with-fft=fftw3 | --with-fft=fftw3 | ||
make mdrun | make mdrun | ||
Line 78: | Line 76: | ||
We have now compiled just 'mdrun' in parallel in new directories. Take careful notice of the change in the name of the install directory and the program suffix. | We have now compiled just 'mdrun' in parallel in new directories. Take careful notice of the change in the name of the install directory and the program suffix. | ||
− | |||
==Finishing up== | ==Finishing up== | ||
Line 90: | Line 87: | ||
source .bash_profile | source .bash_profile | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Latest revision as of 14:59, 31 May 2013
Contents
Download tar files
In order to compile GROMACS on the Brookhaven Linux Cluster (using sunysb or blc nodes), you need two things:
1.) The latest version of the GROMACS source code [1].
2.) A recent FFT library [2]. The newest version of FFTW (linked here) is well tested and most recommended.
For the purpose of these instructions, I am using GROMACS v4.5.4 and FFTW v3.2.2.
Compile FFTW
FTP the two tarballs onto your account on cluster. As a general practice, I compile all software and libraries into a "local" folder, i.e.:
/home/wjallen/local/
Unzip the FFTW tarball into your 'local' folder (or wherever else you prefer), then cd into the directory:
tar -xzf fftw-3.2.2.tar.gz cd fftw-3.2.2
Before configuring, we must first define which C and Fortran compilers to use. In a bash shell, this is done by using environment variables. To define their locations on cluster, execute the following commands on the command line:
export CC="/software1/intel/Compiler/11.1/069/bin/intel64/icc" export F77="/software1/intel/Compiler/11.1/069/bin/intel64/ifort"
If you are using C shell instead, you might have to define the environment variables a little differently. Something like:
setenv CC = /software1/intel/Compiler/11.1/069/bin/intel64/icc setenv F77 = /software1/intel/Compiler/11.1/069/bin/intel64/ifort
Now you are ready to configure FFTW. Decide exactly where you want to install it, then execute the following within the fftw-3.2.2 directory. I append '-double' to the directory to let me know I am compiling the double-precision version of the libraries:
./configure --prefix=/home/wjallen/local/fftw-3.2.2-double --enable-threads --with-pic
If there are no errors in the configuration, finish with:
make make install
Compile GROMACS
Unzip the GROMACS tarball and cd into that directory as before:
tar -xzf gromacs-4.5.4.tar.gz cd gromacs-4.5.4
Before you can configure, you have to set a few more environment variables. On top of the C and Fortran compilers, you have to define the location of the C++ compiler you wish to use:
export CXX="/software1/intel/Compiler/11.1/069/bin/intel64/icpc"
And you have to define exactly where you compiled FFTW:
export CPPFLAGS="-I/home/wjallen/local/fftw-3.2.2-double/include" export LDFLAGS="-L/home/wjallen/local/fftw-3.2.2-double/lib"
Now we are ready to configure GROMACS. Remember, we compiled double-precision FFTW libraries because we want to compile double-precision GROMACS. In this case, we will compile a serial version (cannot run on MPI, but can thread). Execute:
./configure --prefix=/home/wjallen/local/gromacs-4.5.4-double --disable-float --program-suffix=-4.5.4-double --with-fft=fftw3
If there are no errors in the configuration, finish with:
make make install
Compile a parallel version of GROMACS
It is oftentimes more convenient to run jobs in parallel. In the GROMACS package, only the MD integrator itself (called 'mdrun', equivalent to 'sander' in AMBER) is capable of running in parallel. To enable MPI, execute the following:
make distclean ./configure --enable-mpi --prefix=/home/wjallen/local/gromacs-4.5.4-double-mpi --disable-float --program-suffix=-4.5.4-double-mpi --with-fft=fftw3 make mdrun make install-mdrun
We have now compiled just 'mdrun' in parallel in new directories. Take careful notice of the change in the name of the install directory and the program suffix.
Finishing up
The last thing to do is to specify in your .bash_profile the location of the GROMACS executables. Add the following lines:
PATH=$PATH:/home/wjallen/local/gromacs-4.5.4-double/bin PATH=$PATH:/home/wjallen/local/gromacs-4.5.4-double-mpi/bin
Finally:
source .bash_profile