[gmx-users] Compiling with ICC: advantages and -if yes- a suitable protocol? (it seems I can't)

ms devicerandom at gmail.com
Mon Oct 11 20:52:02 CEST 2010


Dear gmx users,

I have heard (read: read on random blogs here and there) that on Intel 
compiling GROMACS with icc instead of gcc can bring up to 50% 
performance improvement.

Since I always used gcc compiled GROMACS, I'd like to know:
- Is this true?
- If yes, can anybody help me in doing so? I tried but I cannot find a 
reasonable protocol online and setting LDFLAGS gives me quite an 
headache : my last configure dies this way:

$ export CC=/opt/intel/Compiler/11.0/081/bin/intel64/icc
$ export LDFLAGS="-L$SOFT/lib -L/opt/intel/Compiler/11.0/081/lib/intel64 
-lguide -lpthread"
$ ./configure --with-fft=fftw3 --program-suffix=_icc --enable-mpi

checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking how to create a ustar tar archive... gnutar
checking for C compiler default output file name... a.out
checking whether the C compiler works... configure: error: cannot run C 
compiled programs.

where config.log says, in the relevant section:

configure:3441: /opt/intel/Compiler/11.0/081/bin/intel64/icc 
-I/home/ms872/software/include -L/home/ms872/software/lib 
-L/opt/intel/Compiler/11.0/081/lib/in
tel64 -lguide -lpthread conftest.c  >&5
configure:3444: $? = 0
configure:3482: result: a.out
configure:3499: checking whether the C compiler works
configure:3509: ./a.out
./a.out: error while loading shared libraries: libguide.so: cannot open 
shared object file: No such file or directory
configure:3512: $? = 127
configure:3521: error: cannot run C compiled programs.

but if I look for this library:
$ locate libguide.so
/opt/intel/Compiler/11.0/081/lib/intel64/libguide.so

...that seems therefore to be in the LDFLAGS!

Note that I am trying to compile 4.0.7 and not 4.5.1 (because I then 
need to apply 3rd-party patches that do not apply to 4.5.1 yet -but 
before thinking of that, I want to get the compilation right, so now 
it's vanilla gromacs)

It's clear that I am no C hacker, so thanks to everyone that can help me.

Massimo



More information about the gromacs.org_gmx-users mailing list