Compiling Amber7

Compilation of amber on a linux platform may be challenging due to a great variety of linux distributions, compilers, and system and MPI libraries. In the following, we list several common combinations of linux distributions, compilers and mpi libraries, which worked for us (meaning that they passed 'make test.sander'). We focus mainly on compilations with MPI libraries because they are usually more problematic than compilation of serial (i.e. non-parallel) amber. You can avoid a lot of problems if you compile MPICH library with the same compiler (e.g. both C and Fortran from Intel) that you use for compilation of amber7. Remember to set AMBERHOME and MPICH_HOME environmental variables before you start compiling. Also remember to apply bugfixes from amber webpage before compiling (especially bugfix.1).

Linux Distribution: RedHat 7.3
Compiler: gcc-2.96, g77-2.96 0.5.26 (distribution default)
MPI library: mpich-1.2.5
MACHINE file: Machine.g77_mpich (from amber7 distribution)

No additional setup should be required for getting the default compilers to work.
Compile and install mpich-1.2.5:

./configure --prefix=/usr/local/mpich-1.2.5_gcc
make install
Compile and install amber7:
export AMBERHOME=/usr/local/amber7.g77_mpich
export MPICH_HOME=/usr/local/mpich-1.2.5_gcc
ln -s Machines/Machine.g77_mpich MACHINE
make install (in $AMBERHOME/src should compile and install Amber7)

Linux Distribution: RedHat 7.3
Compiler: Portland Group pgf77/pgcc 4.0-1
MPI library: mpich-1.2.5
MACHINE file: Machine/Machine.pgf77_mpich

Set up PG compilers, e.g. from your .bashrc:

# PGI compilers environment settings
export PGI=/usr/pgi
export PATH=$PGI/linux86/bin:$PATH
export MANPATH=$MANPATH:$PGI/man
# FLEXlm manager for PGI
export LM_LICENSE_FILE=$PGI/license.dat

Compile MPICH libraries with PG compilers too, for example:

export CC=pgcc
export FC=pgf77
./configure --prefix=/usr/local/mpich-1.2.5_pg -cc=$CC -fc=$FC
make install
Then follow with compilation of Amber7 as usual but remember to set MPICH_HOME correctly to point to the MPI location specified above (/usr/local/mpich_1.2.5_pg in our example).

It is possible to link Amber7 compiled with pgf77 and MPICH libraries compiled with gcc but the procedure is more complicated. In general, most linking problems are related to different naming conventions of library routines in MPICH and sander (especially the addition/omission of the second underscore). You can check the consistency of naming quite easily (thanks to Mike Crowley for suggesting this procedure).


Linux Distribution: RedHat 9
Compiler: gcc-3.2.2, g77-3.2.2 (distribution default)
MPI library: mpich-1.2.5.2
MACHINE file: Machine.g77_mpich (from amber7 distribution)

No additional setup was needed.


Linux Distribution: RedHat 9
Compiler: Intel Fortran (ifort) and C (icc) compilers 8.0
MPI library: mpich-1.2.5.2
MACHINE file: Machine/Machine.ifort_mpich

Intel recently released version 8.0 of their Fortran and C compilers for linux. This version finally supports newer Linux distributions (such as RedHat9, Suse8.2). Their compilers are very efficient on Intel chips, so if you have Pentium/Xeon machines in the cluster, it is worthwhile to get amber compiled with ifort/icc. Do not forget to set compilers environment first, e.g. from your .bashrc:

# Intel C Compiler (icc8.0), Fortran compiler (ifc8.0)
source /opt/intel_cc_80/bin/iccvars.sh
source /opt/intel_fc_80/bin/ifortvars.sh

Again, we recommended to compile MPICH libraries with Intel compilers too, e.g.:

export CC=icc
export FC=ifort
./configure --prefix=/usr/local/mpich-1.2.5.2_icc -cc=$CC -fc=$FC
make install

Proceed with amber7 compilation as in previous cases.


Linux Distribution: Suse 8.2
Compiler: Intel Fortran (ifort) and C (ifc) compilers 8.0
MPI library: mpich-1.2.5.2
MACHINE file: Machine/Machine.ifort_mpich

Follow the same steps as in a previous case (RedHat9 + Intel ifort/icc 8.0).

Compilation of amber with Suse 8.2 default GNU compilers (gcc/g77-3.3) did not pass many sander tests. One might try to install gcc/g77-3.2 or lower the optimization flags for compilation to get it working, but since Intel version seems to be working fine, there is not much incentive to do so.


We do not currently use LAM MPI (as a replacement for MPICH) for parallel compilations but other people reported successful compilations of Amber7 with LAM.

Always run tests from $AMBERHOME/test directory to confirm the correctness of installation. Remember to set DO_PARALLEL to point to your mpirun executable with appropriate options included before you run test.sander from the test subdirectory.

It is also useful to run benchmarks ($AMBERHOME/benchmarks) to see how well your compiled version of amber runs, and how well it scales on parallel jobs.
Warning: Use wall-clock times for any benchmarks you do and beware that wall-clock times reported by applications are often not correct!

Last updated: February 3, 2004