AMD Zen Software Studio with Spack
- AMD Optimizing C/C++ Compiler (AOCC)
- AMD Optimizing CPU Libraries (AOCL)
- AMD uProf
- Setting Preference for AMD Zen Software Studio
Open MPI with AMD Zen Software Studio
Micro Benchmarks/Synthetic Benchmarks
Spack HPC Applications
Introduction
Quantum ESPRESSO (QE) is an integrated suite of Open-Source computer codes for electronic-structure calculations and materials modeling at the nanoscale. It is based on density-functional theory, plane waves, and pseudopotentials.
Official website for Quantum ESPRESSO: https://www.quantum-espresso.org/
Build Quantum ESPRESSO using Spack
Please refer to this link for getting started with spack using AMD Zen Software Studio.
# Example for building Quantum-Espresso with AOCC and AOCL.
$ spack install quantum-espresso+elpa+scalapack hdf5=parallel %aocc ^amdfftw ^amdscalapack ^amdblis threads=openmp ^amdlibflame ^elpa ^openmpi fabrics=cma,ucx
Note: Quantum-ESPRESSO is built with MPI and OpenMP support by default. Explanation of the command options:
Symbol | Meaning |
---|---|
%aocc | Build Quantum ESPRESSO with AOCC compiler. |
+elpa +scalapack | Build Quantum ESPRESSO with ELPA and scalapack support. |
^amdfftw | Use amdfftw as the FFTW implementation. |
^amdscalapack | Use amdscalapack as the SCALAPACK implementation. |
^amdblis threads=openmp | Use AMDBlis as the BLAS implementation and enable OpenMP support. |
^elpa | Build Quantum ESPRESSO with ELPA Library. |
^amdliflame | Use amdlibflame as the LAPACK implementation. |
^openmpi fabrics=cma,ucx | Use OpenMPI as the MPI provider and use the CMA network for efficient intra-node communication, falling back to the UCX network fabric, if required. Note: It is advised to specifically set the appropriate fabric for the host system if possible. Refer to Open MPI with AMD Zen Software Studio for more guidance. |
Note: Quantum-ESPRESSO is built with MPI and OpenMP support by default.
Running Quantum ESPRESSO
#!/bin/bash
# Load quantum espresso build with AOCC
spack load quantum-espresso %aocc
## Obtaining Benchmarks: AuSurf-Large112 Gold surface (112 atoms) and 8 k-points. DEISA pw benchmark.
wget https://hpc-forge.cineca.it/files/gara_tier_1/public/AuSurf-large.tar.gz
tar -xvf AuSurf-large.tar.gz
# MPI and OMP options
# MPI_RANKS = Number of cores available in the system.
MPI_RANKS=$(nproc)
export OMP_NUM_THREADS=1
MPI_OPTS="-np $MPI_RANKS --bind-to core --map-by core"
# Run command for quantum espresso with Ta205 input dataset
mpirun $MPI_OPTS pw.x -npool 8 -in ausurf-large.in
Note: The above build and run steps are tested with Quantum ESPRESSO 7.3.1, AOCC-5.0.0, AOCL-5.0.0, and OpenMPI-5.0.5 on Red Hat Enterprise Linux release 8.9 (Ootpa) using Spack v0.23.0.dev0 (commit id : 2da812cbad ).
For technical support on the tools, benchmarks and applications that AMD offers on this page and related inquiries, reach out to us at toolchainsupport@amd.com.