Installing Abinit
Installing Abinit
INSTALLING ABINIT
Marc Torrent
CEA, DAM, DIF, France
www.cea.fr
Internet connection ?
Can be convenient to download “on the fly” some extra packages
Building
Installing
Copying to the final destination
The source
package
No Yes
Compile the software
Internet Activate optional feature
connection?
No Yes
Download the software
Deactivate Compile it
optional feature Activate optional feature
Installing ABINIT | Abinit Hands-on 2019
WHAT ARE THE FALLBACKS?
Mandatory
Blas/LAPACK : Linear Algebra
A vendor library strongly recommended
Fallback version not efficient
Almost mandatory
netCDF/netCDF-Fortran : to write machine-independent binaries
Used by post-processing tools, trajectory restart, …
LibXC : a collection of Exchange-Correlation functionals
If not activated, on a few XC functionals available
Optional
Wannier90: use of Maximally Localized Wannier Functions
Used by post-processing tools (transport properties)
../configure --help
Compile
Always use parallel build with predefined make commands
make mj4 >> 4 tasks in parallel
or make mj8 >> 8 tasks in parallel
But:
ABINIT can be used
They are installed in /usr/local
on a laptop but you
Parallel features (MPI, openMP or GPU) can do better
are not necessarily used
It is completely
Optional features (plugins/fallbacks) are inadequate for a
not necessarily activated parallel computer
Elementary functions (i.e. linear algebra,
FFT) can be inefficient
../configure --prefix=destination_directory
../configure FC=mpif90
2nd step : use linear algebra Blas/LAPACK from the Linux distribution
===========================================================
==== Final remarks ===
===========================================================
Summary of important options:
* C compiler : gnu version 6.2
* Fortran compiler: gnu version 6.2
* architecture : unknown unknown (64 bits)
* debugging : basic
* optimizations : standard
* OpenMP enabled : no (collapse: ignored)
* MPI enabled : no
* MPI-IO enabled : no
* GPU enabled : no (flavor: none)
* TRIO flavor = netcdf
* TIMER flavor = abinit (libs: ignored)
* LINALG flavor = Atlas or
netlib mkl user-defined)
(libs:
* ALGO flavor = none (libs: ignored)
* FFT flavor = none (libs: ignored)
* MATH flavor = none (libs: ignored)
* DFT flavor = libxc
Configuration complete.
2nd step : use linear algebra Blas/LAPACK from the Linux distribution
Finally, the command line for the configuration step can be long:
configure --with-trio-flavor=“netcdf” \
--with-dft-flavor=“libxc” \
--prefix=destination_directory \
--enable-mpi FC=mpif90 \
--with-mpi-incs=“-Ipath_to_incs” \
--with-mpi-libs=“-Lpath_to_libs –lmpi..” \
--with-linalg-libs=“-L/usr/lib –lblas –llapack”
configure --with-trio-flavor=“netcdf”
--with-dft-flavor=“libxc”
--prefix=destination_directory
--enable-mpi FC=mpif90
--with-mpi-incs=“-Ipath_to_incs”
--with-mpi-libs=“-Lpath_to_libs –lmpi..”
--with-linalg-libs=“-L/usr/lib –lblas –llapack”
PARALLEL COMPUTERS
SUPERCOMPUTERS + ABINIT
MA
ND
ATO
Add: RY
!
--enable-openmp or enable_openmp=“yes”
Examples:
Intel mkl library: “-lmkl_gnu_thread” or “-lmkl_intel-thread”
Atlas library: -lptf77blas –lptcblas
fftw libray: -lfftw3_threads
Activate ScaLapack
Add with_linalg_flavor=“scalapack” in configuration file
Add ScaLapack in link line
Activate multithreading
Add threads in link line
Ex.: -lmkl_gnu_thread
with_linalg_flavor=“scalapack”
with_linalg_libs=${SCALAPACK_LDFLAGS}
conflict scalapack
prereq mkl/17.0.0.098
prereq mpi
module-whatis MKL ScaLAPACK routines ILP64 Multi-threaded
Setenv SCALAPACK_ROOT /ccc/products/mkl-17.0.0.098/default/17.0.0.098/mkl
Setenv SCALAPACK_INCDIR /ccc/products/mkl-17.0.0.098/default/17.0.0.098/mkl/include
Setenv SCALAPACK_LIBDIR /ccc/products/mkl-17.0.0.098/default/17.0.0.098/mkl/lib/intel64
Strongly recommended
Use of ELPA library
Usually available on
supercomputers
Needs ScaLapack
with_fft_flavor=“fftw3”
with_fft_incs="-I${MKL_INCDIR}”
with_fft_libs=${MKL_LDFLAGS}
FC="mpif90"
CC="mpicc" Choice of compilers
CXX="mpicxx"
enable_mpi="yes"
enable_openmp="yes" Hybrid parallelism
with_linalg_flavor="mkl+scalapack"
with_linalg_libs=${SCALAPACK_LDFLAGS} MKL ScaLapack
with_fft_flavor="fftw3"
with_fft_incs="-I${MKL_INCDIR}"
with_fft_libs=${MKL_LDFLAGS}
FFT from MKL
with_trio_flavor="netcdf"
with_dft_flavor="libxc"
===========================================================
==== Final remarks ===
===========================================================
Summary of important options:
* C compiler : intel version 17.0
* Fortran compiler: intel version 17.0
* architecture : intel xeon (64 bits)
* debugging : basic
* optimizations : standard
* OpenMP enabled : yes (collapse: yes)
* MPI enabled : yes
* MPI-IO enabled : auto
* GPU enabled : no (flavor: none)
* TRIO flavor = netcdf
* TIMER flavor = abinit (libs: ignored)
* LINALG flavor = mkl+scalapack (libs: auto-detected)
* ALGO flavor = none (libs: ignored)
* FFT flavor = fftw3 (libs: user-defined)
* MATH flavor = none (libs: ignored)
* DFT flavor = libxc
Configuration complete.
Installing ABINIT | Abinit Hands-on 2019
CONCLUSION
INSTALLING ABINIT – KEYS POINTS
On scalar architecture
Activate at least netCDF and libXC plugins
Build a parallel executable (MPI)
Use preinstalled BLALS/Lapack libraries
On parallel architecture
Use “module” command
Activate hybrid parallelism (MPI+openMP)
Link to vendor libraries;
use multithreaded libraries
https://forum.abinit.org
https://wiki.abinit.org
Etablissement public à caractère industriel et commercial | RCS Paris B 775 685 019