OpenMX with icc10 / gcc4+gfortran4 / sunstudio12 |
- Date: 2007/10/07 05:27
- Name: Pawel Lesniak
<warlord@ifmpan.poznan.pl>
- Hello,
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
| |