Dear All,
Thank you very much for introducing me to a wonderful forum.
I am new in Siesta.
Please let me know how I calculate free energy change of a reaction, I am
interested in calculating free energy profile for CO2 reduction steps.
Thanks in advance.

Regards,
Dr. N N Ghsoh
University of Gour Banga
India-73211
‪Dr. NARENDRA NATH GHOSH‬ - ‪Google Scholar‬
<https://scholar.google.com/citations?user=ZYjnP8sAAAAJ&hl=en>



On Fri, Jul 1, 2022 at 1:31 AM Mohammed Ghadiyali <
mohammed.ghadiy...@kaust.edu.sa> wrote:

> Hello,
>
> Thanks for the information, I’ll try to install it as per the instructions
> provided.
>
> Regards,
> Ghadiyali Mohammed Kader
> Post Doctoral Fellow
> King Abdullah University of Science and Technology
> On 29 Jun 2022, 11:06 PM +0300, Alberto Garcia <alber...@icmab.es>, wrote:
>
> Hello,
>
> We are writing a section on GPUs in the documentation, but until it is
> ready you can use the ideas below:
>
>
> There are two ways to take advantage of GPUs (enabled only for the solver
> stage, which typically takes up the most time):
>
> -- Using the ELPA library and its native interface in Siesta (this method
> is available for Siesta versions 4.1.5 and up)
>
> -- Using the ELSI library (for Siesta "MaX" versions
> (see the Guide to Siesta Versions in
> https://urldefense.com/v3/__https://gitlab.com/siesta-project/siesta/-/wikis/Guide-to-Siesta-versions__;!!Nmw4Hv0!zoGYljExKqs1b-VkrSmFhJ6futBuvXnhXa2RrwwV6TwhqqPzKFcb7n5hg1lr7CF5rT0insiOyeJscp-ZjrM4f0RLn3Di2A$
> )
>
> In both cases the special installation instructions involve only enabling
> GPU support in either ELPA or ELSI, and using the proper options in Siesta.
>
> For the first method the fdf options to enable GPUs are (example):
>
> diag-algorithm elpa-2
> diag-elpa-usegpu T
> diag-blocksize 16
> # Optional
> number-of-eigenstates 17320
> use-tree-timer T
>
>
> For the second (ELSI) method:
>
> solution-method elsi
> elsi-solver elpa
> elsi-elpa-gpu 1
> elsi-elpa-flavor 2
>
> # Optional
> number-of-eigenstates 17320
> use-tree-timer T
> elsi-output-level 3
>
> The installation of ELPA and ELSI with GPU support is system-specific, but
> you can get inspiration from the following examples:
>
> * ELPA (on Marconi-100 at CINECA, with IBM P9 chips and nVidia A100 GPUs,
> using the gcc compiler):
>
> Script to configure:
>
> #!/bin/sh
>
> # (Need to define properly the symbols used below)
> # Note that the P9 does not use the typical Intel kernels
>
> FC=mpifort CC=mpicc CXX=mpic++ \
> CFLAGS="-O3 -mcpu=native -std=c++11" \
> FCFLAGS="-O3 -mcpu=native -ffree-line-length-none"
> LDFLAGS="${SCALAPACK_LIBS} ${LAPACK_LIBS}" \
> ../configure \
> --with-cuda-path=${CUDA_HOME} \
> --with-cuda-sdk-path=${CUDA_HOME} \
> --enable-nvidia-gpu --with-NVIDIA-GPU-compute-capability=sm_70 \
> --enable-NVIDIA-gpu-memory-debug --enable-nvtx \
> --disable-sse-assembly --disable-sse --disable-avx --disable-avx2
> --disable-avx512 \
> --enable-c-tests=no --prefix=$PRJ/bin/gcc/elpa/2021.05.002.jul22
>
>
> (Adapt the options to your system)
>
> * ELSI
>
> SET(CMAKE_INSTALL_PREFIX "$ENV{BASE_DIR}/elsi/2.6.2" CACHE STRING
> "Installation dir")
>
> SET(CMAKE_Fortran_COMPILER "mpif90" CACHE STRING "MPI Fortran compiler")
> SET(CMAKE_C_COMPILER "mpicc" CACHE STRING "MPI C compiler")
> SET(CMAKE_CXX_COMPILER "mpicxx" CACHE STRING "MPI C++ compiler")
>
> SET(CMAKE_Fortran_FLAGS "-O2 -g -fbacktrace -fdump-core" CACHE STRING
> "Fortran flags")
> SET(CMAKE_C_FLAGS "-O2 -g -std=c99" CACHE STRING "C flags")
> SET(CMAKE_CXX_FLAGS "-O2 -g -std=c++11" CACHE STRING "C++ flags")
> SET(CMAKE_CUDA_FLAGS "-O3 -arch=sm_70 -std=c++11" CACHE STRING "CUDA
> flags")
> # Workaround: specify -std=c++11 in CMAKE_CUDA_FLAGS to avoid __ieee128
> gcc/cuda bug
>
> SET(USE_GPU_CUDA ON CACHE BOOL "Use CUDA-based GPU acceleration in ELPA")
> SET(ENABLE_PEXSI ON CACHE BOOL "Enable PEXSI")
> SET(ENABLE_TESTS ON CACHE BOOL "Enable tests")
> #SET(ADD_UNDERSCORE OFF CACHE BOOL "Do not suffix C functions with an
> underscore")
>
> SET(LIB_PATHS
> "/cineca/prod/opt/libraries/lapack/3.9.0/gnu--8.4.0/lib;/cineca/prod/opt/libraries/scalapack/2.1.0/spectrum_mpi--10.3.1--binary/lib;/cineca/prod/opt/compilers/cuda/11.0/none/lib64;/cineca/prod/opt/libraries/essl/6.2.1/binary/lib64"
> CACHE STRING "External library paths")
>
> SET(LIBS "scalapack;lapack;essl;cublas;cudart" CACHE STRING "External
> libraries")
> You should modify appropriately the location and version numbers of your
> libraries.
>
> Finally, a note about the importance of the proper execution incantation,
> for "pinning" the MPI ranks to the appropriate GPU:
>
> (There are probably better and more streamlined ways to do this)
>
> For this example I use the 32 cores (2x16) in Marconi for MPI tasks, no
> OpenMP, and do not take advantage of the 4x hyperthreading.
>
> The slurm script I typically use is: (gcc_env et al are my own Lmod
> modules)
>
> =============================================================================
> #!/bin/bash
> #SBATCH --job-name=test-covid
> #SBATCH --account=Pra19_MaX_1
> #SBATCH --partition=m100_usr_prod
> #SBATCH --output=mpi_%j.out
> #SBATCH --error=mpi_%j.err
> #SBATCH --nodes=8
> #SBATCH --ntasks-per-node=32
> #SBATCH --ntasks-per-socket=16
> #SBATCH --cpus-per-task=4
> #SBATCH --gres=gpu:4
> #SBATCH --time=00:19:00
>
> #
> ml purge
> ml gcc_env
> ml siesta-max/1.0-14
> #
> date
> which siesta
> echo "-------------------"
> #
> export OMP_NUM_THREADS=1
> #
> mpirun --map-by socket:PE=1 --rank-by core --report-bindings \
> -np ${SLURM_NTASKS} ./gpu_bind.sh \
> siesta covid.fdf
>
> =============================================================================
>
> The crucial part is the gpu_bind.sh script, which contains code to make
> sure that each socket
> talks to the right GPUs (1st socket, GPU0/GPU1), 2nd socket, GPU2/GPU3),
> and within each socket, the first 8 tasks
> use GPU0/2 and the second group of 8 tasks use GPU1/3. For this, the tasks
> have to be ordered. (This is specific to Marconi). I found that using
> the
>
> --map-by socket:PE=1 --rank-by-core
>
> incantation I could achieve that ordering.
>
> The contents of gpu_bind.sh are:
>
> ====================================================
> #!/bin/bash
>
> np_node=$OMPI_COMM_WORLD_LOCAL_SIZE
> rank=$OMPI_COMM_WORLD_LOCAL_RANK
>
> block=$(( $np_node / 4 )) # We have 4 GPUs
> # If np_node is 32 (typical), then block=8
>
> limit0=$(( $block * 1 ))
> limit1=$(( $block * 2 ))
> limit2=$(( $block * 3 ))
> limit3=$(( $block * 4 ))
>
> #-----------------
>
> if [ $rank -lt $limit0 ]
> then
> export CUDA_VISIBLE_DEVICES=0
>
> elif [ $rank -lt $limit1 ]
> then
> export CUDA_VISIBLE_DEVICES=1
>
> elif [ $rank -lt $limit2 ]
> then
> export CUDA_VISIBLE_DEVICES=2
> else
> export CUDA_VISIBLE_DEVICES=3
> fi
>
> $@
> ====================================================
>
>
> I hope this helps.
>
> Best regards,
>
> Alberto
>
>
> ----- El 28 de Junio de 2022, a las 10:28, Mohammed Ghadiyali
> mohammed.ghadiy...@kaust.edu.sa escribió:
>
> | Hello,
> |
> | I’ve went Q&A available on max-center website and as per it Siesta can
> use
> | GPU’s. However I’m not able to find any documentation on installation.
> So can
> | some one inform me the procedure for installing Siesta on GPU’s. Our
> systems
> | have 8xV100 (32 GB each) with NVLink.
> |
> | Regards,
> | Ghadiyali Mohammed Kader
> | Post Doctoral Fellow
> | King Abdullah University of Science and Technology
> |
> |
> | This message and its contents, including attachments are intended solely
> for the
> | original recipient. If you are not the intended recipient or have
> received this
> | message in error, please notify me immediately and delete this message
> from
> | your computer system. Any unauthorized use or distribution is prohibited.
> | Please consider the environment before printing this email.
> |
> |
> | --
> | SIESTA is supported by the Spanish Research Agency (AEI) and by the
> European
> | H2020 MaX Centre of Excellence (
> https://urldefense.com/v3/__http://www.max-centre.eu/__;!!Nmw4Hv0!zoGYljExKqs1b-VkrSmFhJ6futBuvXnhXa2RrwwV6TwhqqPzKFcb7n5hg1lr7CF5rT0insiOyeJscp-ZjrM4f0S9nLP1Cg$
> )
>
>
> --
> SIESTA is supported by the Spanish Research Agency (AEI) and by the
> European H2020 MaX Centre of Excellence (
> https://urldefense.com/v3/__http://www.max-centre.eu/__;!!Nmw4Hv0!zoGYljExKqs1b-VkrSmFhJ6futBuvXnhXa2RrwwV6TwhqqPzKFcb7n5hg1lr7CF5rT0insiOyeJscp-ZjrM4f0S9nLP1Cg$
> )
>
>
> ------------------------------
> This message and its contents, including attachments are intended solely
> for the original recipient. If you are not the intended recipient or have
> received this message in error, please notify me immediately and delete
> this message from your computer system. Any unauthorized use or
> distribution is prohibited. Please consider the environment before printing
> this email.
> --
> SIESTA is supported by the Spanish Research Agency (AEI) and by the
> European H2020 MaX Centre of Excellence (http://www.max-centre.eu/)
>
-- 
SIESTA is supported by the Spanish Research Agency (AEI) and by the European 
H2020 MaX Centre of Excellence (http://www.max-centre.eu/)

Responder a