ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
|
#include "config/config.hpp"
#include "communication.hpp"
#include "cuda/init.hpp"
#include "errorhandling.hpp"
#include <walberla_bridge/walberla_init.hpp>
#include <utils/Vector.hpp>
#include <utils/mpi/cart_comm.hpp>
#include <boost/mpi.hpp>
#include <boost/mpi/communicator.hpp>
#include <boost/mpi/environment.hpp>
#include <mpi.h>
#include <cassert>
#include <memory>
#include <tuple>
#include <utility>
Go to the source code of this file.
Namespaces | |
namespace | Communication |
Functions | |
MpiCallbacks & | Communication::mpiCallbacks () |
Returns a reference to the global callback class instance. | |
std::shared_ptr< MpiCallbacks > | Communication::mpiCallbacksHandle () |
void | Communication::init (std::shared_ptr< boost::mpi::environment > mpi_env) |
Init globals for communication. | |
void | Communication::deinit () |
std::shared_ptr< boost::mpi::environment > | mpi_init (int argc, char **argv) |
Initialize MPI. | |
void | mpi_loop () |
Process requests from head node. | |
Variables | |
boost::mpi::communicator | comm_cart |
The communicator. | |
Communicator | communicator {} |
static std::shared_ptr< MpiCallbacks > | Communication::m_callbacks |
int | this_node = -1 |
The number of this node. | |
std::shared_ptr< boost::mpi::environment > mpi_init | ( | int | argc, |
char ** | argv | ||
) |
Initialize MPI.
Definition at line 120 of file communication.cpp.
Referenced by MpiContainerUnitTest::MpiContainerUnitTest().
void mpi_loop | ( | ) |
Process requests from head node.
Worker nodes main loop.
Definition at line 124 of file communication.cpp.
References Communication::MpiCallbacks::loop(), and this_node.
boost::mpi::communicator comm_cart |
The communicator.
Definition at line 47 of file communication.cpp.
Referenced by ComFixed::apply(), FFTBackendLegacy< FloatType >::backward_fft(), benchmark_integration_step(), DipolarP3MImpl< FloatType, Architecture >::calc_average_self_energy_k_space(), calc_mu_max(), calc_re(), calc_rg(), calc_rh(), calc_slab_dipole(), DipolarP3MImpl< FloatType, Architecture >::calc_surface_term(), Galilei::calc_system_cms_position(), Galilei::calc_system_cms_velocity(), calc_total_charge(), CoulombTuningAlgorithm< FloatType, Architecture >::calculate_accuracy(), center_of_mass(), Coulomb::check_charge_neutrality(), ScriptInterface::Analysis::check_topology(), correct_position_shake(), correct_velocity_shake(), CoulombP3MImpl< FloatType, Architecture >::count_charged_particles(), DipolarP3MImpl< FloatType, Architecture >::count_magnetic_particles(), count_magnetic_particles(), dipolar_energy_correction(), dipolar_force_corrections(), distribute(), CoulombTuningAlgorithm< FloatType, Architecture >::fft_decomposition_veto(), FFTBackendLegacy< FloatType >::forward_fft(), CollisionDetection::gather_collision_queue(), BondBreakage::gather_global_queue(), gather_particle_data(), gather_traits_for_types(), get_ibm_particle_position(), get_particle_data(), get_particle_ids_parallel(), get_random_p_id(), gyration_tensor(), CollisionDetection::BindAtPointOfCollision::handle_collisions(), CollisionDetection::GlueToSurface::handle_collisions(), GpuParticleData::has_compatible_device(), FFTBackendLegacy< FloatType >::init(), Communication::init(), FFTBuffersLegacy< FloatType >::init_halo(), init_type_map(), System::System::integrate(), System::System::integrate_with_signal_handler(), is_valid_position(), ICCStar::iteration(), GatherParticleTraits< T >::join(), CoulombP3MImpl< FloatType, Architecture >::long_range_kernel(), DipolarP3MImpl< FloatType, Architecture >::long_range_kernel(), make_coulomb_scafacos(), make_dipolar_scafacos(), make_new_particle(), mindist(), modify_p3m_sums(), moment_of_inertia_matrix(), mpi_get_particles(), mpi_get_particles_local(), Observable_stat::mpi_reduce(), mpi_send_particle_data_local(), mpi_synchronize_max_seen_pid_local(), mpi_who_has_head(), mpi_who_has_local(), nbhood(), System::System::on_integration_start(), FFTBuffersLegacy< FloatType >::perform_scalar_halo_gather(), FFTBuffersLegacy< FloatType >::perform_scalar_halo_spread(), FFTBuffersLegacy< FloatType >::perform_vector_halo_gather(), FFTBuffersLegacy< FloatType >::perform_vector_halo_spread(), prefetch_particle_data(), propagate_vel_pos_sd(), rebuild_needed(), remove_particle(), ScriptInterface::System::rotate_system(), CellStructure::set_atom_decomposition(), CellStructure::set_hybrid_decomposition(), set_particle_pos(), CellStructure::set_regular_decomposition(), steepest_descent_step(), structure_factor(), synchronize_npt_state(), Constraints::ShapeBasedConstraint::total_force(), Constraints::ShapeBasedConstraint::total_normal_force(), CellStructure::update_ghosts_and_resort_particle(), System::System::update_used_propagations(), velocity_verlet_npt_finalize_p_inst(), velocity_verlet_npt_propagate_pos(), and System::System::veto_boxl_change().
Communicator communicator {} |
Definition at line 48 of file communication.cpp.
Referenced by ScriptInterface::CellSystem::CellSystem::CellSystem(), cuda_gather_gpus(), cuda_on_program_start(), ScriptInterface::walberla::LatticeWalberla::do_construct(), FFTBackendLegacy< FloatType >::init(), Communication::init(), System::System::maximal_cutoff(), CoulombP3M::sanity_checks_cell_structure(), DipolarP3M::sanity_checks_cell_structure(), CoulombP3M::sanity_checks_node_grid(), DipolarP3M::sanity_checks_node_grid(), and System::System::update_local_geo().
int this_node = -1 |
The number of this node.
Definition at line 69 of file communication.cpp.
Referenced by DipolarDirectSumGpu::add_long_range_forces(), CoulombP3MImpl< FloatType, Architecture >::add_long_range_forces_gpu(), benchmark_integration_step(), build_particle_node_parallel(), CoulombTuningAlgorithm< FloatType, Architecture >::calculate_accuracy(), System::System::calculate_forces(), Coulomb::check_charge_neutrality(), GpuParticleData::copy_forces_to_host(), cuda_gather_gpus(), cuda_on_program_start(), dipolar_energy_correction(), DipolarLayerCorrection::energy_correction(), get_particle_data(), get_particle_node_parallel(), ghost_communicator(), GpuParticleData::has_compatible_device(), is_poststorable(), is_prefetchable(), is_recv_op(), is_send_op(), DipolarDirectSumGpu::long_range_energy(), CoulombP3MImpl< FloatType, Architecture >::long_range_kernel(), DipolarP3MImpl< FloatType, Architecture >::long_range_kernel(), make_new_particle(), mpi_get_particles(), mpi_loop(), mpi_who_has_head(), remove_particle(), set_particle_pos(), CoulombTuningAlgorithm< FloatType, Architecture >::setup_logger(), DipolarTuningAlgorithm< FloatType, Architecture >::setup_logger(), velocity_verlet_npt_finalize_p_inst(), velocity_verlet_npt_propagate_pos(), and walberla_agrid_sanity_checks().