#include "layer_0_core/profiling/counters.hpp"#include <memory>#include <stdexcept>#include <string>#include "io/addon_registration.hpp"#include "io/cli.hpp"#include "io/input/parser/factory.hpp"#include "io/logger_mpi.hpp"#include "io/output/companion_outputs.hpp"#include "layer_0_core/execution/gpu/device/factory.hpp"#include "layer_0_core/execution/gpu/device/init.hpp"#include "layer_0_core/math/linear_algebra/gpu/blas/init.hpp"#include "layer_0_core/math/linear_algebra/gpu/lapack/init.hpp"#include "layer_3_representation/basis/planewave/internal/fft/gpu/init.hpp"#include "layer_4_computation/diagonalizer/planewave/davidson.hpp"#include "layer_4_computation/flavors/factory.hpp"#include "layer_4_computation/iterator/kohn_sham/planewave/execution/mpi.hpp"#include "utils/time.hpp"Go to the source code of this file.
Namespaces | |
| namespace | q3 |
| namespace | q3::execution |
| namespace | q3::execution::gpu |
| namespace | q3::execution::gpu::blas |
| namespace | q3::execution::gpu::lapack |
| namespace | q3::gpu |
Functions | |
| std::unique_ptr< GPUBLAS > | q3::execution::gpu::blas::create_cuda_gpu_blas (std::shared_ptr< device::GPUDeviceBackend > device_backend) |
| std::unique_ptr< GPUEigensolver > | q3::execution::gpu::lapack::create_cuda_gpu_eigensolver (std::shared_ptr< device::GPUDeviceBackend > device_backend) |
| std::unique_ptr< GPUFFTGrid > | q3::gpu::create_cuda_gpu_fft_grid (std::shared_ptr< execution::gpu::device::GPUDeviceBackend > device_backend) |
| int | main (int argc, char *argv[]) |
| int main | ( | int | argc, |
| char * | argv[] | ||
| ) |
The Davidson takes the execution policy by base reference, so the MPI policy goes in where the serial one does for q3_gpu_cuda. The policy stays owned here, outliving every iterator built on it, and finalizes MPI from its destructor at the end of main.
Definition at line 68 of file main_mpi_gpu_cuda.cpp.
References q3::execution::gpu::blas::create_cuda_gpu_blas(), q3::execution::gpu::lapack::create_cuda_gpu_eigensolver(), q3::gpu::create_cuda_gpu_fft_grid(), q3::create_flavor(), q3::execution::gpu::device::create_gpu_device_backend(), q3::create_kohn_sham_iterator(), q3::ProfilingCounters::davidson_timing, q3::log::error(), q3::log::info(), q3::log::init_mpi(), q3::ProfilingCounters::instance(), q3::cli::parse_options(), q3::cli::print_footer(), q3::cli::print_header(), q3::ProfilingCounters::DavidsonTimingAccumulator::print_summary(), q3::cli::print_timestamped_banner(), q3::cli::print_version(), q3::cli::read_input(), q3::addons::register_all(), q3::log::set_level(), q3::write_companion_outputs(), and q3::write_results_json().