Dear ABINIT users and developers,
I would like to optimize the parallel built of ABINIT on the following platforms:
Linux/ia64: SGI Altix - Intel Intanium
Linux/x86_64: AMD Opteron
I attached the current built information (ia64 case). Which compiler would you recommend to use? What about LAPACK libraries? Any additional optimization tips?
Thanks!
Best regards,
Martin Haeufel
TU Munich, WSI (T33)
http://www.wsi.tum.de
=== Build Information ===
Version : 6.0.2
Build target : ia64_linux_intel10.1
=== Compiler Suite ===
C compiler : gnu
CFLAGS : -m64 -g -O3 -fforce-addr
C++ compiler : gnu10.1
CXXFLAGS : -O3
Fortran compiler : intel10.1
FCFLAGS : -O3
FC_LDFLAGS : -static-libgcc -static-intel
=== Optimizations ===
Debug level : yes
Optimization level : standard
Architecture : intel_itanium1
=== MPI ===
Parallel build : yes
Parallel I/O : no
=== Linear algebra ===
Library type : abinit
Use ScaLAPACK : no
=== Plug-ins ===
BigDFT : no
ETSF I/O : no
LibXC : yes
FoX : no
NetCDF : no
Wannier90 : no
=== Experimental features ===
Bindings : no
Error handlers : no
Exports : no
GW double-precision : no
Macroave build : yes
Performance issues - How to optimize ABINIT 6.0.2
Moderators: fgoudreault, mcote
Forum rules
Please have a look at ~abinit/doc/config/build-config.ac in the source package for detailed and up-to-date information about the configuration of Abinit 8 builds.
For a video explanation on how to build Abinit 7.x for Linux, please go to: http://www.youtube.com/watch?v=DppLQ-KQA68.
IMPORTANT: when an answer solves your problem, please check the little green V-like button on its upper-right corner to accept it.
Please have a look at ~abinit/doc/config/build-config.ac in the source package for detailed and up-to-date information about the configuration of Abinit 8 builds.
For a video explanation on how to build Abinit 7.x for Linux, please go to: http://www.youtube.com/watch?v=DppLQ-KQA68.
IMPORTANT: when an answer solves your problem, please check the little green V-like button on its upper-right corner to accept it.
Re: Performance issues - How to optimize ABINIT 6.0.2
On Linux/IA64, you should use the Intel Fortran compiler for best performance. If you're fearless, you may even use the --enable-optim=aggressive option of configure.
On Linux/x86_64, gfortran and ifort give similar performance, gfortran being only a few percents below ifort.
In any case, running the test suite before going to production calculations is highly recommended if you use aggressive optimizations.
On Linux/x86_64, gfortran and ifort give similar performance, gfortran being only a few percents below ifort.
In any case, running the test suite before going to production calculations is highly recommended if you use aggressive optimizations.
Yann Pouillon
Simune Atomistics
Donostia-San Sebastián, Spain
Simune Atomistics
Donostia-San Sebastián, Spain
Re: Performance issues - How to optimize ABINIT 6.0.2
Dear ABINIT users and developers,
I am wondering wether it is possible to improve performance using external math libraries. A first trial lead to a 3 percent slower version. Which math libraries are "recommended"? What about FFTW?
I attached the current configuration (platform Linux/SGI Altix - Intel Itanium).
Thanks,
Best regards,
Martin Haeufel,
TU Munich, WSI (T33)
http://www.wsi.tum.de
Altix (-O3):
../configure --prefix=/lrz/sys/applications/abinit/6.0.3/altix
--bindir=/lrz/sys/applications/abinit/6.0.3/altix/bin
--enable-64bit-flags --disable-bigdft --disable-etsf-io --disable-netcdf
--disable-wannier90 --with-cc-optflags --with-fc-ld-optflags
--enable-scalapack --with-scalapack-libs="-L/lrz/sys/scalapack-1.7
-lscalapack -L/lrz/sys/blacs/lib -lblacsF77init_altix_intel81
-lblacs_altix_intel81 -lblacsF77init_altix_intel81"
--enable-optim=aggressive --disable-debug CC=mpicc FC=mpif90 CXX=mpiCC
=== Build Information ===
Version : 6.0.3
Build target : ia64_linux_intel10.1
=== Compiler Suite ===
C compiler : gnu
CFLAGS : -m64 -O3 -fforce-addr
C++ compiler : gnu10.1
CXXFLAGS : -O3
Fortran compiler : intel10.1
FCFLAGS : -O3
FC_LDFLAGS : -static-libgcc -static-intel
=== Optimizations ===
Debug level : no
Optimization level : aggressive
Architecture : intel_itanium1
=== MPI ===
Parallel build : yes
Parallel I/O : no
=== Linear algebra ===
Library type : abinit
Use ScaLAPACK : yes
=== Plug-ins ===
BigDFT : no
ETSF I/O : no
LibXC : yes
FoX : no
NetCDF : no
Wannier90 : no
=== Experimental features ===
Bindings : no
Error handlers : no
Exports : no
GW double-precision : no
Macroave build : yes
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
CPP options activated during the build:
CC_GNU CXX_GNU FC_INTEL
HAVE_FC_EXIT HAVE_FC_FLUSH HAVE_FC_GET_ENVIRONMEN...
HAVE_FC_LONG_LINES HAVE_FC_NULL HAVE_LIBXC
HAVE_MPI HAVE_MPI2 HAVE_SCALAPACK
HAVE_STDIO_H USE_MACROAVE
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
I am wondering wether it is possible to improve performance using external math libraries. A first trial lead to a 3 percent slower version. Which math libraries are "recommended"? What about FFTW?
I attached the current configuration (platform Linux/SGI Altix - Intel Itanium).
Thanks,
Best regards,
Martin Haeufel,
TU Munich, WSI (T33)
http://www.wsi.tum.de
Altix (-O3):
../configure --prefix=/lrz/sys/applications/abinit/6.0.3/altix
--bindir=/lrz/sys/applications/abinit/6.0.3/altix/bin
--enable-64bit-flags --disable-bigdft --disable-etsf-io --disable-netcdf
--disable-wannier90 --with-cc-optflags --with-fc-ld-optflags
--enable-scalapack --with-scalapack-libs="-L/lrz/sys/scalapack-1.7
-lscalapack -L/lrz/sys/blacs/lib -lblacsF77init_altix_intel81
-lblacs_altix_intel81 -lblacsF77init_altix_intel81"
--enable-optim=aggressive --disable-debug CC=mpicc FC=mpif90 CXX=mpiCC
=== Build Information ===
Version : 6.0.3
Build target : ia64_linux_intel10.1
=== Compiler Suite ===
C compiler : gnu
CFLAGS : -m64 -O3 -fforce-addr
C++ compiler : gnu10.1
CXXFLAGS : -O3
Fortran compiler : intel10.1
FCFLAGS : -O3
FC_LDFLAGS : -static-libgcc -static-intel
=== Optimizations ===
Debug level : no
Optimization level : aggressive
Architecture : intel_itanium1
=== MPI ===
Parallel build : yes
Parallel I/O : no
=== Linear algebra ===
Library type : abinit
Use ScaLAPACK : yes
=== Plug-ins ===
BigDFT : no
ETSF I/O : no
LibXC : yes
FoX : no
NetCDF : no
Wannier90 : no
=== Experimental features ===
Bindings : no
Error handlers : no
Exports : no
GW double-precision : no
Macroave build : yes
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
CPP options activated during the build:
CC_GNU CXX_GNU FC_INTEL
HAVE_FC_EXIT HAVE_FC_FLUSH HAVE_FC_GET_ENVIRONMEN...
HAVE_FC_LONG_LINES HAVE_FC_NULL HAVE_LIBXC
HAVE_MPI HAVE_MPI2 HAVE_SCALAPACK
HAVE_STDIO_H USE_MACROAVE
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Re: Performance issues - How to optimize ABINIT 6.0.2
Martin wrote:I am wondering wether it is possible to improve performance using external math libraries. A first trial lead to a 3 percent slower version. Which math libraries are "recommended"? What about FFTW?
If you are using ifort, the best is probably to use MKL. You may have to put some extra Fortran flags using the FCFLAGS_EXTRA environment variable to further optimize the code. The procedure is in any case highly architecture-dependent and the final result cannot be predicted in advance. If you find interesting parameters, please let us know in this thread.
FFTW support is incomplete and very experimental in Abinit 6.0. I suggest you to wait for abinit 6.2 if you want to use it.
Yann Pouillon
Simune Atomistics
Donostia-San Sebastián, Spain
Simune Atomistics
Donostia-San Sebastián, Spain
Re: Performance issues - How to optimize ABINIT 6.0.2
Hi Martin,
I'm Miguel Pan an application technician in a supercomputing center in Spain [http://www.cesga.es]. I'm trying to install ABINIT 6.0.3 in a itanium machine [http://www.cesga.es/content/view/917/115/lang,en/]. I use this script to configure the application:
#!/bin/bash
module load icc/11.1.056 ifort/11.1.056 mkl/10.2.2 impi/3.2.1.009
module list
export CC=mpiicc
export CFLAGS="-O3"
export CXX=mpiicpc
export CXXFLAGS="-O3"
export FC=mpiifort
export FCFLAGS="-O3"
./configure -enable-64bit-flags --disable-bigdft --disable-etsf-io --disable-netcdf --disable-wannier90 --with-linalg-libs="-L$MKLPATH -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lguide -lpthread -lm" --enable-mpi=yes --enable-scalapack --with-scalapack-libs="-L$MKLPATH -lmkl_scalapack_lp64 -lmkl_solver_lp64 -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lmkl_blacs_intelmpi_lp64 -lpthread" --disable-debug --prefix=/sfs/home/cesga/mpan/abinit-6.0.3
The compilation process works properly, the problem are the tests. I run the simplest sequential tests of the suite (make tests_min inside tests folder) and a lot of segmentation faults (core dumped) raise. I'm trying to recompile with a less aggressive flag.
I hope this information will be useful for you. I will post any kind of progress with the tests.
--
Atentamente,
Miguel Pan Fidalgo (Applications Technician)
mail: mpan at cesga.es
web: http://www.cesga.es
Avda. de Vigo s/n 15705, Santiago de Compostela
Telf.: +34 981 569810 - Fax: 981 594616
-------------------------------------------------------------------------
I'm Miguel Pan an application technician in a supercomputing center in Spain [http://www.cesga.es]. I'm trying to install ABINIT 6.0.3 in a itanium machine [http://www.cesga.es/content/view/917/115/lang,en/]. I use this script to configure the application:
#!/bin/bash
module load icc/11.1.056 ifort/11.1.056 mkl/10.2.2 impi/3.2.1.009
module list
export CC=mpiicc
export CFLAGS="-O3"
export CXX=mpiicpc
export CXXFLAGS="-O3"
export FC=mpiifort
export FCFLAGS="-O3"
./configure -enable-64bit-flags --disable-bigdft --disable-etsf-io --disable-netcdf --disable-wannier90 --with-linalg-libs="-L$MKLPATH -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lguide -lpthread -lm" --enable-mpi=yes --enable-scalapack --with-scalapack-libs="-L$MKLPATH -lmkl_scalapack_lp64 -lmkl_solver_lp64 -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lmkl_blacs_intelmpi_lp64 -lpthread" --disable-debug --prefix=/sfs/home/cesga/mpan/abinit-6.0.3
The compilation process works properly, the problem are the tests. I run the simplest sequential tests of the suite (make tests_min inside tests folder) and a lot of segmentation faults (core dumped) raise. I'm trying to recompile with a less aggressive flag.
I hope this information will be useful for you. I will post any kind of progress with the tests.
--
Atentamente,
Miguel Pan Fidalgo (Applications Technician)
mail: mpan at cesga.es
web: http://www.cesga.es
Avda. de Vigo s/n 15705, Santiago de Compostela
Telf.: +34 981 569810 - Fax: 981 594616
-------------------------------------------------------------------------