Amber8 Installation Procedure
Follow the instructions in the readme.txt file that comes
with Amber8 CD. Untar the amber8.tgz
in the location where you would like to install Amber8. For example, I've
installed it under my home directory since I have read/write permissions to this
directory. If you want others on your machine to access Amber8, you might want
to install it under /usr/local/amber (as an example) so that other's
have access to the Amber8 program.
Don't forget to set up the AMBERHOME environmental variable in
your .bashrc or .cshrc file.
Before you install Amber8, install the X11 SDK package.
Some portion of Amber8 program will fail to compile if you dont have X11 SDK
installed. X11 SDK can be found on Panther Developer CD.
Note that Amber8 does not support Mac OS X. In order for
you to compile Amber8 on Mac OS X, replace the configure file under $AMBERHOME/src directory with this configure file. This configure file
will allow you to successfully compile Amber8 on Mac OS X with IBM's xlc/xlf
compiler. This update to the configure file has already been submitted to the
Amber team and will form part of Amber9 installer package.
Installing Serial Amber8
To install the serial version of Amber8, cd to the src directory and type the following command:
> ./configure macosx
> make serial
After a successful Amber8 installation, you will see the
following message:
Installation of Amber8 (serial) is complete at Thu Jun 10
17:31:15 PDT 2004.
After installing Amber, cd to the test directory and run make test to make sure that your serial installation of Amber8 is
successfully.
Installing PMEMD
The PMEMD module that ships with Amber8 does not get
automatically built when you build Amber8.
The PMEMD module that ships with Amber8 does not support
Mac OS X. First, copy the macosx.xlf90.nopar
configuration file to:
$AMBERHOME/src/pmemd/config_data/
To compile and install PMEMD, do the following:
> cd $AMBERHOME/src/pmemd
> ./configure macosx xlf90
This will build the serial version of the PMEMD module. After installing the PMEMD
module, cd to the $AMBERHOME/test directory and run:
make test.pmemd
make sure that your serial installation of the PMEMD
modules is successfully completed.
Expected Testing Failures for Amber8 on Mac OS X
If you run make test in the $AMBERHOME/test
directory, you will see some test failures. In order to run the test which pass
succesfully on Mac OS X, download this Makefile and save it in $AMBERHOME/test directory. Before you replace the
original Makefile, don't forget to make a copy of it so that you can go back to
the original file just in case you need it.
Here the expected test failures if you type make test command:
==============================================================
cd cnstph; ./Run.cnstph
./Run.cnstph: Program error
make: *** [test.sander.no_lmod] Error 1
==============================================================
cd rdc; ./Run.dip
STOP 1
./Run.dip: Program error
make: *** [test.sander.no_lmod] Error 1
==============================================================
cd qmmm/standard; ./Run.lysine
??RROR IN OPNFIL -- CANNOT OPEN UNIT 8 FILE ??|||?#x8?@H
ERROR IN
OPNFIL -- CANNOT OPEN UNIT 77 FILE
????B??!??
./Run.lysine: Program error
make: *** [test.sander.QMMM] Error 1
==============================================================
cd qmmm/divcon; ./Run.crambin
??RROR IN OPNFIL -- CANNOT OPEN UNIT 8 FILE ??|||?#x8?@H
ERROR IN OPNFIL
-- CANNOT OPEN UNIT 77 FILE
????B??!??
./Run.crambin: Program
error
make: *** [test.sander.QMMM] Error 1
==============================================================
cd qmmm/divcon; ./Run.crambin_md
??RROR IN OPNFIL -- CANNOT OPEN UNIT 8 FILE ??|||?#x8?@H
ERROR IN
OPNFIL -- CANNOT OPEN UNIT 77 FILE
????B??!??
./Run.crambin_md: Program
error
make: *** [test.sander.QMMM] Error 1
==============================================================
cd antechamber/tp; ./Run.tp
Running: /Volumes/storage/amber/amber8/amber8/exe/bondtype
-i ANTECHAMBER_BOND_TYPE.AC -o ANTECHAMBER_BOND_TYPE.AC -f ac -j full
Running: /Volumes/storage/amber/amber8/amber8/exe/atomtype
-i ANTECHAMBER_AC.AC0 -o ANTECHAMBER_AC.AC -p gaff
Total number of electrons: 58; net charge: 0
Running: /Volumes/storage/amber/amber8/amber8/exe/divcon
??RROR IN OPNFIL -- CANNOT OPEN UNIT 8 FILE ??|||?#x8?@H
Cannot open divcon.out , exit
./Run.tp: Program error
make: *** [test.antechamber] Error 1
==============================================================
cd antechamber/tp; ./Run.tp_mol2
Running: /Volumes/storage/amber/amber8/amber8/exe/bondtype
-i ANTECHAMBER_BOND_TYPE.AC -o ANTECHAMBER_BOND_TYPE.AC -f ac -j full
Running: /Volumes/storage/amber/amber8/amber8/exe/atomtype
-i ANTECHAMBER_AC.AC0 -o ANTECHAMBER_AC.AC -p gaff
Total number of electrons: 58; net charge: 0
Running: /Volumes/storage/amber/amber8/amber8/exe/divcon
??RROR IN OPNFIL -- CANNOT OPEN UNIT 8 FILE ??|||?#x8?@H
Cannot open divcon.out , exit
./Run.tp_mol2: Program
error
make: *** [test.antechamber] Error 1
==============================================================
cd antechamber/ash; ./Run.ash
Running: /Volumes/storage/amber/amber8/amber8/exe/bondtype
-i ANTECHAMBER_BOND_TYPE.AC -o ANTECHAMBER_BOND_TYPE.AC -f ac -j full
Cannot successfully assign bond type for this molecule,
please :
(1) double check the structure (the connectivity) and/or
(2) adjust atom valence penalty parameters in APS.DAT,
and/or
(3) increase MAXVASTATE in define.h and recompile
bondtype.C
Running: /Volumes/storage/amber/amber8/amber8/exe/atomtype
-i ANTECHAMBER_AC.AC0 -o ANTECHAMBER_AC.AC -p gaff
Total number of electrons: 100; net charge: 0
Running: /Volumes/storage/amber/amber8/amber8/exe/divcon
??RROR IN OPNFIL -- CANNOT OPEN UNIT 8 FILE ??|||?#x8?@H
Cannot open divcon.out , exit
./Run.ash: Program error
make: *** [test.antechamber] Error 1
==============================================================
cd antechamber/sustiva; ./Run.sustiva
Running: /Volumes/storage/amber/amber8/amber8/exe/bondtype
-i ANTECHAMBER_BOND_TYPE.AC -o ANTECHAMBER_BOND_TYPE.AC -f ac -j full
Running: /Volumes/storage/amber/amber8/amber8/exe/atomtype
-i ANTECHAMBER_AC.AC0 -o ANTECHAMBER_AC.AC -p gaff
Total number of electrons: 160; net charge: 0
Running: /Volumes/storage/amber/amber8/amber8/exe/divcon
??RROR IN OPNFIL -- CANNOT OPEN UNIT 8 FILE ??|||?#x8?@H
Cannot open divcon.out , exit
./Run.sustiva: Program
error
make: *** [test.antechamber] Error 1
==============================================================
cd antechamber/fluorescein; ./Run.fluorescein
Bond types are assigned for valence state 1 with penalty
of 2
Total number of electrons: 172; net charge: -2
Running: /Volumes/storage/amber/amber8/amber8/exe/divcon
??RROR IN OPNFIL -- CANNOT OPEN UNIT 8 FILE ??|||?#x8?@H
Cannot open divcon.out , exit
./Run.fluorescein: Program
error
make: *** [test.antechamber] Error 1
==============================================================
cd antechamber/guanine; ./Run.guanine
Running: /Volumes/storage/amber/amber8/amber8/exe/bondtype
-i ANTECHAMBER_BOND_TYPE.AC -o ANTECHAMBER_BOND_TYPE.AC -f ac -j full
Running: /Volumes/storage/amber/amber8/amber8/exe/atomtype
-i ANTECHAMBER_AC.AC0 -o ANTECHAMBER_AC.AC -p gaff
Total number of electrons: 140; net charge: 0
Running: /Volumes/storage/amber/amber8/amber8/exe/divcon
??RROR IN OPNFIL -- CANNOT OPEN UNIT 8 FILE ??|||?#x8?@H
Cannot open divcon.out , exit
./Run.guanine: Program
error
make: *** [test.antechamber] Error 1
==============================================================
cd antechamber/guanine_amber; ./Run.guanine_amber
Running: /Volumes/storage/amber/amber8/amber8/exe/bondtype
-i ANTECHAMBER_BOND_TYPE.AC -o ANTECHAMBER_BOND_TYPE.AC -f ac -j full
Running: /Volumes/storage/amber/amber8/amber8/exe/atomtype
-i ANTECHAMBER_AC.AC0 -o ANTECHAMBER_AC.AC -p amber
Total number of electrons: 140; net charge: 0
Running: /Volumes/storage/amber/amber8/amber8/exe/divcon
??RROR IN OPNFIL -- CANNOT OPEN UNIT 8 FILE ??|||?#x8?@H
Cannot open divcon.out , exit
./Run.guanine_amber:
Program error
make: *** [test.antechamber] Error 1
==============================================================
Installing the G5 Optimization Patch
To install the G5 optimization patch, download this file. Put
it in your base AMBER directory and unzip with
tar zxvf amber8.g5patch.tar.gz
Then either rerun configure to use the mac config files or
edit your preprocessor flags to add -DDIRFRC_G5_OPT and recompile.
Misc Notes
If your program is randomly seg faulting, it might be
running out of stack space. Run:
ulimit -a
to view the stack space and if its not 64mb, set it to
that with
ulimit -s hard
Performance Analysis
Tests were performed for the jac benchmark, which seemed
to be the most popular one on the amber benchmark page. The PMEMD module was
faster than the SANDER module.
Compiler Optimizations
There are three implementations given for the function Òshort_eneÓ,
and you can control which one is used by using pre-processor defines. One of
them claims to be optimized for chips with large caches, such as the Itanium.
One of them claims to be optimized for chips that support SIMD instructions,
although all the instructions in the function are double precision so it
doesnÕt help altivec. The last one is a generic implementation, presumably in
case the other two donÕt work. I ran all of these on the G5, and surprisingly
the best performance came from the one optimized for large caches.
The default compile options for AMBER are -O2 -qstrict -qmaxmem=1 -qarch=auto -qtune=auto. The options that gave me the best results were -O3 -qstrict -qmaxmem=1-qarch-auto. Adding -qhot, qunroll=yes, and -qtune=auto but these flags didn't seem to make any difference. O4 and O5 did not make a difference for the unmodified code, but once the code was manually unrolled, going to -O4 and -O5 gained an additional 3-4% since the code could be scheduled much better. However, after inserting intrinsics, -O3 gave the best performance since we had the codegen we wanted. One thing to note is that the -qstrict option may be preventing the compiler from doing some optimizations, but if the code is compiled without -qstrict it fails the correctness check.