Install Yambo on Ubuntu/LinuxMint: Difference between revisions

From The Yambo Project
Jump to navigation Jump to search
No edit summary
m (Removed patch level)
 
(13 intermediate revisions by 3 users not shown)
Line 1: Line 1:
Here we can find the instruction to install Yambo 5.0.1 on a standard machine with a [https://ubuntu.com/ Ubuntu]/[https://linuxmint.com/ LinuxMint] distribution.
Here we can find the instruction to install Yambo 5.1 on a standard machine with a [https://ubuntu.com/ Ubuntu]/[https://linuxmint.com/ LinuxMint] distribution.


We suppose you have root permission on your machine to install all the required packages.
We suppose you have root permission on your machine to install all the required packages.
Line 9: Line 9:
Install compilers, python, mkl, and all necessary libraries to compile Yambo:
Install compilers, python, mkl, and all necessary libraries to compile Yambo:


  apt-get -yqq install --no-install-recommends build-essential ca-certificates curl file \
  apt-get install build-essential ca-certificates curl file \
         make gcc g++ gfortran git gnupg2 iproute2 lmod \
         make gcc g++ gfortran git gnupg2 iproute2 \
        locales lua-posix python3 python3-pip python3-setuptools \
         unzip m4 wget git zlib1g-dev ssh \
         tcl unzip m4 wget git zlib1g-dev ssh \
         libmkl-avx libmkl-avx2 libmkl-avx512 libmkl-core libmkl-def \
         libmkl-gf-lp64 libmkl-gnu-thread libmkl-avx libmkl-avx2 libmkl-avx512 libmkl-core libmkl-def libmkl-dev libmkl-gf-ilp64  
        libmkl-dev libmkl-gf-ilp64 libmkl-gf-lp64 libmkl-gnu-thread
   
   
remove downloaded packages and set language:
apt-get clean
locale-gen en_US.UTF-8
   
   
download lastest Yambo release, this case the 5.0.1:
download lastest Yambo release, in this case the 5.1.1:


  wget https://github.com/yambo-code/yambo/archive/5.0.1.tar.gz -O yambo-5.0.1.tar.gz  
  wget https://github.com/yambo-code/yambo/archive/5.1.1.tar.gz -O yambo-5.1.1.tar.gz  


decompress the file  
decompress the file  


  tar zxfv yambo-5.0.1.tar.gz && cd yambo-5.0.1  
  tar zxfv yambo-5.1.1.tar.gz && cd yambo-5.1.1  


configure Yambo
configure Yambo


  ./configure --disable-mpi --enable-open-mp --enable-msgs-comps --enable-time-profile --enable-memory-profile \
  ./configure --disable-mpi --enable-open-mp \
  --with-blas-libs="-L${MKLROOT}/lib/intel64 -Wl,--no-as-needed -lmkl_gf_lp64 -lmkl_gnu_thread -lmkl_core -lgomp -lpthread -lm -ldl" \
  --enable-slepc-linalg --disable-hdf5-par-io \
  --with-lapack-libs="-L${MKLROOT}/lib/intel64 -Wl,--no-as-needed -lmkl_gf_lp64 -lmkl_gnu_thread -lmkl_core -lgomp -lpthread -lm -ldl"  
  --enable-msgs-comps --enable-time-profile --enable-memory-profile \
  --with-blas-libs="-L${MKLROOT}/lib/intel64 -Wl,--no-as-needed -lmkl_gf_lp64 -lmkl_gnu_thread -lmkl_core -lgomp -lpthread -lm -ldl" \
  --with-lapack-libs="-L${MKLROOT}/lib/intel64 -Wl,--no-as-needed -lmkl_gf_lp64 -lmkl_gnu_thread -lmkl_core -lgomp -lpthread -lm -ldl"  
 
compile the code (where -j4 means that the code is compiled in parallel on 4 cores):
 
  make -j4 core


compile the code  
The compilation was successful if there are the yambo executables in the <code>bin/</code> directory.


  make -j4 yambo && make -j4 interfaces && make -j4 ypp
From now the instructions are optional but suggested! You may need sudo privileges to install Yambo in a system directory, otherwise install it in your home space. 


create a folder to install code and libraries:
Create a folder to install code and libraries:


  mkdir -p /usr/local/yambo-5.0.1/lib  
  mkdir -p /usr/local/yambo-5.1.1/lib  


copy code and libraries in Yambo folder:
copy code and libraries in Yambo folder:


  cp -r bin /usr/local/yambo-5.0.1/  
  cp -r bin /usr/local/yambo-5.1.1/  
  cp -r lib/external/*/*/lib/*.* /usr/local/yambo-5.0.1/lib/  
  cp -r lib/external/*/*/lib/*.* /usr/local/yambo-5.1.1/lib/  
  cp -r lib/external/*/*/v4/serial/lib/*.* /usr/local/yambo-5.0.1/lib/  
  cp -r lib/external/*/*/v4/serial/lib/*.* /usr/local/yambo-5.1.1/lib/  
cd ..


you can remove the tar.gz file and the Yambo folder:
you can remove the tar.gz file and the Yambo folder (optional):


   rm -rf yambo-5.0.1 yambo-5.0.1.tar.gz
  cp ..
   rm -rf yambo-5.1.1 yambo-5.1.1.tar.gz


set the path to the Yambo bin folder, for tcsh/csh:
set the path to the Yambo bin folder, for tcsh/csh:


  setenv PATH=/usr/local/yambo-${yambo_version}/bin:$PATH  
  setenv PATH=/usr/local/yambo-5.1.1/bin:$PATH  
  setenv LD_LIBRARY_PATH=/usr/local/yambo-${yambo_version}/lib:$LD_LIBRARY_PATH
  setenv LD_LIBRARY_PATH=/usr/local/yambo-5.1.1/lib:$LD_LIBRARY_PATH


or in bash:
or in bash:


  export PATH=/usr/local/yambo-5.0.1/bin:$PATH  
  export PATH=/usr/local/yambo-5.1.1/bin:$PATH  
  export LD_LIBRARY_PATH=/usr/local/yambo-5.0.1/lib:$LD_LIBRARY_PATH
  export LD_LIBRARY_PATH=/usr/local/yambo-5.1.1/lib:$LD_LIBRARY_PATH


you are ready to use Yambo!!!!
you are ready to use Yambo!!!!
<br>
'''Optional for developers'''
you can copy also the include files:
mkdir -p /usr/local/yambo-5.1.1/include
cp -r lib/external/*/*/include/*.* /usr/local/yambo-5.1.1/include/
cp -r lib/external/*/*/v4/serial/include/*.* /usr/local/yambo-5.1.1/include/ 
and can add to the configure the following lines:
export YAMBO_LIBS=/usr/local/yambo-5.1.1
and use the following options in the configure:
--with-iotk-path="${YAMBO_LIBS}"  --with-libxc-path="${YAMBO_LIBS}" --with-hdf5-path="${YAMBO_LIBS}" --with-netcdf-path="${YAMBO_LIBS}" --with-netcdff-path="${YAMBO_LIBS}" \
--with-petsc-path="${YAMBO_LIBS}" --with-slepc-path="${YAMBO_LIBS}"
so the next time you recompile yambo from scrach it will not recompile the libraries.

Latest revision as of 17:12, 4 November 2024

Here we can find the instruction to install Yambo 5.1 on a standard machine with a Ubuntu/LinuxMint distribution.

We suppose you have root permission on your machine to install all the required packages.

Run apt-get to update the package list

apt-get -yqq update 

Install compilers, python, mkl, and all necessary libraries to compile Yambo:

apt-get install build-essential ca-certificates curl file \
       make gcc g++ gfortran git gnupg2 iproute2 \
       unzip m4 wget git zlib1g-dev ssh \
       libmkl-avx libmkl-avx2 libmkl-avx512 libmkl-core libmkl-def \
       libmkl-dev libmkl-gf-ilp64 libmkl-gf-lp64 libmkl-gnu-thread


download lastest Yambo release, in this case the 5.1.1:

wget https://github.com/yambo-code/yambo/archive/5.1.1.tar.gz -O yambo-5.1.1.tar.gz 

decompress the file

tar zxfv yambo-5.1.1.tar.gz && cd yambo-5.1.1 

configure Yambo

./configure --disable-mpi --enable-open-mp \
  --enable-slepc-linalg --disable-hdf5-par-io \
  --enable-msgs-comps --enable-time-profile --enable-memory-profile \
  --with-blas-libs="-L${MKLROOT}/lib/intel64 -Wl,--no-as-needed -lmkl_gf_lp64 -lmkl_gnu_thread -lmkl_core -lgomp -lpthread -lm -ldl" \
  --with-lapack-libs="-L${MKLROOT}/lib/intel64 -Wl,--no-as-needed -lmkl_gf_lp64 -lmkl_gnu_thread -lmkl_core -lgomp -lpthread -lm -ldl" 

compile the code (where -j4 means that the code is compiled in parallel on 4 cores):

 make -j4 core

The compilation was successful if there are the yambo executables in the bin/ directory.

From now the instructions are optional but suggested! You may need sudo privileges to install Yambo in a system directory, otherwise install it in your home space.

Create a folder to install code and libraries:

mkdir -p /usr/local/yambo-5.1.1/lib 

copy code and libraries in Yambo folder:

cp -r bin /usr/local/yambo-5.1.1/ 
cp -r lib/external/*/*/lib/*.* /usr/local/yambo-5.1.1/lib/ 
cp -r lib/external/*/*/v4/serial/lib/*.* /usr/local/yambo-5.1.1/lib/ 

you can remove the tar.gz file and the Yambo folder (optional):

 cp ..
 rm -rf yambo-5.1.1 yambo-5.1.1.tar.gz

set the path to the Yambo bin folder, for tcsh/csh:

setenv PATH=/usr/local/yambo-5.1.1/bin:$PATH 
setenv LD_LIBRARY_PATH=/usr/local/yambo-5.1.1/lib:$LD_LIBRARY_PATH

or in bash:

export PATH=/usr/local/yambo-5.1.1/bin:$PATH 
export LD_LIBRARY_PATH=/usr/local/yambo-5.1.1/lib:$LD_LIBRARY_PATH

you are ready to use Yambo!!!!


Optional for developers

you can copy also the include files:

mkdir -p /usr/local/yambo-5.1.1/include
cp -r lib/external/*/*/include/*.* /usr/local/yambo-5.1.1/include/ 
cp -r lib/external/*/*/v4/serial/include/*.* /usr/local/yambo-5.1.1/include/  

and can add to the configure the following lines:

export YAMBO_LIBS=/usr/local/yambo-5.1.1

and use the following options in the configure:

--with-iotk-path="${YAMBO_LIBS}"  --with-libxc-path="${YAMBO_LIBS}" --with-hdf5-path="${YAMBO_LIBS}" --with-netcdf-path="${YAMBO_LIBS}" --with-netcdff-path="${YAMBO_LIBS}" \
--with-petsc-path="${YAMBO_LIBS}" --with-slepc-path="${YAMBO_LIBS}"

so the next time you recompile yambo from scrach it will not recompile the libraries.