Caution
This article references CentOS, a Linux distribution that is nearing End Of Life (EOL) status. Please consider your use and plan accordingly. For more information, see the CentOS End Of Life guidance.
This article describes the steps for running the Quantum ESPRESSO application on a virtual machine (VM) deployed on Azure. It also presents the performance results of running Quantum ESPRESSO on single-node and multi-node VM configurations.
Quantum ESPRESSO is based on density-functional theory, plane waves, and pseudopotentials. Quantum ESPRESSO is an integrated suite of open-source computer codes for electronic-structure calculations and materials modeling at the nanoscale. The Quantum ESPRESSO distribution consists of a historical core set of components, and a set of plug-ins that perform more advanced tasks, plus many third-party packages designed to be inter-operable with the core components.
Quantum ESPRESSO runs on many different architectures and conditions:
- Ground state calculations utilizing local density approximation (LDA), Generalized Gradient Approximation (GGA), GGA+U, van der Waals (vdW-DF) and Hybrid Exchange-Correlation Functionals
- Support of Ultrasoft (US), Norm-Conserving (NC) pseudopotentials and Projector Augmented Wave (PAW) method
- Structural optimization and polymorphism studies
- Transition states and minimum energy paths using Nudged Elastic Bands (NEB) method
- Linear response properties within Density Functional Perturbation theory (DFPT)
- Spectroscopic properties
- Effective Screening Medium (ESM) for charged surfaces and interfaces
Quantum ESPRESSO is used mainly by researchers active in the field of electronic-structure calculations.
Why deploy Quantum ESPRESSO on Azure?
- Modern and diverse compute options to meet your workload's needs.
- The flexibility of virtualization without the need to buy and maintain physical hardware.
- Rapid provisioning.
- Complex problems solved within a few hours.
Architecture
This section shows the differences between the architecture for a multi-node configuration and the architecture for a single-node configuration.
Multi-node configuration:
Download a Visio file of this architecture.
Single-node configuration:
Download a Visio file of this architecture.
Components
- Azure Virtual Machines is used to create Linux and Windows VMs. For information about deploying the VM and installing the drivers, see Linux VMs on Azure.
- Azure Virtual Network is used to create a private network infrastructure in the cloud.
- Network security groups are used to restrict access to the VMs.
- A public IP address connects the internet to the VMs.
- Azure CycleCloud is used to create the cluster in the multi-node configuration.
- A physical SSD is used for storage.
Compute sizing and drivers
Performance tests of Quantum ESPRESSO on Azure used HBv3 AMD EPYC™ 7V73X VMs running Linux CentOS Operating system. The following table provides details about HBv3-series VMs.
VM size | vCPU | Memory (GiB) | Memory bandwidth (GBps) | Base CPU frequency (GHz) | All-cores frequency (GHz, peak) | Single-core frequency (GHz, peak) | RDMA performance (GBps) | Maximum data disks |
---|---|---|---|---|---|---|---|---|
Standard_HB120rs_v3 | 120 | 448 | 350 | 1.9 | 3.0 | 3.5 | 200 | 32 |
Standard_HB120-96rs_v3 | 96 | 448 | 350 | 1.9 | 3.0 | 3.5 | 200 | 32 |
Standard_HB120-64rs_v3 | 64 | 448 | 350 | 1.9 | 3.0 | 3.5 | 200 | 32 |
Standard_HB120-32rs_v3 | 32 | 448 | 350 | 1.9 | 3.0 | 3.5 | 200 | 32 |
Standard_HB120-16rs_v3 | 16 | 448 | 350 | 1.9 | 3.0 | 3.5 | 200 | 32 |
Required drivers
To use InfiniBand, you must enable InfiniBand drivers.
Install Quantum ESPRESSO on a VM or HPC Cluster
Download the software from the Quantum ESPRESSO official website.
Before you install Quantum ESPRESSO, deploy and connect to a VM or HPC Cluster. For information about deploying the VM and installing the drivers, see one of these articles:
For information about deploying the Azure CycleCloud and HPC cluster, see one of these articles:
Install Quantum ESPRESSO
To install Quantum ESPRESSO on Azure Virtual Machines and run the simulations, see the following links:
Quantum ESPRESSO performance results
Quantum ESPRESSO was tested in single-node and multi-node configurations. Model ta2o5 was used to test the scalability performance of Quantum ESPRESSO version 7.1 on Azure. The details of the model used for validation are as follows:
Model Details | Number of atoms per cell | Number of atomic types | Number of electrons | Mixing beta |
---|---|---|---|---|
ta2o5 | 25 | 2 | 125 | 0.5000 |
Quantum ESPRESSO performance results on single-node VMs
This section provides the performance results of running Quantum ESPRESSO on single-node Azure HBv3 AMD EPYC™ 7V73X VMs.
Model 1: ta2o5
This table shows total wall clock time recorded for a varying number of CPUs on the standard HBv3-series VM:
Number of cores | Wall clock time (seconds) | Relative speed up |
---|---|---|
16 | 7213 | 1.00 |
32 | 3620 | 1.99 |
64 | 2344 | 3.08 |
96 | 1998 | 3.61 |
120 | 1527 | 4.72 |
This graph shows the relative speedup improvement as the number of CPUs increases:
Notes about the single-node tests
For all single-node tests, a solver time of HB120-16rs_v3 (16 cores) is considered as the reference to compute the relative speed of other VMs with more cores. The speedup improves as we increase the number of cores from 16 to 120 cores. We can observe that a speedup of about 4.7x is achieved with 120 cores with the ta2o5 model.
Quantum ESPRESSO performance results on a multi-node cluster
The single-node tests confirm that the solver gives optimal parallel performance with 64 cores on HBv3 VMs. Based on those results, 64-core configurations on Standard_HB120-64rs_v3 VMs were used to evaluate the performance of Quantum ESPRESSO on multi-node clusters. The ta2o5 model is used for multi-node runs.
This section provides the performance results of running Quantum ESPRESSO on multi-node VMs.
Model 1: ta2o5 for multi-node
This table shows total wall clock time recorded for varying numbers of nodes with standard HBv3-series VMs:
Number of nodes | Number of cores | Wall clock time (seconds) | Relative speed up |
---|---|---|---|
1 | 64 | 2270 | 1.00 |
2 | 128 | 1487 | 1.53 |
4 | 256 | 703 | 3.23 |
8 | 512 | 358 | 6.34 |
This graph shows the relative speed increase as the number of nodes increases:
Azure cost
Only model running time (wall clock time) is considered for these cost calculations. Application installation time isn't considered. The numbers presented here are indicative of your potential results. The actual numbers depend on the size of the model.
You can use the Azure pricing calculator to estimate the costs for your configuration.
The following table provides the elapsed times in hours. To compute the total cost, multiply these times by the hourly costs for Linux VMs.
Cost for model 1: ta2o5:
Number of nodes | Wall clock time (hours) |
---|---|
1 | 0.63 |
2 | 0.41 |
4 | 0.20 |
8 | 0.10 |
Summary
- Quantum ESPRESSO was successfully tested on Azure using HBv3 standalone Virtual Machines and an Azure Cycle Cloud multi-node (cluster) setup.
- For a standalone VM, we can observe that the application is scaling up with an increase of vCPUs and achieved a speedup of 4.7x with 120 vCPUs.
- For multi-node runs, the application scales linearly with the increase of nodes. A scale up of about 6.5x is achieved for Quantum Espresso with eight nodes.
- For small problems, we recommend you use fewer CPUs to improve performance.
Contributors
This article is maintained by Microsoft. It was originally written by the following contributors.
Principal authors:
- Hari Bagudu | Senior Manager
- Gauhar Junnarkar | Principal Program Manager
- Vinod Pamulapati | HPC Performance Engineer
- Shivakumar Tallolli | HPC Performance Engineer
Other contributors:
- Mick Alberts | Technical Writer
- Guy Bursell | Director Business Strategy
- Sachin Rastogi | Manager
To see non-public LinkedIn profiles, sign in to LinkedIn.
Next steps
- GPU-optimized virtual machine sizes
- Windows virtual machines on Azure
- Virtual networks and virtual machines on Azure
- Learning path: Run high-performance computing (HPC) applications on Azure