Hi all.<br>
<br>
First of all, thanks everybody for the help. ;)<br>
<br>
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.<br>
<br>
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.<br>
<br>
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 &quot;script&quot;:<br>****************************************************************************************************<br>
export CPPFLAGS=-I/usr/local/lib64/fftw/gnu/include<br>
export LDFLAGS=-L/usr/local/lib64/fftw/gnu/lib<br>
export CC=/usr/local/bin/gcc<br>
export CFLAGS=&quot;-O3 -ffast-math -funroll-all-loops -fpeel-loops&quot;<br>
<br>
make distclean<br>
<br>
./configure --prefix=/usr/local/bin/chemistry/gromacs/ISI/ --with-fft=fftw3<br>
<br>
cp ./src/gmxlib/nonbonded/nb_kernel/Makefile ./Makefile.mknb.gcc<br>
cp ./src/gmxlib/nonbonded/nb_kernel_ia32_3dnow/Makefile ./Makefile.mknb_kernel_ia32_3dnow.gcc<br>
cp ./src/gmxlib/nonbonded/nb_kernel_ia32_sse/Makefile ./Makefile.mknb_kernel_ia32_sse.gcc<br>
cp ./src/gmxlib/nonbonded/nb_kernel_ia32_sse2/Makefile ./Makefile.mknb_kernel_ia32_sse2.gcc<br>
cp ./src/gmxlib/nonbonded/nb_kernel_x86_64_sse/Makefile ./Makefile.mknb_kernel_x86_64_sse.gcc<br>
cp ./src/gmxlib/nonbonded/nb_kernel_x86_64_sse2/Makefile ./Makefile.mknb_kernel_x86_64_sse2.gcc<br>
<br>
export PATH=&quot;$PATH /usr/local/intel/bin/ . /usr/local/intel/lib/&quot;<br>
export LD_LIBRARY_PATH=/usr/local/intel/lib/<br>
export CPPFLAGS=-I/usr/local/lib64/fftw/intel/include<br>
export LDFLAGS=-L/usr/local/lib64/fftw/intel/lib<br>
export CC=/usr/local/intel/bin/icc<br>
export CXX=/usr/local/intel/bin/icpc<br>
export F77=/usr/local/intel/bin/ifort<br>
export CFLAGS=&quot; &quot;<br>
export CXXFLAGS=&quot; &quot;<br>
export FFLAGS=&quot; &quot;<br>
export CFLAGS=&quot;-O3 -axP -xW -ipo -static &quot;<br>
export CXXFLAGS=&quot;-O3 -axP -xW -ipo -static &quot;<br>
export FFLAGS=&quot;-O3 -axP -xW -ipo -static &quot;<br>
<br>
make distclean<br>
<br>
./configure --prefix=/usr/local/bin/chemistry/gromacs/ISI/ --with-fft=fftw3 --disable-x86-64-sse<br>
<br>
cp ./src/gmxlib/nonbonded/nb_kernel/Makefile ./Makefile.mknb.icc<br>
cp ./src/gmxlib/nonbonded/nb_kernel_ia32_3dnow/Makefile ./Makefile.mknb_kernel_ia32_3dnow.icc<br>
cp ./src/gmxlib/nonbonded/nb_kernel_ia32_sse/Makefile ./Makefile.mknb_kernel_ia32_sse.icc<br>
cp ./src/gmxlib/nonbonded/nb_kernel_ia32_sse2/Makefile ./Makefile.mknb_kernel_ia32_sse2.icc<br>
cp ./src/gmxlib/nonbonded/nb_kernel_x86_64_sse/Makefile ./Makefile.mknb_kernel_x86_64_sse.icc<br>
cp ./src/gmxlib/nonbonded/nb_kernel_x86_64_sse2/Makefile ./Makefile.mknb_kernel_x86_64_sse2.icc<br>
<br>
cp ./Makefile.mknb.gcc ./src/gmxlib/nonbonded/nb_kernel/Makefile<br>
cp ./Makefile.mknb_kernel_ia32_3dnow.gcc ./src/gmxlib/nonbonded/nb_kernel_ia32_3dnow/Makefile<br>
cp ./Makefile.mknb_kernel_ia32_sse.gcc ./src/gmxlib/nonbonded/nb_kernel_ia32_sse/Makefile<br>
cp ./Makefile.mknb_kernel_ia32_sse2.gcc ./src/gmxlib/nonbonded/nb_kernel_ia32_sse2/Makefile<br>
cp ./Makefile.mknb_kernel_x86_64_sse.gcc ./src/gmxlib/nonbonded/nb_kernel_x86_64_sse/Makefile<br>
cp ./Makefile.mknb_kernel_x86_64_sse2.gcc ./src/gmxlib/nonbonded/nb_kernel_x86_64_sse2/Makefile<br>
<br>
make<br>
****************************************************************************************************<br>
<br>
The output from it isn't attached. :( Sorry,&nbsp; The gziped file is
too big for the list limits. Anyway, despite lots of warnings, the
compilations ends dieing in here:<br>
*********************************************************************************************<br>
/tmp/ipo_iccpmJSXr.c: undefined reference to `interaction_function'<br>
/tmp/ipo_iccpmJSXr.o(.text+0x2edde):/tmp/ipo_iccpmJSXr.c: undefined reference to `interaction_function'<br>
/tmp/ipo_iccpmJSXr.o(.text+0x2ede6):/tmp/ipo_iccpmJSXr.c: undefined reference to `interaction_function'<br>
/tmp/ipo_iccpmJSXr.o(.text+0x2f1ca):/tmp/ipo_iccpmJSXr.c: undefined reference to `_gmx_error'<br>
/tmp/ipo_iccpmJSXr.o(.text+0x2f29b): In function `DS_Init':<br>
/tmp/ipo_iccpmJSXr.c: undefined reference to `save_calloc'<br>
/tmp/ipo_iccpmJSXr.o(.text+0x2f64d):/tmp/ipo_iccpmJSXr.c: undefined reference to `debug'<br>
/tmp/ipo_iccpmJSXr.o(.text+0x2f682):/tmp/ipo_iccpmJSXr.c: undefined reference to `debug'<br>
/tmp/ipo_iccpmJSXr.o(.text+0x2f6f6):/tmp/ipo_iccpmJSXr.c: undefined reference to `debug'<br>
/tmp/ipo_iccpmJSXr.o(.text+0x2f76c): In function `init_block2':<br>
/tmp/ipo_iccpmJSXr.c: undefined reference to `save_calloc'<br>
/tmp/ipo_iccpmJSXr.o(.text+0x2f78d):/tmp/ipo_iccpmJSXr.c: undefined reference to `save_calloc'<br>
make[3]: ** [grompp] Erro 1<br>
make[3]: Leaving directory `/home/johannes/src/gromacs/gromacs-3.3/src/kernel'<br>
make[2]: ** [all-recursive] Erro 1<br>
make[2]: Leaving directory `/home/johannes/src/gromacs/gromacs-3.3/src'<br>
make[1]: ** [all] Erro 2<br>
make[1]: Leaving directory `/home/johannes/src/gromacs/gromacs-3.3/src'<br>
make: ** [all-recursive] Erro 1<br>
**********************************************************************************************<br>
<br>
Trying withou the &quot;-ipo&quot; flag now. It still yelds the same weird
warning (warning #147: declaration is incompatible with &quot;double
invsqrt(double)&quot;
(declared at line 565 of &quot;/usr/local/intel/include/math.h&quot;)<br>

&nbsp; static inline real invsqrt(real x)) and shows a lot of warnings like these before stopping:<br>
<br>
**********************************************************************************************<br>
ld: skipping incompatible /usr/X11/lib/libXmu.so when searching for -lXmu<br>
ld: skipping incompatible /usr/X11/lib/libXmu.a when searching for -lXmu<br>
ld: skipping incompatible /usr/X11R6/lib/libXmu.so when searching for -lXmu<br>
ld: skipping incompatible /usr/X11R6/lib/libXmu.a when searching for -lXmu<br>
ld: skipping incompatible /usr/X11/lib/libSM.so when searching for -lSM<br>
ld: skipping incompatible /usr/X11/lib/libSM.a when searching for -lSM<br>
ld: skipping incompatible /usr/X11R6/lib/libSM.so when searching for -lSM<br>
ld: skipping incompatible /usr/X11R6/lib/libSM.a when searching for -lSM<br>
ld: skipping incompatible /usr/X11/lib/libICE.so when searching for -lICE<br>
ld: skipping incompatible /usr/X11/lib/libICE.a when searching for -lICE<br>
ld: skipping incompatible /usr/X11R6/lib/libICE.so when searching for -lICE<br>
ld: skipping incompatible /usr/X11R6/lib/libICE.a when searching for -lICE<br>
ld: skipping incompatible /usr/X11/lib/libXext.so when searching for -lXext<br>
ld: skipping incompatible /usr/X11/lib/libXext.a when searching for -lXext<br>
ld: skipping incompatible /usr/X11R6/lib/libXext.so when searching for -lXext<br>
ld: skipping incompatible /usr/X11R6/lib/libXext.a when searching for -lXext<br>
ld: skipping incompatible /usr/X11/lib/libXp.so when searching for -lXp<br>
ld: skipping incompatible /usr/X11/lib/libXp.a when searching for -lXp<br>
ld: skipping incompatible /usr/X11R6/lib/libXp.so when searching for -lXp<br>
ld: skipping incompatible /usr/X11R6/lib/libXp.a when searching for -lXp<br>
ld: skipping incompatible /usr/X11/lib/libXt.so when searching for -lXt<br>
ld: skipping incompatible /usr/X11/lib/libXt.a when searching for -lXt<br>
ld: skipping incompatible /usr/X11R6/lib/libXt.so when searching for -lXt<br>
ld: skipping incompatible /usr/X11R6/lib/libXt.a when searching for -lXt<br>
ld: skipping incompatible /usr/X11/lib/libX11.so when searching for -lX11<br>
ld: skipping incompatible /usr/X11/lib/libX11.a when searching for -lX11<br>
ld: skipping incompatible /usr/X11R6/lib/libX11.so when searching for -lX11<br>
ld: skipping incompatible /usr/X11R6/lib/libX11.a when searching for -lX11<br>
**********************************************************************************************<br>
<br>
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?<br>
<br>
Tom, just did as suggest with gdb. The output follows:<br>
*****************************************************************<br>
GNU gdb 6.3<br>
Copyright 2004 Free Software Foundation, Inc.<br>
GDB is free software, covered by the GNU General Public License, and you are<br>
welcome to change it and/or distribute copies of it under certain conditions.<br>
Type &quot;show copying&quot; to see the conditions.<br>
There is absolutely no warranty for GDB.&nbsp; Type &quot;show warranty&quot; for details.<br>
This GDB was configured as &quot;x86_64-suse-linux&quot;...Using host libthread_db library &quot;/lib64/tls/libthread_db.so.1&quot;.<br>
<br>
(gdb) r -software_invsqrt<br>
Starting program: /home/johannes/src/gromacs/gromacs-3.3/src/gmxlib/nonbonded/nb_kernel/mknb -software_invsqrt<br>
&gt;&gt;&gt; Gromacs nonbonded kernel generator (-h for help)<br>
&gt;&gt;&gt; Generating single precision functions in C.<br>
&gt;&gt;&gt; Using Gromacs software version of 1/sqrt(x).<br>
<br>
Program received signal SIGSEGV, Segmentation fault.<br>
0x00002aaaab15a88c in __find_specmb () from /lib64/tls/libc.so.6<br>
(gdb) bt<br>
#0&nbsp; 0x00002aaaab15a88c in __find_specmb () from /lib64/tls/libc.so.6<br>
#1&nbsp; 0x00002aaaab140e6f in vfprintf () from /lib64/tls/libc.so.6<br>
#2&nbsp; 0x00002aaaab15e2a9 in vsprintf () from /lib64/tls/libc.so.6<br>
#3&nbsp; 0x00002aaaab149568 in sprintf () from /lib64/tls/libc.so.6<br>
#4&nbsp; 0x0000000000402a47 in mknb_code ()<br>
#5&nbsp; 0x0000000000402183 in mknb_declare_int ()<br>
#6&nbsp; 0x000000000040356d in mknb_declare_variables ()<br>
#7&nbsp; 0x0000000000401989 in main ()<br>
**********************************************************************<br>
Seems to yeld the same as before... :( Any bell ringing?<br>
<br>
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 &quot;don't try, it
doesn't yeld you any performance improve on AMD machines&quot;, it will at
least let others without any doubt if the trial would be usefull)<br>
<br>
Thanks in advance for everything.<br>
<br>
Jones