[CPMD-list] Questions: CPMD make warning & run anomally(?)

Axel Kohlmeyer axel.kohlmeyer at theochem.ruhr-uni-bochum.de
Fri Mar 18 14:21:56 CET 2005


On Wed, 16 Mar 2005, John Kofi Dogbe wrote:

JKD> Hi CPMD Users,

hi john,

JKD> I have recently set up a small rocks cluster (6-nodes) using AMD Athlon64
JKD> processor. I'm using the Intel Compiler with the EMT64 support. As a
JKD> start, I decided to compile the serial version of CPMD using Dr. Axel
JKD> Kohlmeyer's make file "BOCHUM-AMD64-IFORT". Anyways, I got the following

please find attached the 'official' configuration files from  cpmd v3.9.2.

JKD> warning during the make:
JKD> 
JKD> fortcom: Warning: ./cnst_dyn.inc, line 75: Because of COMMON, the
JKD> alignment of object is inconsistent with its type   [IP_CVPAR]
JKD>      &          (IP_CVPAR,CVPAR),
JKD> -----------------^
JKD> ... I got similar warnings regarding other .inc files. I got the CPMD
JKD> executable all right. Are these warnings to be worried about? In other
JKD> words, would these affect running cpmd executable?

yes and no. the program should still work correctly. however performance
is affected. pointers should be aligned on certain address boundaries,
but since in fortran common blocks are required to be tightly packed
and must not contain any padding, the compiler cannot fulfil this 
requirement if there is an odd number of integer or logicals in front
of the pointer in the common. cpmd v3.9.2 should have these fixed though.

JKD> By the way what is the suggested Makefile (or flags) to be able to
JKD> successfully build the parallel version? I have the following: mpi(intel),
JKD> mpich (built with intel and gnu compiler) and lam (intel and gnu compiler
JKD> builds). Which one should I compile against? I only have intel fortran
JKD> installed apart from GNU cc. Can I use ifort and icc instead of ifort and
JKD> cc (gcc)?

the c part in cpmd is very small (sysdepend.c), it is not performance
critical and icc and since you have to link agains the intel runtime,
it should not make any difference which one of them you use. when 
compiling in parallel you should use the corresponding mpicc/mpif77
wrapper, so you get the proper include files and libraries. since
there is no parallel code in sysdepend.c you can just use plain
gcc or icc if you want to. for mpich you _have_ to use the ifort
version, for lam you can get away with a g77 version, _if_ you
have configured it with FC='g77 -fno-second-underscore' like it
is done in the lam/mpi packages from my homepage. since g77 is
not sufficient to compile cpmd, you have to tell the mpif77 program
to use ifort instead of g77, which you can do with setting the
compiler/linke in the makefile to 'env LAMHF77=ifort mpif77'.
for the lam/mpi configured with ifort this is not needed, you
just use mpif77. i haven't compared the performance of MPICH
and LAM recently, but i personally prefer LAM because of the
cleaner implementation and the flexibility when debugging.
it used to be a little bit better for cpmd than MPICH.


JKD> I recently re-run some old geometry optimization jobs for ammonia. The
JKD> weird thing was that the total energy adds up to 0.0au. I re-run the job
JKD> again and I was not able to repeat this ... here's the section of
JKD> the input file which might be of interest:
JKD> 
JKD>  (K+E1+L+N+X)           TOTAL ENERGY =            0.00000000 A.U.
JKD>  (K)                  KINETIC ENERGY =            6.87095299 A.U.
JKD>  (E1=A-S+R)     ELECTROSTATIC ENERGY =           -8.34988646 A.U.
JKD>  (S)                           ESELF =            9.30865321 A.U.
JKD>  (R)                             ESR =            0.89152736 A.U.
JKD>  (L)    LOCAL PSEUDOPOTENTIAL ENERGY =           -8.76304363 A.U.
JKD>  (N)      N-L PSEUDOPOTENTIAL ENERGY =            2.13094189 A.U.
JKD>  (X)     EXCHANGE-CORRELATION ENERGY =           -3.58420432 A.U.
JKD>           GRADIENT CORRECTION ENERGY =           -0.20857142 A.U.
JKD> ... everything looks all right. I run this job on an SGI Origin 200.
JKD> Any ideas what could have caused this? As you can see, it just didn't add
JKD> up the K+E1+L+N+X.

the file wrener.F is supposed to be compile without optimization on
SIG machines. perhaps you have/had a miscompiled cpmd binary.


best regards,
	axel.

JKD> 
JKD> Thank you.
JKD> John
JKD> --
JKD> **The first is not necessarily the Leader**
JKD> 
JKD> 	"If I have spoken evil, bear witness of the evil:
JKD> 		but if well, why smitest thou me?"
JKD> 				-- Jesus Christ (John, 18:23)
JKD> _______________________________________________
JKD> CPMD-list mailing list
JKD> CPMD-list at cpmd.org
JKD> http://cpmd.org/mailman/listinfo/cpmd-list
JKD> 
JKD> 

-- 

=======================================================================
Dr. Axel Kohlmeyer   e-mail: axel.kohlmeyer at theochem.ruhr-uni-bochum.de
Lehrstuhl fuer Theoretische Chemie          Phone: ++49 (0)234/32-26673
Ruhr-Universitaet Bochum - NC 03/53         Fax:   ++49 (0)234/32-14045
D-44780 Bochum  http://www.theochem.ruhr-uni-bochum.de/~axel.kohlmeyer/
=======================================================================
If you make something idiot-proof, the universe creates a better idiot.
-------------- next part --------------
#INFO#
#INFO# Configuration to build a serial cpmd executable for a linux machine
#INFO# with an AMD64/EM64T cpu (Opteron/AthlonFX/Athlon64/Xeon-EM64T) using 
#INFO# the Intel Fortran Compiler with EM64T extensions.
#INFO#
#INFO# For optimal performance you should use a specifically tuned BLAS/LAPACK
#INFO# library. 
#INFO#
#INFO# see http://www.theochem.ruhr-uni-bochum.de/~axel.kohlmeyer/cpmd-linux.html
#INFO# for more information on compilind and running CPMD on linux machines.
#INFO#
#INFO# NOTE: CPMD cannot be compiled with the GNU Fortran compiler.
#INFO#
     IRAT=2
     CFLAGS='-O2 -Wall -m64'
     CPP='/lib/cpp -P -C -traditional'
     CPPFLAGS='-D__Linux -D__PGI -DFFT_DEFAULT -DPOINTER8 -DLINUX_IFC'
     FFLAGS='-pc64  -tpp7 -O3 -unroll'
     LFLAGS='-static-libcxa -L. -latlas_x86_64'
     FFLAGS_GROMOS='-Dgood_luck'
     if [ $debug ]; then
       FC='ifort -c -g'
       CC='gcc -g -Wall -m64'
       LD='ifort -g'
     else
       FC='ifort -c '
       CC='gcc'
       LD='ifort '
     fi
 
-------------- next part --------------
#INFO#
#INFO# Configuration to build a parallel cpmd executable for a linux machine
#INFO# with an AMD64/EM64T cpu (Opteron/AthlonFX/Athlon64/Xeon-EM64T) using 
#INFO# the Intel Fortran Compiler with EM64T extensions.
#INFO#
#INFO# For optimal performance you should use a specifically tuned BLAS/LAPACK
#INFO# library. 
#INFO#
#INFO# see http://www.theochem.ruhr-uni-bochum.de/~axel.kohlmeyer/cpmd-linux.html
#INFO# for more information on compilind and running CPMD on linux machines.
#INFO#
#INFO# NOTE: CPMD cannot be compiled with the GNU Fortran compiler.
#INFO#
     IRAT=2
     CFLAGS='-O2 -Wall -m64'
     CPP='/lib/cpp -P -C -traditional'
     CPPFLAGS='-D__Linux -D__PGI -DFFT_DEFAULT -DPOINTER8 -DLINUX_IFC \
	-DPARALLEL -DMYRINET'
     FFLAGS='-pc64  -tpp7 -O3 -unroll'
     LFLAGS='-static-libcxa -L. -latlas_x86_64'
     FFLAGS_GROMOS='-Dgood_luck'
     if [ $debug ]; then
       FC='mpif77 -c -g'
       CC='mpicc -g -Wall -m64'
       LD='mpif77 -g'
     else
       FC='mpif77 -c '
       CC='mpicc'
       LD='mpif77 '
     fi
 


More information about the CPMD-list mailing list