Installation: Difference between revisions
Line 20: | Line 20: | ||
This is the expected error message since we didn't provide the input database needed by Yambo. | This is the expected error message since we didn't provide the input database needed by Yambo. | ||
=== Configuration | === Custom Configuration === | ||
In general, however, some fine-tuning will be necessary to link the requested libraries. | In general, however, some fine-tuning will be necessary to link the requested libraries. | ||
It is also possible to customize the configurazion using configure options that allow you to enable or disable some features. In order to have a complete list of all those options use the command | |||
./configure --help | ./configure --help | ||
Line 28: | Line 29: | ||
After configure, you can also edit the <code>config/setup</code> file. | After configure, you can also edit the <code>config/setup</code> file. | ||
If you want to install yambo on your local machine or just for testing/tutorial purposes, you can start with the configure options suggested | If you want to install yambo on your local machine or just for testing/tutorial purposes, you can start with the configure options suggested here: | ||
--enable-mpi # already enabled by default | |||
--enable-open-mp | |||
to enable MPI and OpenMP parallelizarion; | |||
--enable-time-profile | |||
--enable-memory-profile | |||
to enable time and memory profiling (very useful for benchmarking and debugging); | |||
--enable-par-linalg | |||
--enable-slepc-linalg | |||
to enable rispectively the support to the parallel (with ScaLAPACK) linear algebra and the suport for the diagonalization of BSE using SLEPc library; | |||
--enable-cuda=<opts> | |||
to enable CUDA-Fortran support, where <tt><ops></tt> are the CUDA version and the compute capability of the NVidia device (e.g. <tt>cuda11.0,cc70</tt>). Pease consider this last option only if you are sure that the machine that you are using have a GPU CUDA-capable. | |||
==== About external libraries ==== | |||
Usually in HPC systems you can find already installed the library needed by Yambo. So you can use them through the specific configure options. Here below some examples. | |||
In order to link to a specific installation of a library you can use the relative configure option and specify the path: | |||
--with-hdf5-path=</path/to/hdf5> | |||
--with-netcdf-path=</path/to/netcdf-c> | |||
--with-netcdff-path=</path/to/netcdf-fortran> | |||
Here and example on how to use an installation of the Intel MKL libraries for the linear algebra and the Fourier transformations: | |||
--with-blas-libs="-L${MKLROOT}/lib/intel64 -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm -ldl" \ | |||
--with-lapack-libs="-L${MKLROOT}/lib/intel64 -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm -ldl" \ | |||
--with-scalapack-libs="-L${MKLROOT}/lib/intel64 -lmkl_scalapack_lp64" \ | |||
--with-blacs-libs="-L${MKLROOT}/lib/intel64 -lmkl_blacs_intelmpi_lp64" \ | |||
--with-fft-includedir="${MKLROOT}/include" \ | |||
--with-fft-libs="-L${MKLROOT}/lib/intel64 -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm -ldl" | |||
==== Specific Configuration options ==== | ==== Specific Configuration options ==== | ||
Here is a list of specific configuration options. | |||
* [[configure-5.0|Configure options for yambo 5.0]] | * [[configure-5.0|Configure options for yambo 5.0]] |
Revision as of 08:29, 29 March 2023
Download
The Yambo source code can be downloaded from several sources. Refer to the dedicated page for further informations.
Quick Configuration (with long compilation)
Yambo can make good use of external libraries like FFTW, LAPACK, netCDF, HDF5, IOTK, LIBXC and so on. It is worth identifying if they are already installed on your system, especially for HPC machines.
If you are lucky, the configure script will successfully find the best compiler options. Moving in the source directory you can configure quickly Yambo and start the compilation simply with these two commands:
% ./configure % make core
This leads to a very long compilation because Yambo will download and compile all the required libraries. Executables are found in the bin folder. To check that it works:
% ./bin/yambo Cannot access CORE database (SAVE/*db1 and/or SAVE/*wf)
This is the expected error message since we didn't provide the input database needed by Yambo.
Custom Configuration
In general, however, some fine-tuning will be necessary to link the requested libraries. It is also possible to customize the configurazion using configure options that allow you to enable or disable some features. In order to have a complete list of all those options use the command
./configure --help
After configure, you can also edit the config/setup
file.
If you want to install yambo on your local machine or just for testing/tutorial purposes, you can start with the configure options suggested here:
--enable-mpi # already enabled by default --enable-open-mp
to enable MPI and OpenMP parallelizarion;
--enable-time-profile --enable-memory-profile
to enable time and memory profiling (very useful for benchmarking and debugging);
--enable-par-linalg --enable-slepc-linalg
to enable rispectively the support to the parallel (with ScaLAPACK) linear algebra and the suport for the diagonalization of BSE using SLEPc library;
--enable-cuda=<opts>
to enable CUDA-Fortran support, where <ops> are the CUDA version and the compute capability of the NVidia device (e.g. cuda11.0,cc70). Pease consider this last option only if you are sure that the machine that you are using have a GPU CUDA-capable.
About external libraries
Usually in HPC systems you can find already installed the library needed by Yambo. So you can use them through the specific configure options. Here below some examples.
In order to link to a specific installation of a library you can use the relative configure option and specify the path:
--with-hdf5-path=</path/to/hdf5> --with-netcdf-path=</path/to/netcdf-c> --with-netcdff-path=</path/to/netcdf-fortran>
Here and example on how to use an installation of the Intel MKL libraries for the linear algebra and the Fourier transformations:
--with-blas-libs="-L${MKLROOT}/lib/intel64 -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm -ldl" \ --with-lapack-libs="-L${MKLROOT}/lib/intel64 -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm -ldl" \ --with-scalapack-libs="-L${MKLROOT}/lib/intel64 -lmkl_scalapack_lp64" \ --with-blacs-libs="-L${MKLROOT}/lib/intel64 -lmkl_blacs_intelmpi_lp64" \ --with-fft-includedir="${MKLROOT}/include" \ --with-fft-libs="-L${MKLROOT}/lib/intel64 -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm -ldl"
Specific Configuration options
Here is a list of specific configuration options.
* Configure options for yambo 5.0 * Configure options for Yambo 4.4.0 * Configure options for Yambo v4 and v3
Further informations
- Install Yambo in IRENE machine (TGCC Joliot Curie)
- Install Yambo on Ubuntu/LinuxMint
- Machine specific configure scripts
- Install Yambo on Ubuntu/LinuxMint with Intel compiler
- Install Yambo with external HDF5 and NetCDF libraries
- Install Yambo on Ubuntu/LinuxMint with NVfortran compiler
- Compile the libraries in Yambo independently
Known Issues
- gfortran 4.4 or earlier versions
Yambo 5.x uses different Fortran constructs, as for example "allocate(x, source=y)", that are not supported by gfortran 4.4 and its earlier versions, please update your gfortran or use a different compiler.
- NetCDF/HDF5 in Ubuntu 20.4
Internal NetCDF and HDF5 libraries in LinuxMint 20.1/Ubuntu 20.4 have problems with Yambo please use internal Yambo libraries
- Quantum-Espresso at GAMMA point
In Quantum-Espresso if you perform a SCF calculation using the option "KPOINTS gamma" you should use the same option for the NSCF otherwise Yambo gets confused with the g-vectors. If you need more k-points in the NSCF just re-run the SCF with "KPOINTS automatic /1 1 1 0 0 0" and the run NSCF with a finite k-grid
- Internal MAC-OSX libraries
At present it is no possible to compile Yambo with internal macos libraries Indeed, no include/system/netcdf.mod file is present in the system. The problem is due to Autoconf setting which automatically searches for versions of the needed libraries in your system despite the specific options given to configure. Then, it would compile the internal hdf5, then find an external netcdf, then try to compile netcdf-fortran creating various conflicts.
- gfortran compiler on MAC-OSX
There are different problems compiling Yambo with "gfortran" variant of the compiler/libraries with MacPorts, a possible solution it is to install the "gcc8" variant of these libraries and compilters.
More details here: http://www.yambo-code.org/forum/viewtopic.php?t=1767
- Input file generation on MacOSX
There are two issues on input file generation: 1) when you generate an input file on MacOSX Yambo is not able to read values already present in the input file, and reset them to the default value; 2) if yambo and ypp have the same option to generate an input file the code get confused. Please use long input strings, for example "yambo -optics" instead of "yambo -o".