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)
 
(3 intermediate revisions by one other user 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 16: Line 16:
   
   
   
   
download lastest Yambo release, in 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 --enable-slepc-linalg \
  ./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):
compile the code (where -j4 means that the code is compiled in parallel on 4 cores):


   make -j4 yambo
   make -j4 core
  make -j4 interfaces
  make -j4 ypp


The compilation was successful if there are the yambo executables in the bin/ directory.
The compilation was successful if there are the yambo executables in the <code>bin/</code> 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.   
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.   
Line 42: Line 42:
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/  


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


   cp ..
   cp ..
   rm -rf yambo-5.0.1 yambo-5.0.1.tar.gz
   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-5.0.1/bin:$PATH  
  setenv PATH=/usr/local/yambo-5.1.1/bin:$PATH  
  setenv LD_LIBRARY_PATH=/usr/local/yambo-5.0.1/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!!!!
Line 72: Line 72:
you can copy also the include files:
you can copy also the include files:


  mkdir -p /usr/local/yambo-5.0.1/include
  mkdir -p /usr/local/yambo-5.1.1/include
  cp -r lib/external/*/*/include/*.* /usr/local/yambo-5.0.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.0.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:
and can add to the configure the following lines:


  export YAMBO_LIBS=/usr/local/yambo-5.0.1/
  export YAMBO_LIBS=/usr/local/yambo-5.1.1


and use the following options in the configure:
and use the following options in the configure:

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.