[gmx-users] intel compiler + amd64: help needed.

Jones de Andrade johannesrs at gmail.com
Thu Jun 1 00:15:33 CEST 2006


Hi all.

First of all, thanks everybody for the help. ;)

Yang, I know, I know. I should keep to the GNU. But lets say that I get
addicted to the intel compiler on a cpmd winter school, when it appeared in
front of me as the only freely available for both amd and intel cpus
fortran90 compiler. Since it also came with performance for free, that was a
good deal. I also have just a handfull of tuning flags I use for icc and
ifort. But, like everybody in here, we choose the machines for performance
(which means, first corret result, and later speed), same goes for me for
the compilers. Moreover, as I said before: I wana try QM/MM, and CPMD
doesn't work with gcc.

Back to the subject: David, thanks for the piece of gmx4 code.
Unfortunatelly, it don't work. I deleted all the objects from the directory
before trying to compile to assure that, and it yelded the same error.

On the other hand, the trick of compiling just mknb in gcc, and the rest
with icc got a bit farther, before crashing... but still gone with about a
thousand of weird warnings. I'm sending the window desktop outputs attached
in this message. Anyway, in order to make that trick, I've used the
following "script":
****************************************************************************************************
export CPPFLAGS=-I/usr/local/lib64/fftw/gnu/include
export LDFLAGS=-L/usr/local/lib64/fftw/gnu/lib
export CC=/usr/local/bin/gcc
export CFLAGS="-O3 -ffast-math -funroll-all-loops -fpeel-loops"

make distclean

./configure --prefix=/usr/local/bin/chemistry/gromacs/ISI/ --with-fft=fftw3

cp ./src/gmxlib/nonbonded/nb_kernel/Makefile ./Makefile.mknb.gcc
cp ./src/gmxlib/nonbonded/nb_kernel_ia32_3dnow/Makefile
./Makefile.mknb_kernel_ia32_3dnow.gcc
cp ./src/gmxlib/nonbonded/nb_kernel_ia32_sse/Makefile
./Makefile.mknb_kernel_ia32_sse.gcc
cp ./src/gmxlib/nonbonded/nb_kernel_ia32_sse2/Makefile
./Makefile.mknb_kernel_ia32_sse2.gcc
cp ./src/gmxlib/nonbonded/nb_kernel_x86_64_sse/Makefile
./Makefile.mknb_kernel_x86_64_sse.gcc
cp ./src/gmxlib/nonbonded/nb_kernel_x86_64_sse2/Makefile
./Makefile.mknb_kernel_x86_64_sse2.gcc

export PATH="$PATH /usr/local/intel/bin/ . /usr/local/intel/lib/"
export LD_LIBRARY_PATH=/usr/local/intel/lib/
export CPPFLAGS=-I/usr/local/lib64/fftw/intel/include
export LDFLAGS=-L/usr/local/lib64/fftw/intel/lib
export CC=/usr/local/intel/bin/icc
export CXX=/usr/local/intel/bin/icpc
export F77=/usr/local/intel/bin/ifort
export CFLAGS=" "
export CXXFLAGS=" "
export FFLAGS=" "
export CFLAGS="-O3 -axP -xW -ipo -static "
export CXXFLAGS="-O3 -axP -xW -ipo -static "
export FFLAGS="-O3 -axP -xW -ipo -static "

make distclean

./configure --prefix=/usr/local/bin/chemistry/gromacs/ISI/ --with-fft=fftw3
--disable-x86-64-sse

cp ./src/gmxlib/nonbonded/nb_kernel/Makefile ./Makefile.mknb.icc
cp ./src/gmxlib/nonbonded/nb_kernel_ia32_3dnow/Makefile
./Makefile.mknb_kernel_ia32_3dnow.icc
cp ./src/gmxlib/nonbonded/nb_kernel_ia32_sse/Makefile
./Makefile.mknb_kernel_ia32_sse.icc
cp ./src/gmxlib/nonbonded/nb_kernel_ia32_sse2/Makefile
./Makefile.mknb_kernel_ia32_sse2.icc
cp ./src/gmxlib/nonbonded/nb_kernel_x86_64_sse/Makefile
./Makefile.mknb_kernel_x86_64_sse.icc
cp ./src/gmxlib/nonbonded/nb_kernel_x86_64_sse2/Makefile
./Makefile.mknb_kernel_x86_64_sse2.icc

cp ./Makefile.mknb.gcc ./src/gmxlib/nonbonded/nb_kernel/Makefile
cp ./Makefile.mknb_kernel_ia32_3dnow.gcc
./src/gmxlib/nonbonded/nb_kernel_ia32_3dnow/Makefile
cp ./Makefile.mknb_kernel_ia32_sse.gcc
./src/gmxlib/nonbonded/nb_kernel_ia32_sse/Makefile
cp ./Makefile.mknb_kernel_ia32_sse2.gcc
./src/gmxlib/nonbonded/nb_kernel_ia32_sse2/Makefile
cp ./Makefile.mknb_kernel_x86_64_sse.gcc
./src/gmxlib/nonbonded/nb_kernel_x86_64_sse/Makefile
cp ./Makefile.mknb_kernel_x86_64_sse2.gcc
./src/gmxlib/nonbonded/nb_kernel_x86_64_sse2/Makefile

make
****************************************************************************************************

The output from it isn't attached. :( Sorry,  The gziped file is too big for
the list limits. Anyway, despite lots of warnings, the compilations ends
dieing in here:
*********************************************************************************************
/tmp/ipo_iccpmJSXr.c: undefined reference to `interaction_function'
/tmp/ipo_iccpmJSXr.o(.text+0x2edde):/tmp/ipo_iccpmJSXr.c: undefined
reference to `interaction_function'
/tmp/ipo_iccpmJSXr.o(.text+0x2ede6):/tmp/ipo_iccpmJSXr.c: undefined
reference to `interaction_function'
/tmp/ipo_iccpmJSXr.o(.text+0x2f1ca):/tmp/ipo_iccpmJSXr.c: undefined
reference to `_gmx_error'
/tmp/ipo_iccpmJSXr.o(.text+0x2f29b): In function `DS_Init':
/tmp/ipo_iccpmJSXr.c: undefined reference to `save_calloc'
/tmp/ipo_iccpmJSXr.o(.text+0x2f64d):/tmp/ipo_iccpmJSXr.c: undefined
reference to `debug'
/tmp/ipo_iccpmJSXr.o(.text+0x2f682):/tmp/ipo_iccpmJSXr.c: undefined
reference to `debug'
/tmp/ipo_iccpmJSXr.o(.text+0x2f6f6):/tmp/ipo_iccpmJSXr.c: undefined
reference to `debug'
/tmp/ipo_iccpmJSXr.o(.text+0x2f76c): In function `init_block2':
/tmp/ipo_iccpmJSXr.c: undefined reference to `save_calloc'
/tmp/ipo_iccpmJSXr.o(.text+0x2f78d):/tmp/ipo_iccpmJSXr.c: undefined
reference to `save_calloc'
make[3]: ** [grompp] Erro 1
make[3]: Leaving directory `/home/johannes/src/gromacs/gromacs-3.3
/src/kernel'
make[2]: ** [all-recursive] Erro 1
make[2]: Leaving directory `/home/johannes/src/gromacs/gromacs-3.3/src'
make[1]: ** [all] Erro 2
make[1]: Leaving directory `/home/johannes/src/gromacs/gromacs-3.3/src'
make: ** [all-recursive] Erro 1
**********************************************************************************************

Trying withou the "-ipo" flag now. It still yelds the same weird warning
(warning #147: declaration is incompatible with "double invsqrt(double)"
(declared at line 565 of "/usr/local/intel/include/math.h")
  static inline real invsqrt(real x)) and shows a lot of warnings like these
before stopping:

**********************************************************************************************
ld: skipping incompatible /usr/X11/lib/libXmu.so when searching for -lXmu
ld: skipping incompatible /usr/X11/lib/libXmu.a when searching for -lXmu
ld: skipping incompatible /usr/X11R6/lib/libXmu.so when searching for -lXmu
ld: skipping incompatible /usr/X11R6/lib/libXmu.a when searching for -lXmu
ld: skipping incompatible /usr/X11/lib/libSM.so when searching for -lSM
ld: skipping incompatible /usr/X11/lib/libSM.a when searching for -lSM
ld: skipping incompatible /usr/X11R6/lib/libSM.so when searching for -lSM
ld: skipping incompatible /usr/X11R6/lib/libSM.a when searching for -lSM
ld: skipping incompatible /usr/X11/lib/libICE.so when searching for -lICE
ld: skipping incompatible /usr/X11/lib/libICE.a when searching for -lICE
ld: skipping incompatible /usr/X11R6/lib/libICE.so when searching for -lICE
ld: skipping incompatible /usr/X11R6/lib/libICE.a when searching for -lICE
ld: skipping incompatible /usr/X11/lib/libXext.so when searching for -lXext
ld: skipping incompatible /usr/X11/lib/libXext.a when searching for -lXext
ld: skipping incompatible /usr/X11R6/lib/libXext.so when searching for
-lXext
ld: skipping incompatible /usr/X11R6/lib/libXext.a when searching for -lXext
ld: skipping incompatible /usr/X11/lib/libXp.so when searching for -lXp
ld: skipping incompatible /usr/X11/lib/libXp.a when searching for -lXp
ld: skipping incompatible /usr/X11R6/lib/libXp.so when searching for -lXp
ld: skipping incompatible /usr/X11R6/lib/libXp.a when searching for -lXp
ld: skipping incompatible /usr/X11/lib/libXt.so when searching for -lXt
ld: skipping incompatible /usr/X11/lib/libXt.a when searching for -lXt
ld: skipping incompatible /usr/X11R6/lib/libXt.so when searching for -lXt
ld: skipping incompatible /usr/X11R6/lib/libXt.a when searching for -lXt
ld: skipping incompatible /usr/X11/lib/libX11.so when searching for -lX11
ld: skipping incompatible /usr/X11/lib/libX11.a when searching for -lX11
ld: skipping incompatible /usr/X11R6/lib/libX11.so when searching for -lX11
ld: skipping incompatible /usr/X11R6/lib/libX11.a when searching for -lX11
**********************************************************************************************

I don't know why, but I got the feeling that this is the most promissing
stuff up to now! :) But what are those warnings and errors?

Tom, just did as suggest with gdb. The output follows:
*****************************************************************
GNU gdb 6.3
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "x86_64-suse-linux"...Using host libthread_db
library "/lib64/tls/libthread_db.so.1".

(gdb) r -software_invsqrt
Starting program:
/home/johannes/src/gromacs/gromacs-3.3/src/gmxlib/nonbonded/nb_kernel/mknb
-software_invsqrt
>>> Gromacs nonbonded kernel generator (-h for help)
>>> Generating single precision functions in C.
>>> Using Gromacs software version of 1/sqrt(x).

Program received signal SIGSEGV, Segmentation fault.
0x00002aaaab15a88c in __find_specmb () from /lib64/tls/libc.so.6
(gdb) bt
#0  0x00002aaaab15a88c in __find_specmb () from /lib64/tls/libc.so.6
#1  0x00002aaaab140e6f in vfprintf () from /lib64/tls/libc.so.6
#2  0x00002aaaab15e2a9 in vsprintf () from /lib64/tls/libc.so.6
#3  0x00002aaaab149568 in sprintf () from /lib64/tls/libc.so.6
#4  0x0000000000402a47 in mknb_code ()
#5  0x0000000000402183 in mknb_declare_int ()
#6  0x000000000040356d in mknb_declare_variables ()
#7  0x0000000000401989 in main ()
**********************************************************************
Seems to yeld the same as before... :( Any bell ringing?

People, really sorry for bothering the whole list with this subject. I would
not do so if I didn't want to give a try for the gromacs+cpmd combo. Also, I
do think that if this can be done, more people will be able to get results
from this (even if the results is "don't try, it doesn't yeld you any
performance improve on AMD machines", it will at least let others without
any doubt if the trial would be usefull)

Thanks in advance for everything.

Jones
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://maillist.sys.kth.se/pipermail/gromacs.org_gmx-users/attachments/20060531/aa7d50ed/attachment.html>


More information about the gromacs.org_gmx-users mailing list