Difference between revisions of "JUSTUS2/Software/Quantum ESPRESSO"

From bwHPC Wiki
Jump to: navigation, search
 
(21 intermediate revisions by 3 users not shown)
Line 6: Line 6:
 
|-
 
|-
 
| module load
 
| module load
| chem/quantum_espresso
+
| chem/quantum_espresso/7.1
|-
 
| Availability
 
| [[BwForCluster_Chemistry]] | [[BwForCluster_JUSTUS_2]]
 
 
|-
 
|-
 
| License
 
| License
Line 15: Line 12:
 
|-
 
|-
 
| Citing
 
| Citing
  +
| As described [https://www.quantum-espresso.org/quote/ here]
| <small>1) P Giannozzi et al 2009 J. Phys.: Condens. Matter 21 395502<br>DOI: 10.1088/0953-8984/21/39/395502.<br>2) P Giannozzi et al 2017 J. Phys.: Condens. Matter 29 465901<br>DOI: 10.1088/1361-648X/aa8f79.<br>3) P Giannozzi et al 2020 J. Chem. Phys. 152 154105<br>DOI: 10.1063/5.0005082.</small>
 
 
|-
 
|-
 
| Links
 
| Links
| [https://www.quantum-espresso.org Homepage] &#124; [https://www.quantum-espresso.org/resources/users-manual Documentation]
+
| [https://www.quantum-espresso.org Homepage] &#124; [https://www.quantum-espresso.org/resources/users-manual Documentation] &#124; Main Portal to [https://www.quantum-espresso.org/users-forum/ Forum]
 
|-
 
|-
 
| Graphical Interface
 
| Graphical Interface
 
| No
 
| No
 
|-
 
|-
| Plugins
 
| [https://epw-code.org/ EPW]
 
 
|}
 
|}
   
Line 30: Line 25:
   
 
'''Quantum ESPRESSO''' 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.
 
'''Quantum ESPRESSO''' 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.
 
= Availability =
 
 
Quantum ESPRESSO is available on selected bwHPC-Clusters. A complete list of versions currently installed on the bwHPC-Clusters can be obtained from the [https://www.bwhpc.de/software.html Cluster Information System (CIS)].
 
 
In order to check which versions of Quantum ESPRESSO are installed on the compute cluster, run the following command:
 
<pre>
 
$ module avail chem/quantum_espresso
 
</pre>
 
   
 
= License =
 
= License =
Line 44: Line 30:
 
Quantum ESPRESSO is free, open-source software released under the GNU General Public License (GPL). Anyone interested in using the Quantum ESPRESSO program suite must read the conditions described in its [https://www.quantum-espresso.org/project/manifesto manifesto].
 
Quantum ESPRESSO is free, open-source software released under the GNU General Public License (GPL). Anyone interested in using the Quantum ESPRESSO program suite must read the conditions described in its [https://www.quantum-espresso.org/project/manifesto manifesto].
   
  +
= Parallelization =
= Usage =
 
  +
QUANTUM ESPRESSO utilizes hybrid MPI/OpenMP parallelization. When configuring parallel jobs in the Slurm sbatch script, use appropriate directives such as --nodes, --ntasks-per-node, and --cpus-per-task. It is recommended to conduct benchmarks before submitting a large number of productive jobs.
== Loading the module ==
 
 
You can load the default version of Quantum ESPRESSO with the following command:
 
<pre>
 
$ module load chem/quantum_espresso
 
</pre>
 
 
The module will try to load all modules it needs to function (e.g., compiler, mpi, ...). If loading the module fails, check if you have already loaded one of those modules, but not in the version required by Quantum ESPRESSO.
 
 
If you wish to load another (older) version of Quantum ESPRESSO, you can do so using
 
<pre>
 
$ module load chem/quantum_espresso/<version>
 
</pre>
 
with <version> specifying the desired version.
 
 
Please cite Quantum ESPRESSO in your publications according to the [https://www.quantum-espresso.org/download references].
 
 
== Program Binaries ==
 
 
All binaries of the Quantum ESPRESSO software package are located in the directory <span style="background:#edeae2;margin:2px;padding:1px;border:1px dotted #808080">$ESPRESSO_BIN_DIR</span>.
 
 
== Hints for using Quantum ESPRESSO ==
 
 
=== Input Files ===
 
 
For information about how to construct input files for Quantum ESPRESSO, please consult the [https://www.quantum-espresso.org/resources/users-manual/input-data-description documentation].
 
 
=== Disk Usage ===
 
 
Please change to a local directory or to '''your local workspace''' (preferred) before starting your calculations.
 
 
= Examples =
 
 
As with all processes that require more than a few minutes to run, non-trivial compute jobs must be submitted to the cluster queuing system.
 
 
Example scripts are available in the directory <span style="background:#edeae2;margin:2px;padding:1px;border:1px dotted #808080">$ESPRESSO_EXA_DIR</span>:
 
<pre>
 
$ module show chem/quantum_espresso # show environment variables, which will be available after 'module load'
 
$ module load chem/quantum_espresso # load module
 
$ ls $ESPRESSO_EXA_DIR # show content of directory $ESPRESSO_EXA_DIR
 
</pre>
 
   
  +
QUANTUM ESPRESSO implements several levels of MPI parallelization, distributing both calculations and data structures across processors. These processors are organized hierarchically into different groups identified by various MPI communicators (you might also refer to the [https://www.quantum-espresso.org/Doc/user_guide/node20.html Quantum Espresso User Guide]:
Run several example jobs on '''JUSTUS 2''':
 
<pre>
 
$ module load chem/quantum_espresso # load module
 
$ WORKSPACE=`ws_allocate quantum_espresso 3` # allocate workspace
 
$ cd $WORKSPACE # change to workspace
 
$ cp -a $ESPRESSO_HOME/bwhpc-examples . # copy example files to workspace
 
$ cd bwhpc-examples # change to test directory
 
$ sbatch bwforcluster-quantum_espresso-example.sbatch # submit job
 
$ squeue # obtain JOBID
 
$ scontrol show job <JOBID> # check state of job
 
$ ls # when job finishes the results will be visible in this directory
 
</pre>
 
   
  +
* world: The group of all processors (MPI_COMM_WORLD).
= Useful links =
 
  +
* images: Processors divided into different "images," each corresponding to a distinct self-consistent or linear-response calculation, loosely coupled to others.
  +
* pools: Each image can be subdivided into "pools," each responsible for a group of k-points.
  +
* bands: Each pool is further subdivided into "band groups," each handling a group of Kohn-Sham orbitals, especially useful for calculations with hybrid functionals.
  +
* PW: Orbitals in the PW basis set, charges, and density are distributed across processors. Linear-algebra operations on PW grids are automatically parallelized. 3D FFTs transform electronic wave functions between reciprocal and real space, with planes of the 3D grid distributed in real space to processors.
  +
* tasks: FFTs on Kohn-Sham states are redistributed to "task" groups to allow efficient parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes.
  +
* linear-algebra group: A further level of parallelization involves subspace diagonalization/iterative orthonormalization, organized into a square 2D grid of processors. This group performs parallel diagonalization using standard linear algebra operations. Preferred options include ELPA and ScaLAPACK, with alternative built-in algorithms available.
   
  +
It's important to note that not all parallelization levels are implemented in all parts of the code.
* [https://www.quantum-espresso.org/Doc/user_guide/ Documentation (english)]
 
* [https://www.quantum-espresso.org/forum Forum (english)]
 
* [https://www.quantum-espresso.org/resources/tutorials Tutorials (english)]
 
* [https://en.wikipedia.org/wiki/Quantum_ESPRESSO Wikipedia article (english)]
 
* [https://www.quantum-espresso.org/resources/tools Plugins for Quantum ESPRESSO (english)]
 
----
 
[[Category:Chemistry software]][[Category:BwForCluster_Chemistry]][[Category:BwForCluster_JUSTUS_2]]
 

Latest revision as of 17:19, 29 February 2024

The main documentation is available via module help chem/quantum_espresso on the cluster. Most software modules for applications provide working example batch scripts.


Description Content
module load chem/quantum_espresso/7.1
License Open-source software, distributed under the GNU General Public License (GPL). More...
Citing As described here
Links Homepage | Documentation | Main Portal to Forum
Graphical Interface No

1 Description

Quantum ESPRESSO 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.

2 License

Quantum ESPRESSO is free, open-source software released under the GNU General Public License (GPL). Anyone interested in using the Quantum ESPRESSO program suite must read the conditions described in its manifesto.

3 Parallelization

QUANTUM ESPRESSO utilizes hybrid MPI/OpenMP parallelization. When configuring parallel jobs in the Slurm sbatch script, use appropriate directives such as --nodes, --ntasks-per-node, and --cpus-per-task. It is recommended to conduct benchmarks before submitting a large number of productive jobs.

QUANTUM ESPRESSO implements several levels of MPI parallelization, distributing both calculations and data structures across processors. These processors are organized hierarchically into different groups identified by various MPI communicators (you might also refer to the Quantum Espresso User Guide:

  • world: The group of all processors (MPI_COMM_WORLD).
  • images: Processors divided into different "images," each corresponding to a distinct self-consistent or linear-response calculation, loosely coupled to others.
  • pools: Each image can be subdivided into "pools," each responsible for a group of k-points.
  • bands: Each pool is further subdivided into "band groups," each handling a group of Kohn-Sham orbitals, especially useful for calculations with hybrid functionals.
  • PW: Orbitals in the PW basis set, charges, and density are distributed across processors. Linear-algebra operations on PW grids are automatically parallelized. 3D FFTs transform electronic wave functions between reciprocal and real space, with planes of the 3D grid distributed in real space to processors.
  • tasks: FFTs on Kohn-Sham states are redistributed to "task" groups to allow efficient parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes.
  • linear-algebra group: A further level of parallelization involves subspace diagonalization/iterative orthonormalization, organized into a square 2D grid of processors. This group performs parallel diagonalization using standard linear algebra operations. Preferred options include ELPA and ScaLAPACK, with alternative built-in algorithms available.

It's important to note that not all parallelization levels are implemented in all parts of the code.