If you wish to compile AMBER 10 with the latest version of Intel XE and Intel and MKL 10, you will need to do a bit of tweaking of the
Standard installation of AMBER10
A. Setup of AmberTools environment.
1. Include AMBERHOME in your .bashrc
# vim .bashrc
2. Configure the system for AmberTools. Assuming you are configuring for mpi, intel compiler, you will probably use the command
# cd $AMBERHOME/src # ./configure_at mpi icc
3. Make the file Makefile_at
# make -f Makefile_at
You will have something like for the output.
Completed installation of AmberTools, version 1.1
B. Setting up the basic AMBER distribution for OpenMPI, Intel
Here is where if you are using the more up-to-date MKL (version 10), things will fail to compile. It took me a while to solve the problem. But basically you have to replace the old dynamic linking flags with the new ones. According to the versions 10.x of Intel® MKL, Intel has re-architected Intel MKL and physically separated the interface, threading and computational components of the product.
1. Retrieve the latest bug fixes for AMBER 10 from (http://ambermd.org/bugfixes.html)
# cd $AMBERHOME # chmod 700 apply_bugfix_all.x # ./apply_bugfix_all.x bugfix.all
2. Edit the configure_amber file to match Intel MKL 10.x linking libraries. Fore information, do look at Linking Applications with Intel MKL version 10
# vim $AMBERHOME/src/configure_amber
Go to line 464, replace the EM64T dynamic linking parameters
# EM64T dynamic linking of double-precision-LAPACK and kernels # loadlib="$loadlib -L$mkll -lvml -lmkl_lapack -lmkl -lguide -lpthread" loadlib="$loadlib -L$mkll -lguide -lpthread -lguide -lpthread -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core"
Go to line 617, replace the EM64T dynamic linking parameters, do the same
#loadlib="$loadlib -L$mkll -lvml -lmkl_lapack -lmkl -lguide -lpthread" loadlib="$loadlib -L$mkll -lguide -lpthread -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core"
3. Ensure the environmental varaiables are correct. You should have at least have the following. I’m also assuming you have compiled OpenMPI and has but it in the PATH
export AMBERHOME=/usr/local/amber10 export MPI_HOME=/usr/local/mpi/intel export MKL_HOME=/opt/intel/mkl/10.2.6.038
4. Compile the AMBER for parallel
# ./configure_amber -openmpi ifort
------ Configuring the netCDF libraries: -------- Configuring netcdf; (may be time-consuming) NETCDF configure succeeded. MPI_HOME is set to /usr/local/mpi/intel The configuration file, config_amber.h, was successfully created.