AMBER Archive (2000)

Subject: Re: CCL:AMBER6 and MPICH

From: David Konerding (dek_at_cgl.ucsf.edu)
Date: Sat Dec 30 2000 - 23:44:00 CST


David Case writes:
>On Fri, Dec 22, 2000, ReichertD_at_mir.wustl.edu wrote:
>
>> I hope that someone out on the list can provide some help. I'm trying to
>> compile AMBER 6 on a Linux cluster using MPICH, after a struggle I managed
>> to get it to compile and the parallel version of sander runs fine, ...
>
>We'd be interested in any details of your struggle you care to give us,
>so that future versions will be better. Maybe just send the final MACHINE
>file that you used. We've found it difficult to anticpate all the various
>things that users try with Linux/MPICH clusters, and user input is helpful.

I'm pretty sure the reason people are having problems are these:

1) There are a number of linux distributions, and each has its own version of
glibc, and compiler.

2) Each person compiles MPICH slightly differently- with the ch_p4 device,
be careful if you select the shared memory communicator.

3) Some people have multiple versions of MPICH (and even other MPI
implementations such as LAM or MPIPRO) installed on the same machine
and they mix and match MPICH libraries, header files, and mpirun scripts.

4) A common problem is extra underscores. When linking fortran code with C
code you need to make sure you're using the same scheme. See the compiler manpage
and infopage for info on "-fno-second-underscore".

I can say that the following works for me without any major contortions:

Red Hat Linux 6.2
gcc 2.95.2 or egcs-2.91.66
MPICH 1.2.0 or MPICH 1.2.1 (configured using ./configure -comm=shared -usesysv --without-romio)
AMBER 6.0

I think the main improvement in the Amber MACHINE file would be to
*not* use the /lib/cpp method of preprocessing the files, but rather
run "mpif77" and "mpicc" and use the natural compiler preprocessing
instead. Also, refer to the expact mpif77 path
("/usr/mpich-1.2.0/bin/mpif77") so you ensure the right script is
invoked. Then when you run AMBER, use the mpirun from the same dir
("/usr/mpich-1.2.0/bin/mpirun"). This guarantees that the same
libraries, include files, and command scripts are used for compiling
and running AMBER.