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.