AMBER Archive (2007)

Subject: Re: AMBER: AMBER8 compiler with intel 9.1 compiler

From: Peter Z. Qin (pzq_at_usc.edu)
Date: Wed May 16 2007 - 15:37:53 CDT


----- Original Message -----
From: "Scott Brozell" <sbrozell_at_scripps.edu>
To: <amber_at_scripps.edu>
Sent: Wednesday, May 16, 2007 11:42 AM
Subject: Re: AMBER: AMBER8 compiler with intel 9.1 compiler

> Hi,
>
> On Tue, 15 May 2007, Peter Z. Qin wrote:
>
>> I am running AMBER8 on our school mainframe (Linux cluster). Recent
>> changes
>> at this facility forces me to re-compile AMBER8 with an Intel 9.1
>> compiler.
>> While my previous compilation of AMBER8 using an Intel 8.1 compiler
>> passed
>> all tests, the re-compilation (both the serial and the parallel version)
>> fails testing on several cases. A typical example, generated from
>> test/cytosine/Run.cytosine, is:
>>
>> 87,88c87,88
>> < NSTEP = 1 TIME(PS) = 5420.002 TEMP(K) = 301.21
>> PRESS -5.8
>> < Etot = -608.3990 EKtot = 1063.0604 EPtot
>> -1671.459
>> ---
>> > NSTEP = 1 TIME(PS) = 5420.002 TEMP(K) = 301.68
>> > PRESS -651.0
>> > Etot = -606.7460 EKtot = 1064.7135 EPtot
>> > -1671.459
>> 92c92
>> < EKCMT = 176.9122 VIRIAL = 180.9720 VOLUME =
>> 32637.922
>> ---
>> > EKCMT = 176.9122 VIRIAL = 635.6568 VOLUME =
>> > 32637.922
>> 94c94
>> < Ewald error estimate: 0.1512E-1
>> ---
>> > Ewald error estimate: 0.6367E+1
>>
>> My question is whether these differences are significant? and iff so,
>> whar
>> could be the fix?
>
> These are sig. diffs.

I guess that is the case, but it is still good to confirm. Thanks.

> What is the outpout of ifort -V ?

[pzq_at_hpc-login1 src]$ ifort -V
Intel(R) Fortran Compiler for 32-bit applications, Version 9.1 Build
20060323Z Package ID: l_fc_p_9.1.032
Copyright (C) 1985-2006 Intel Corporation. All rights reserved.
FOR NON-COMMERCIAL USE ONLY

> What config file was used ?

[pzq_at_hpc-login1 src]$ more config.h
#==============================================================================
# AMBER Makefile configuration for compiler/architecture: ifort
# Generated via command: ./configure ifort
#
# Configuration script written mainly by Joe Krahn, Scott Brozell, and
# Dave Case, with contributions from lots of people.
#==============================================================================

#------------------------------------------------------------------------------
# Main AMBER source root directory
#------------------------------------------------------------------------------
AMBER_SRC=/home/rcf-12/pzq/MD/amber8/src

#------------------------------------------------------------------------------
# AMBERBUILDFLAGS provides a hook into the build process for installers;
# for example, to build debug versions of the amber programs
# make -e AMBERBUILDFLAGS="-DDEBUG -g"
#------------------------------------------------------------------------------
AMBERBUILDFLAGS=

#------------------------------------------------------------------------------
# LOCALFLAGS is intended for program specific modifications to the
# Fortran build process and may be modified by the program's local makefile
#------------------------------------------------------------------------------
LOCALFLAGS=

#------------------------------------------------------------------------------
# Availability and method of delivery of math and optional libraries
#------------------------------------------------------------------------------
USE_BLASLIB=$(SOURCE_COMPILED)
USE_LAPACKLIB=$(SOURCE_COMPILED)
USE_LMODLIB=$(LMOD_UNAVAILABLE)

#------------------------------------------------------------------------------
# C compiler
#------------------------------------------------------------------------------
CC= gcc
CPLUSPLUS=g++
ALTCC=gcc
CFLAGS=-O2 $(AMBERBUILDFLAGS)
ALTCFLAGS= $(AMBERBUILDFLAGS)
CPPFLAGS= $(AMBERBUILDFLAGS)

#------------------------------------------------------------------------------
# Fortran preprocessing and compiler.
# FPPFLAGS holds the main Fortran options, such as whether MPI is used.
#------------------------------------------------------------------------------
FPPFLAGS= -P -I$(AMBER_SRC)/include $(AMBERBUILDFLAGS)
FPP= cpp -traditional $(FPPFLAGS)
FC= ifort
FFLAGS= -w95 -mp1 -O0 $(LOCALFLAGS) $(AMBERBUILDFLAGS)
FOPTFLAGS= -w95 -mp1 -ip -O3 $(LOCALFLAGS) $(AMBERBUILDFLAGS)
FPP_PREFIX= _
FREEFORMAT_FLAG= -FR

#------------------------------------------------------------------------------
# Loader:
#------------------------------------------------------------------------------
LOAD= ifort $(LOCALFLAGS) $(AMBERBUILDFLAGS)
LOADCC= gcc $(LOCALFLAGS) $(AMBERBUILDFLAGS)
LOADLIB=
LOADPTRAJ= ifort -nofor_main $(LOCALFLAGS) $(AMBERBUILDFLAGS)
XHOME= /usr/X11R6

#------------------------------------------------------------------------------
# Other stuff:
#------------------------------------------------------------------------------
.SUFFIXES: .f90
SYSDIR=lib
AR=ar rv
M4=m4
RANLIB=ranlib
SFX=
MAKEDEPEND=$(AMBER_SRC)/../bin/amber_makedepend

# default rules for Fortran and C compilation:

.f.o: $<
        $(FPP) $< > $(FPP_PREFIX)$<
        $(FC) -c $(FFLAGS) -o $@ $(FPP_PREFIX)$<

.f90.o: $<
        $(FPP) $< > $(FPP_PREFIX)$<
        $(FC) -c $(FFLAGS) -o $@ $(FPP_PREFIX)$<

.c.o:
        $(CC) -c $(CFLAGS) $(CPPFLAGS) -o $@ $<

> What are the machine details ?

      hpc0001 hpc0256 256 Dual Dualcore AMD Opteron 2.0 GHz
      4GB Memory 60GB main large quick X4100 opteron x86_64 dualcore

more details at http://www.usc.edu/hpcc/systems/use-l-0

>
> The simplest fix is to use an older intel compiler.

I was told by the adminstrator that intel 8.1 is no longer support on the
operating system

> I stay away from the latest from intel because I have found their
> quality assurance to be lacking.
> On the machines I use the latest versions are
> ia32 intel-compilers-9.0-20050916
> ia64 intel-compilers-9.1-20070111
> but I have not built amber with these versions (using 8.1 instead).
> I could not quickly find details about which intel versions
> have been used to build Amber at the web site.
> Other posters may be helpful here.
>
> The likely cause is changes in code meaning due to compiler
> optimizations. If you cannot use an older ifort then one
> could reduce the optimization level. There are clues in the diffs
> above, and more info about the other failing tests might enable
> someone knowledgeable about Amber's software architecture
> to identify a small number of files that have been affected.
>

1. For the cytosine case, below is the full difference between the
cytosine.out.save (from 02/2004) and my cytosine.out. It seems the input
parameters for sander are different, which is consistent with compiler
optimization level. But how do I reduce the optimization?

[pzq_at_hpc-login1 cytosine]$ more full.dif.cytosine
6c6
< | Run on 02/05/2004 at 17:33:30

---
> | Run on 05/15/2007 at 17:29:37
44c44
< | Flags: MPI
---
> | Flags:
60c60
< |     Real              170832
---
> |     Real              166979
62,64c62,64
< |     Integer           100948
< |     Max Pairs          26479
< |     Max Rstack         43100
---
> |     Integer           155255
> |     Max Pairs         423666
> |     Max Rstack        117560
66c66
< |       Total             2224 kbytes
---
> |       Total             4539 kbytes
131,136d130
< |  Atom division among processors:
< |         0      81     161     241     321     401     481     561
< |       641     721     801     881     961    1041    1121    1196
< |      1271
< |  Running AMBER/MPI version on   16 nodes
<
152c146
< | Local SIZE OF NONBOND LIST =       6576
---
> | Local SIZE OF NONBOND LIST =     100304
155,156c149,150
<  NSTEP =        1   TIME(PS) =    5420.002  TEMP(K) =   301.21  PRESS 
  -5.8
<  Etot   =      -608.3990  EKtot   =      1063.0604  EPtot 
 =     -1671.4594
---
>  NSTEP =        1   TIME(PS) =    5420.002  TEMP(K) =   301.68  PRESS 
>   -651.0
>  Etot   =      -606.7460  EKtot   =      1064.7135  EPtot 
>  =     -1671.4594
160c154
<  EKCMT  =       176.9122  VIRIAL  =       180.9720  VOLUME     = 
32637.9223
---
>  EKCMT  =       176.9122  VIRIAL  =       635.6568  VOLUME     = 
> 32637.9223
162c156
<  Ewald error estimate:   0.1512E-01
---
>  Ewald error estimate:   0.6367E+01
....

2. The following tests failed in the intel 9.1 compilation but passed for the intel 8.1 compilation. Could this give us a clue cytosine, dhfr, dhfr.noshake,mtrx, trx.cpln, alp.

-peter

----------------------------------------------------------------------- The AMBER Mail Reflector To post, send mail to amber_at_scripps.edu To unsubscribe, send "unsubscribe amber" to majordomo_at_scripps.edu