#include <init.hpp>
Inheritance diagram for q3::execution::QuantumSystemExecutionPolicy:Public Member Functions | |
| ~QuantumSystemExecutionPolicy () override=default | |
| int | band_rank_index () const |
| int | band_size () const |
Public Member Functions inherited from q3::execution::ExecutionPolicy | |
| virtual | ~ExecutionPolicy ()=default |
| virtual void | add_scaled_vector (int number_of_elements, ComplexValue scaling_factor, const ComplexValue *vector_x, ComplexValue *vector_y) const =0 |
| virtual void | allgather_across_bands (ComplexValue *, const int *, const int *) const |
| virtual void | allgather_within_group (const Real *local_data, int local_count, Real *full_data, int total_count) const =0 |
| virtual int | band_distribution_rank_index () const |
| virtual int | band_distribution_size () const |
| virtual void | broadcast_across_bands (ComplexValue *, int) const |
| virtual void | broadcast_across_bands (int *, int) const |
| Integer overload, for the counts that decide collective sizes. | |
| virtual void | broadcast_across_bands (Real *, int) const |
| Real overload, for eigenvalues – the numbers convergence decisions are made from. | |
| virtual void | broadcast_from_group_root (ComplexValue *, int) const |
| virtual void | broadcast_from_group_root (Real *, int) const |
| virtual ComplexValue | dot_product (int number_of_elements, const ComplexValue *vector_x, const ComplexValue *vector_y) const =0 |
| virtual int | global_number_of_elements (int local_number_of_elements) const =0 |
| virtual int | group_rank_index () const =0 |
| virtual int | group_size () const =0 |
| virtual bool | is_root () const =0 |
| virtual Real | norm (int number_of_elements, const ComplexValue *vector_x) const =0 |
| virtual int | number_of_processes () const =0 |
| virtual void | reduce_across_bands (Real *, int) const |
| virtual void | reduce_group_distributed_result (ComplexValue *, int) const |
| virtual void | reduce_within_group (ComplexValue *data, int number_of_elements) const =0 |
| virtual void | reduce_within_group (Real *data, int number_of_elements) const =0 |
Additional Inherited Members | |
Public Types inherited from q3::execution::ExecutionPolicy | |
| using | ComplexValue = Complex |
|
overridedefault |
|
inline |
Index of this process within its band group (0 = band root).
Definition at line 46 of file init.hpp.
References q3::execution::ExecutionPolicy::group_rank_index().
|
inline |
Number of processes collaborating within this band group.
1 means each process diagonalizes its quantum states alone (no band parallelism); >1 means the diagonalization work of each quantum state is shared across the group.
Definition at line 39 of file init.hpp.
References q3::execution::ExecutionPolicy::group_size().
Referenced by q3::PlanewaveKohnShamSCFIterator::build_kpoint_plane_wave_data(), q3::create_kohn_sham_iterator(), q3::execution::PlanewaveExecutionPolicy::execution_record(), and q3::SelfConsistentFieldFlavor::run_calculation().