Amber 8 on Fujitsu PRIMENERGY RX200/300/600 S2


This page contains recommendations for building and running Amber 8 on Fujitsu PRIMENERGY computers equipped with Intel Xeon processors which include, for example, PRIMENERGY RX 200, 300, 600 S2.

The Installation was checked with RedHat Linux operating systems and with the Intel(R) Fortran/C/C++ Compilers Versions 8.1 and 9.


Preliminary Remarks

Since Fujitsu MPI implementation is not available yet we recommend to use a freeware MPI implementation, LAM/MPI. LAM/MPI (www.lam-mpi.org) is a high-quality open-source implementation of the Message Passing Interface specification, including all of MPI-1.2 and much of MPI-2.

Contact your system administrator for installing LAM/MPI. We recommend to download the latest version of LAM/MPI and to compile it using the same compiler which will be used to compile Amber.

Also, we recommend to visit AMBER link http://amber.scripps.edu/bugfixes80.html devoted to the bug fixes. This web page contains all bug fixes as well as a cumulative bug fix in a single patch script, bugfix.all. File bugfix.all should be placed into the $AMBERHOME directory and Amber distribution should be patched by running:

cd $AMBERHOME

patch -p0 -N -r patch_rejects <bugfix.all

This should patch source files with the latest bugfixes. Any bugfixes that appear to have already been applied will be skipped. Once the patching is finished one needs to recompile AMBER.

  • Serial Version Installation

1) To compile a serial Amber 8 distribution, first one needs to set the environment variable MKL_HOME to make use of Intel mathematical library. For example:

setenv MKL_HOME /opt/intel-mkl/7.2.008/mkl72

2) Set up the AMBERHOME environment variable to point to where the Amber tree resides on your machine. For example:

setenv AMBERHOME /path/to/amber8

3) Go to the $AMBERHOME/src directory, and create a configuration file, config.h, for a serial version.

./configure -nopar -p4 ifort

One can examine and edit this file to match local environment, if necessary. For example, to change

CC= gcc

CPLUSPLUS=g++

Into

CC= icc

CPLUSPLUS=icpc

4) Now compile everything :

make serial

4) To test the basic AMBER distribution, one needs to do the following:

cd $AMBERHOME/test

make test

One can also try "make test.<program-name>", to test individual programs. Where "possible FAILURE" messages are found, one needs to go to the indicated directory under $AMBERHOME/test, and look at the "*.dif" files. Differences should involve round-off in the final digit printed, or occasional messages that differ from machine to machine.

  • Parallel (MPI) Version Installation

1) Set a path for LAM-MPI binaries installation. For example:

set path= (/path/to/lam/bin $path)

2) Set LAM_HOME environment variable which will be used by Amber configure script. For example, for a local LAM/MPI installation in /path/to/lam:

setenv LAM_HOME /path/to/lam

To be sure check current LAM-MPI version using laminfo command.

3) To build a parallel version go to the $AMBERHOME/src directory, and create a configuration file, config.h, for a parallel version.

./configure –lam -p4 ifort

Edit resulted config.h and change lines

FC= ifort

LOAD= ifort $(LOCALFLAGS) $(AMBERBUILDFLAGS)

into

FC= mpif77

LOAD= mpif77 $(LOCALFLAGS) $(AMBERBUILDFLAGS)

3) Now compile a parallel version:

make parallel

4) To test the parallel AMBER distribution, one needs to do the following:

cd $AMBERHOME/test

Setup “DO_PARALLEL” environment variable

setenv DO_PARALLEL “mpirun –np 2 “

to run sander on two CPUs.

Be sure that LAM/MPI run-time environment is launched

make test.sander

Where "possible FAILURE" messages are found, one needs to go to the indicated directory under $AMBERHOME/test, and look at the "*.dif" files. Differences should involve round-off in the final digit printed, or occasional messages that differ from machine to machine.

PMEMD

Before running pmemd to avoid program crashes one needs to be sure to unlimit the stacksize in your shell. For example, for csh:

limit stacksize unlimited

Also, user might want to modify pmemd_clib.c subroutine in the $AMBERHOME/src/pmemd/src directory to add a small subroutine

void

/* CLINK_CAPS if for unicos (cray) */

#ifdef CLINK_CAPS

CHECK_RESOURCES(void)

#else

#ifdef NO_C_UNDERSCORE

check_resources(void)

#else

/* DBL_C_UNDERSCORE for pathscale */

#ifdef DBL_C_UNDERSCORE

check_resources__(void)

#else

check_resources_(void)

#endif

#endif

#endif

{

int n;

struct rlimit rlim;

n = getrlimit(RLIMIT_STACK, &rlim);

double h_lim = (double)rlim.rlim_max;

double s_lim = (double)rlim.rlim_cur;

printf("\nStacksize limits: hard: %10.1lf Kb Soft: %10.1lf Kb\n",h_lim/1024., s_lim/1024.);

rlim.rlim_cur = rlim.rlim_max;

n = setrlimit(RLIMIT_STACK, &rlim);

if ( n == -1 ) {

perror("setrlimit fails");

printf("\nUnable to increase stacksize\n");

}

}

Also, one needs to add a call to the subroutine from the main PMEMD module, pmemd.f90:

call time_it(3, 6)

call wall(itim0)

call check_resources()

This subroutine will try to increase soft stacksize limit upon run of PMEMD.

  • Serial Version Installation

In $AMBERHOME/src/pmemd one needs to create configuration file, config.h, using configure utility. Before running configure utility download configuration file, xeon.ifort.nopar , (shift-click or right-mouse-click for download) and put it into the $AMBERHOME/src/pmemd/config_data directory.

./configure xeon ifort nopar

User might want to look at file config.h and make corrections (if any).

make clean

make

To test a serial version of pmemd one needs to switch to the directory $AMBERHOME/test and run tests for the pmemd:

make test.pmemd

Where "possible FAILURE" messages are found, one needs to go to the indicated directory under $AMBERHOME/test, and look at the "*.dif" files. Differences should involve round-off in the final digit printed, or occasional messages that differ from machine to machine.

  • Parallel Version Installation

Set a path for local LAM-MPI binaries installation. For example:

set path= (/path/to/lam/bin $path)

Set MPI_HOME environment variable which will be used by PMEMD configure script:

setenv MPI_HOME /path/to/lam

In $AMBERHOME/src/pmemd one needs to create configuration file, config.h, using configure utility. Before running configure utility download configuration file, xeon.mpif77.lam , (shift-click or right-mouse-click for download) and put it into the $AMBERHOME/src/pmemd/config_data directory.

Run configure utility:

./configure xeon mpif77 lam

You might want to look at file config.h and make corrections (if any).

make clean

make

To test a parallel version of pmemd one needs to switch to the directory $AMBERHOME/test, setup “DO_PARALLEL” environment variable

setenv DO_PARALLEL “mpirun –np 2 “

to run pmemd on two CPUs and run tests for the pmemd:

make test.pmemd

Where "possible FAILURE" messages are found, one needs to go to the indicated directory under $AMBERHOME/test, and look at the "*.dif" files. Differences should involve round-off in the final digit printed, or occasional messages that differ from machine to machine.