This thread is locked.Only browsing is available.
Top Page > Browsing
OpenMX with icc10 / gcc4+gfortran4 / sunstudio12
Date: 2007/10/07 05:27
Name: Pawel Lesniak   <>


I'd like to share my work on compilation of openmx using intel icc compiler version 10.0, sun C compiler (from SunStudio12) and gfortran4 on amd opteron machine.

From this version of icc compiler switch -fast means -O3 optimization, which currently means you have to own core duo processor. So best results can be obtained using following switches:
icc -ip -ipo -O2 -mcmodel=medium -m64 -xW -static -no-prec-div

Using -O3 optimization produced binary which fails during FT_NLP with Segmentation fault.

I've tried few blas/lapack libraries. There's not so much difference in time of execution. My fftw3 library is compiled with intel's icc 10.
Linking with CMKL 9.1/8.1.1 (difference only in path to library files):
LIB = /opt/fftw3/lib/libfftw3.a -L/opt/intel/libraries/cmkl/9.1.023/lib/em64t -lmkl_lapack -lmkl_em64t -lguide -lpthread -lsvml -ip -ipo -static -i-static
Linking with Atlas built by Axel Kohlmeyer:
LIB = /opt/fftw3/lib/libfftw3.a /opt/atlas/libatlas_x86_64.a -ip -ipo -static -i-static

On opteron 265 (1.8GHz) I get following time results for openmx -runtest:
icc9.1 / mkl 8.1.1 : 1451s
icc10.0 / mkl 8.1.1: 1476s
icc10.0 / mkl 9.1: 1418s
icc10.0 / atlas: 1443s
gcc4.0.3+gfortran4.0.3 / acml4.0.0: 1668s
suncc12 / sunperflib: 1541s

Some tips for sun compiler:
CC = /opt/sunstudio12/bin/cc -Dnompi -m64 -static -xO2 -xarch=sse2a -xchip=opteron -xipo=2 -fast
LD = /opt/sunstudio12/bin/f90 -Dnompi -m64
There's also one more change in makefile needed:
openmx: $(OBJS)
$(LD) $(OBJS) $(STACK) $(LIB) -o openmx
It's just one have to use fortran compiler when linking with sun performance library.

Compilation with GNU compilers requires linking with acml using fortran compiler so it's similar to compilation with sun compilers.

I had no luck compiling with suncc and acml (there's lack of acml for sunstudio under linux).
Also I didn't manage to produce executable using icc and acml. There's a statement one should use gfortran version of library, but that's not working with C compiler.

Pawel Lesniak
Page: [1]