29#include "generated/q3/results/runtime_log/execution.hpp"
244 virtual std::vector<Real>
246 int local_number_of_physical_kpoints,
247 int number_of_spin_components,
248 int number_of_values_per_state)
const = 0;
259 generated::ResultsExecution record;
263 record.band_group_size = record.number_of_processes / record.number_of_kpoint_pools;
264 record.reciprocal_space_vectors_are_distributed =
band_size() > 1;
265 Real peak_resident_megabytes =
268 record.peak_resident_memory_bytes =
269 static_cast<int64_t
>(
static_cast<std::uint64_t
>(peak_resident_megabytes * 1048576.0));
virtual int number_of_processes() const =0
virtual void disable_band_distribution()
virtual void reduce_scalar_min(Real &value) const =0
virtual bool number_of_pools_was_requested() const
virtual void reduce_scalar_max(Real &value) const =0
virtual void reduce_scalar_max(int &value) const =0
virtual void reduce_band_group_scalar_min(int &value) const =0
virtual int global_kpoint_index(int local_kpoint_index) const =0
virtual void reduce_charge_density(std::vector< std::vector< Real > > &charge_density) const =0
virtual KPointsGrid local_kpoint_grid(const KPointsGrid &global_kpoint_grid) const =0
virtual void reduce_vector(std::vector< Real > &values) const =0
virtual bool one_process_owns_complete_state() const =0
generated::ResultsExecution execution_record() const
virtual void reduce_within_pool_vector(std::vector< Real > &values) const =0
virtual bool each_process_owns_whole_kpoints() const =0
virtual int number_of_pools() const =0
virtual std::vector< Real > assemble_global_kpoint_state_data(const std::vector< Real > &local_data, int local_number_of_physical_kpoints, int number_of_spin_components, int number_of_values_per_state) const =0
virtual void reduce_within_pool_scalar(Real &value) const =0
virtual void reduce_scalar(Real &value) const =0
virtual void reconfigure_topology(int)
~PlanewaveExecutionPolicy() override=default
static ProfilingCounters & instance()
std::uint64_t peak_resident_bytes_now()