Installation: Difference between revisions

From The Yambo Project
Jump to navigation Jump to search
(Created page with "Everything to do with installation")
 
No edit summary
Line 1: Line 1:
Everything to do with installation
=== Preinstall ===
 
Download the yambo source as explained in [[Getting Yambo]].
 
Yambo can make good use of external libraries like FFTW, ESSL, BLAS, netCDF, and so on. It is worth identifying if they are already installed on your system, especially for HPCs.
 
=== Quick install ===
 
If you are lucky, the configure script will successfully find the best compiler options.
 
% tar -xvzf yambo-latest.tar.gz
% cd yambo-X.X.X
% ./configure
% make yambo ypp interfaces
 
Executables are found in the <tt>bin</tt> folder. To check that it works:
 
% ./bin/yambo
Cannot access CORE database (SAVE/*db1 and/or SAVE/*wf)
 
=== Full install ===
 
In general, however, some fine-tuning will be necessary to link the requested libraries.
 
./configure --help
 
for a large set of options.
 
Insert details here...
 
After configure, you can also edit the <code>config/setup</code> file.
 
=== See also ===
 
* [[Configure options for Yambo v3 and earlier]]
* [[configure options for Yambo v4]]
* [[Machine specific configure scripts]]
 
=== Linking to external libraries ===
 
==== NetCDF support ====
 
One of the most useful features of yambo is its ability to carry out all (or most of!) the database I/O using the NetCDF libraries. If NetCDF support is not possible, yambo will handle the database I/O using the native binary Fortran format. Many high-performance architectures already have the NetCDF libraries available, so make sure to check these out first. If not, you will have to download and compile the libraries from the link above. You might find it useful to consult the successful build outputs. Once NetCDF is compiled and installed on your system, you can use the configure script to compile yambo with NetCDF support using
 
./configure --with-netcdf-lib=<NetCDF LIB DIRECTORY> --with-netcdf-include=<NetCDF INCLUDE DIRECTORY>
 
==== NetCDF as underlying storage layer of HDF5 ====
 
It is possible to configure NetCDF 4.x.x as underlying storage layer of the HDF5 library. Compile Yambo with NetCDF as described in the previous section and add the flag --enable-netcdf-hdf5. Notice that when NetCDF library is compiled with the HDF5 support it requires additional libraries in the linking process, see here for more details. Yambo automatically detects these libraries but if it doesn't work you can use the flag --with-netcdf-link=... to pass you own libraries list.
FFTW support
 
The configure script should hopefully detect FFTW libraries if they are located in your $PATH. Otherwise, you can specify user-defined locations with
 
./configure --with-fftw=<FFTW LIB DIRECTORY>
If you are running on the CINECA CRAY systems, the FFTW library is located in /cineca/prod/lib. Hence, try compiling with:
./configure --with-fftw=/cineca/prod/lib
Of course, if the linking with FFTW doesn't work, the default Goedecker FFT routines will be used.
==== IOTK support ====
 
To import output from PWscf/Quantum-Espresso, the IOTK libraries (Input/Output ToolKit, bundled with the QE distribution) need to be linked. Provide the path to the IOTK directory in the compiled PWscf source, and specify the version of PWscf, e.g.:
 
./configure --with-iotk='/usr/local/src/espresso-4.0/iotk' --with-p2y=4.0
On some HPC systems you might have to compile PWscf yourself to make the IOTK libraries available.
==== ETSF-IO support ====
 
To import output from Abinit, you can compile abinit with the option --with-trio-flavor="none" and then compile the yambo interfaces with no additional options.
 
However from yambo 3.4.1 we suggest to use the ETSF-IO support. Try to compile abinit with the netcdf+etsf_io IO/flavor. If you are in the $ABINIT_SOURCE_PATH directory, you may try something like that:
 
mkdir compile_tmp
cd compile_tmp
../configure --with-trio-flavor="netcdf+etsf_io" --with-dft-flavor="libxc" --with-netcdf-incs="-I/usr/include/"
  --with-netcdf-libs="-L/usr/lib/ -lnetcdff -lnetcdf -lhdf5_hl -lhdf5 -lcurl -lz"
  MPI_RUNNER="mpirun"  CC="mpicc" FC="mpif90" --prefix="$ABINIT_INSTALL_PATH" --exec-prefix="$ABINIT_INSTALL_PATH"
and then compile yambo with the ETSF-IO support
./configure --with-etsf-io-lib="$ABINIT_SOURCE_PATH/compile_tmp/fallbacks/exports/lib"
            --with-etsf-io-include="$ABINIT_SOURCE_LIB/compile_tmp/fallbacks/exports/include"

Revision as of 16:56, 16 February 2017

Preinstall

Download the yambo source as explained in Getting Yambo.

Yambo can make good use of external libraries like FFTW, ESSL, BLAS, netCDF, and so on. It is worth identifying if they are already installed on your system, especially for HPCs.

Quick install

If you are lucky, the configure script will successfully find the best compiler options.

% tar -xvzf yambo-latest.tar.gz
% cd yambo-X.X.X
% ./configure
% make yambo ypp interfaces

Executables are found in the bin folder. To check that it works:

% ./bin/yambo

Cannot access CORE database (SAVE/*db1 and/or SAVE/*wf)

Full install

In general, however, some fine-tuning will be necessary to link the requested libraries.

./configure --help

for a large set of options.

Insert details here...

After configure, you can also edit the config/setup file.

See also

Linking to external libraries

NetCDF support

One of the most useful features of yambo is its ability to carry out all (or most of!) the database I/O using the NetCDF libraries. If NetCDF support is not possible, yambo will handle the database I/O using the native binary Fortran format. Many high-performance architectures already have the NetCDF libraries available, so make sure to check these out first. If not, you will have to download and compile the libraries from the link above. You might find it useful to consult the successful build outputs. Once NetCDF is compiled and installed on your system, you can use the configure script to compile yambo with NetCDF support using

./configure --with-netcdf-lib=<NetCDF LIB DIRECTORY> --with-netcdf-include=<NetCDF INCLUDE DIRECTORY>

NetCDF as underlying storage layer of HDF5

It is possible to configure NetCDF 4.x.x as underlying storage layer of the HDF5 library. Compile Yambo with NetCDF as described in the previous section and add the flag --enable-netcdf-hdf5. Notice that when NetCDF library is compiled with the HDF5 support it requires additional libraries in the linking process, see here for more details. Yambo automatically detects these libraries but if it doesn't work you can use the flag --with-netcdf-link=... to pass you own libraries list. FFTW support

The configure script should hopefully detect FFTW libraries if they are located in your $PATH. Otherwise, you can specify user-defined locations with

./configure --with-fftw=<FFTW LIB DIRECTORY> If you are running on the CINECA CRAY systems, the FFTW library is located in /cineca/prod/lib. Hence, try compiling with: ./configure --with-fftw=/cineca/prod/lib Of course, if the linking with FFTW doesn't work, the default Goedecker FFT routines will be used.

IOTK support

To import output from PWscf/Quantum-Espresso, the IOTK libraries (Input/Output ToolKit, bundled with the QE distribution) need to be linked. Provide the path to the IOTK directory in the compiled PWscf source, and specify the version of PWscf, e.g.:

./configure --with-iotk='/usr/local/src/espresso-4.0/iotk' --with-p2y=4.0 On some HPC systems you might have to compile PWscf yourself to make the IOTK libraries available.

ETSF-IO support

To import output from Abinit, you can compile abinit with the option --with-trio-flavor="none" and then compile the yambo interfaces with no additional options.

However from yambo 3.4.1 we suggest to use the ETSF-IO support. Try to compile abinit with the netcdf+etsf_io IO/flavor. If you are in the $ABINIT_SOURCE_PATH directory, you may try something like that:

mkdir compile_tmp cd compile_tmp ../configure --with-trio-flavor="netcdf+etsf_io" --with-dft-flavor="libxc" --with-netcdf-incs="-I/usr/include/"

 --with-netcdf-libs="-L/usr/lib/ -lnetcdff -lnetcdf -lhdf5_hl -lhdf5 -lcurl -lz"
 MPI_RUNNER="mpirun"  CC="mpicc" FC="mpif90" --prefix="$ABINIT_INSTALL_PATH" --exec-prefix="$ABINIT_INSTALL_PATH"

and then compile yambo with the ETSF-IO support ./configure --with-etsf-io-lib="$ABINIT_SOURCE_PATH/compile_tmp/fallbacks/exports/lib"

           --with-etsf-io-include="$ABINIT_SOURCE_LIB/compile_tmp/fallbacks/exports/include"