#include <mpi_manager.h>
Classes | |
| class | OffGridSpike |
| Combined storage of node ID and offset information for off-grid spikes. More... | |
Public Member Functions | |
| MPIManager () | |
| ~MPIManager () override | |
| void | initialize (const bool) override |
| Prepare manager for operation. | |
| void | finalize (const bool) override |
| Take down manager after operation. | |
| void | set_status (const Dictionary &) override |
| Set the status of the manager. | |
| void | get_status (Dictionary &) override |
| Retrieve the status of the manager. | |
| void | init_mpi (int *argc, char **argv[]) |
| size_t | get_num_processes () const |
| Return the number of processes used during simulation. | |
| size_t | get_rank () const |
| Get rank of MPI process. | |
| size_t | get_process_id_of_vp (const size_t vp) const |
| Return the process id for a given virtual process. | |
| size_t | get_process_id_of_node_id (const size_t node_id) const |
| void | mpi_finalize (int exitcode) |
| Finalize MPI communication (needs to be separate from MPIManager::finalize when compiled with MUSIC since spikes can arrive and handlers called here) | |
| void | mpi_abort (int exitcode) |
| If MPI is available, this method calls MPI_Abort with the exitcode. | |
| void | communicate (std::vector< size_t > &send_buffer, std::vector< size_t > &recv_buffer) |
| void | communicate (std::vector< unsigned int > &send_buffer, std::vector< unsigned int > &recv_buffer, std::vector< int > &displacements) |
| communicate (on-grid) if compiled without MPI | |
| void | communicate (std::vector< OffGridSpike > &send_buffer, std::vector< OffGridSpike > &recv_buffer, std::vector< int > &displacements) |
| communicate (off-grid) if compiled without MPI | |
| void | communicate (std::vector< double > &send_buffer, std::vector< double > &recv_buffer, std::vector< int > &displacements) |
| void | communicate (std::vector< unsigned long > &send_buffer, std::vector< unsigned long > &recv_buffer, std::vector< int > &displacements) |
| void | communicate (std::vector< int > &send_buffer, std::vector< int > &recv_buffer, std::vector< int > &displacements) |
| void | communicate (double, std::vector< double > &) |
| void | communicate (std::vector< int > &) |
| void | communicate (std::vector< long > &) |
| void | communicate_Allreduce_sum_in_place (double buffer) |
| Sum across all ranks. | |
| void | communicate_Allreduce_sum_in_place (std::vector< double > &buffer) |
| void | communicate_Allreduce_sum_in_place (std::vector< int > &buffer) |
| void | communicate_Allreduce_sum (std::vector< double > &send_buffer, std::vector< double > &recv_buffer) |
| bool | equal_cross_ranks (const double value) |
| Equal across all ranks. | |
| std::string | get_processor_name () |
| bool | is_mpi_used () |
| size_t | get_buffer_size_target_data () const |
| Returns total size of MPI buffer for communication of connections. | |
| unsigned int | get_send_recv_count_target_data_per_rank () const |
| Returns size of MPI buffer for connections divided by number of processes. | |
| size_t | get_buffer_size_spike_data () const |
| Returns total size of MPI buffer for communication of spikes. | |
| unsigned int | get_send_recv_count_spike_data_per_rank () const |
| Returns size of MPI buffer for spikes divided by number of processes. | |
| size_t | get_send_buffer_size_secondary_events_in_int () const |
| Returns total size of MPI send buffer for communication of secondary events. | |
| size_t | get_recv_buffer_size_secondary_events_in_int () const |
| Returns total size of MPI recv buffer for communication of secondary events. | |
| template<class D > | |
| void | communicate_Alltoall (std::vector< D > &send_buffer, std::vector< D > &recv_buffer, const unsigned int send_recv_count) |
| template<class D > | |
| void | communicate_target_data_Alltoall (std::vector< D > &send_buffer, std::vector< D > &recv_buffer) |
| template<class D > | |
| void | communicate_spike_data_Alltoall (std::vector< D > &send_buffer, std::vector< D > &recv_buffer) |
| template<class D > | |
| void | communicate_off_grid_spike_data_Alltoall (std::vector< D > &send_buffer, std::vector< D > &recv_buffer) |
| template<class D > | |
| void | communicate_secondary_events_Alltoallv (std::vector< D > &send_buffer, std::vector< D > &recv_buffer) |
| void | synchronize () |
| Ensure all processes have reached the same stage by waiting until all processes have sent a dummy message to process 0. | |
| bool | any_true (const bool) |
| double | time_communicate (int num_bytes, int samples=1000) |
| Benchmark communication time of different MPI methods. | |
| double | time_communicatev (int num_bytes, int samples=1000) |
| double | time_communicate_offgrid (int num_bytes, int samples=1000) |
| double | time_communicate_alltoall (int num_bytes, int samples=1000) |
| double | time_communicate_alltoallv (int num_bytes, int samples=1000) |
| void | set_buffer_size_target_data (size_t buffer_size) |
| void | set_buffer_size_spike_data (size_t buffer_size) |
| bool | increase_buffer_size_target_data () |
| Increases the size of the MPI buffer for communication of connections if it needs to be increased. | |
| bool | adaptive_target_buffers () const |
| Returns whether MPI buffers for communication of connections are adaptive. | |
| void | set_recv_counts_secondary_events_in_int_per_rank (const std::vector< int > &recv_counts_in_int_per_rank) |
| Sets the recvcounts parameter of Alltoallv for communication of secondary events, i.e., the number of elements (in ints) to recv from the corresponding rank. | |
| size_t | get_recv_count_secondary_events_in_int (const size_t source_rank) const |
Returns the recvcounts parameter of Alltoallv for communication of secondary events, i.e., the number of elements (in ints) to recv from source_rank. | |
| size_t | get_recv_displacement_secondary_events_in_int (const size_t source_rank) const |
Returns the rdispls parameter of Alltoallv for communication of secondary events, i.e., the offset in the MPI buffer where elements from source_rank are written. | |
| size_t | get_send_count_secondary_events_in_int (const size_t target_rank) const |
Returns the number of elements (in ints) to be sent to target_rank. | |
| size_t | get_send_displacement_secondary_events_in_int (const size_t target_rank) const |
Returns the send displacement of elements (in ints) to be sent to rank target_rank. | |
| size_t | get_done_marker_position_in_secondary_events_send_buffer (const size_t target_rank) const |
Returns where the done marker is located in the MPI send buffer for target_rank. | |
| size_t | get_done_marker_position_in_secondary_events_recv_buffer (const size_t source_rank) const |
Returns where the done marker is located in the MPI recv buffer for source_rank. | |
| void | communicate_recv_counts_secondary_events () |
Public Member Functions inherited from nest::ManagerInterface | |
| ManagerInterface (ManagerInterface const &)=delete | |
| void | operator= (ManagerInterface const &)=delete |
| ManagerInterface () | |
| virtual | ~ManagerInterface () |
| virtual void | prepare () |
| virtual void | cleanup () |
Private Attributes | |
| int | num_processes_ |
| number of MPI processes | |
| int | rank_ |
| rank of the MPI process | |
| int | send_buffer_size_ |
| expected size of send buffer | |
| int | recv_buffer_size_ |
| size of receive buffer | |
| bool | use_mpi_ |
| whether MPI is used | |
| size_t | buffer_size_target_data_ |
| total size of MPI buffer for | |
| size_t | buffer_size_spike_data_ |
| total size of MPI buffer for | |
| size_t | max_buffer_size_target_data_ |
| maximal size of MPI buffer for | |
| bool | adaptive_target_buffers_ |
| whether MPI buffers for communication of | |
| double | growth_factor_buffer_spike_data_ |
| double | growth_factor_buffer_target_data_ |
| double | shrink_factor_buffer_spike_data_ |
| unsigned int | send_recv_count_spike_data_per_rank_ |
| unsigned int | send_recv_count_target_data_per_rank_ |
| std::vector< int > | recv_counts_secondary_events_in_int_per_rank_ |
| How many secondary elements (in ints) will be received from each rank. | |
| std::vector< int > | send_counts_secondary_events_in_int_per_rank_ |
| how many secondary elements (in ints) will be sent to each rank | |
| std::vector< int > | recv_displacements_secondary_events_in_int_per_rank_ |
| Offset in the MPI receive buffer (in ints) at which elements received from each rank will be written. | |
| std::vector< int > | send_displacements_secondary_events_in_int_per_rank_ |
| Offset in the MPI send buffer (in ints) from which elements send to each rank will be read. | |
| nest::MPIManager::MPIManager | ( | ) |
|
inlineoverride |
|
inline |
Returns whether MPI buffers for communication of connections are adaptive.
References adaptive_target_buffers_.
|
inline |
Referenced by nest::ConnectionManager::check_secondary_connections_exist(), nest::NodeManager::check_wfr_use(), and nest::ConnectionManager::sync_has_primary_connections().
| void nest::MPIManager::communicate | ( | double | send_val, |
| std::vector< double > & | recv_buffer | ||
| ) |
| void nest::MPIManager::communicate | ( | std::vector< double > & | send_buffer, |
| std::vector< double > & | recv_buffer, | ||
| std::vector< int > & | displacements | ||
| ) |
References num_processes_.
|
inline |
| void nest::MPIManager::communicate | ( | std::vector< int > & | send_buffer, |
| std::vector< int > & | recv_buffer, | ||
| std::vector< int > & | displacements | ||
| ) |
References num_processes_.
|
inline |
| void nest::MPIManager::communicate | ( | std::vector< OffGridSpike > & | send_buffer, |
| std::vector< OffGridSpike > & | recv_buffer, | ||
| std::vector< int > & | displacements | ||
| ) |
communicate (off-grid) if compiled without MPI
References num_processes_, recv_buffer_size_, and send_buffer_size_.
| void nest::MPIManager::communicate | ( | std::vector< size_t > & | send_buffer, |
| std::vector< size_t > & | recv_buffer | ||
| ) |
Referenced by nest::FreeLayer< D >::communicate_positions_(), nest::ConnectionManager::compute_target_data_buffer_size(), nest::ThirdInBuilder::connect_(), nest::SPManager::delete_synapses_from_post(), nest::SPManager::delete_synapses_from_pre(), nest::NodeManager::get_nodes(), nest::ConnectionManager::update_delay_extrema_(), and nest::SPManager::update_structural_plasticity().
| void nest::MPIManager::communicate | ( | std::vector< unsigned int > & | send_buffer, |
| std::vector< unsigned int > & | recv_buffer, | ||
| std::vector< int > & | displacements | ||
| ) |
communicate (on-grid) if compiled without MPI
References num_processes_, recv_buffer_size_, and send_buffer_size_.
| void nest::MPIManager::communicate | ( | std::vector< unsigned long > & | send_buffer, |
| std::vector< unsigned long > & | recv_buffer, | ||
| std::vector< int > & | displacements | ||
| ) |
References num_processes_.
| void nest::MPIManager::communicate_Allreduce_sum | ( | std::vector< double > & | send_buffer, |
| std::vector< double > & | recv_buffer | ||
| ) |
| void nest::MPIManager::communicate_Allreduce_sum_in_place | ( | double | buffer | ) |
Sum across all ranks.
| void nest::MPIManager::communicate_Allreduce_sum_in_place | ( | std::vector< double > & | buffer | ) |
| void nest::MPIManager::communicate_Allreduce_sum_in_place | ( | std::vector< int > & | buffer | ) |
| void nest::MPIManager::communicate_Alltoall | ( | std::vector< D > & | send_buffer, |
| std::vector< D > & | recv_buffer, | ||
| const unsigned int | send_recv_count | ||
| ) |
Referenced by communicate_off_grid_spike_data_Alltoall(), communicate_spike_data_Alltoall(), communicate_target_data_Alltoall(), and nest::ThirdInBuilder::connect_().
| void nest::MPIManager::communicate_off_grid_spike_data_Alltoall | ( | std::vector< D > & | send_buffer, |
| std::vector< D > & | recv_buffer | ||
| ) |
References communicate_Alltoall(), and send_recv_count_spike_data_per_rank_.
Referenced by nest::EventDeliveryManager::gather_spike_data_().
| void nest::MPIManager::communicate_recv_counts_secondary_events | ( | ) |
References recv_counts_secondary_events_in_int_per_rank_, send_counts_secondary_events_in_int_per_rank_, and send_displacements_secondary_events_in_int_per_rank_.
Referenced by nest::SimulationManager::update_connection_infrastructure().
| void nest::MPIManager::communicate_secondary_events_Alltoallv | ( | std::vector< D > & | send_buffer, |
| std::vector< D > & | recv_buffer | ||
| ) |
Referenced by nest::EventDeliveryManager::gather_secondary_events().
| void nest::MPIManager::communicate_spike_data_Alltoall | ( | std::vector< D > & | send_buffer, |
| std::vector< D > & | recv_buffer | ||
| ) |
References communicate_Alltoall(), and send_recv_count_spike_data_per_rank_.
Referenced by nest::EventDeliveryManager::gather_spike_data_().
| void nest::MPIManager::communicate_target_data_Alltoall | ( | std::vector< D > & | send_buffer, |
| std::vector< D > & | recv_buffer | ||
| ) |
References communicate_Alltoall(), and send_recv_count_target_data_per_rank_.
Referenced by nest::EventDeliveryManager::gather_target_data(), and nest::EventDeliveryManager::gather_target_data_compressed().
| bool nest::MPIManager::equal_cross_ranks | ( | const double | value | ) |
Equal across all ranks.
| value | value on calling rank |
|
overridevirtual |
Take down manager after operation.
After this method has completed, all dynamic data structures created by the manager shall be deallocated and containers emptied. Plain variables need not be reset.
| adjust_number_of_threads_or_rng_only | Pass true if calling from kernel_manager::change_number_of_threads() to limit operations to those necessary for thread adjustment. |
Implements nest::ManagerInterface.
|
inline |
Returns total size of MPI buffer for communication of spikes.
References buffer_size_spike_data_.
Referenced by set_buffer_size_spike_data().
|
inline |
Returns total size of MPI buffer for communication of connections.
References buffer_size_target_data_.
Referenced by set_buffer_size_target_data().
|
inline |
Returns where the done marker is located in the MPI recv buffer for source_rank.
References get_recv_count_secondary_events_in_int(), and get_recv_displacement_secondary_events_in_int().
Referenced by nest::ConnectionManager::deliver_secondary_events().
|
inline |
Returns where the done marker is located in the MPI send buffer for target_rank.
References get_send_count_secondary_events_in_int(), and get_send_displacement_secondary_events_in_int().
Referenced by nest::EventDeliveryManager::write_done_marker_secondary_events_().
|
inline |
Return the number of processes used during simulation.
This functions returns the number of processes. Since each process has the same number of threads, the total number of threads is given by get_num_threads()*get_num_processes().
References num_processes_.
Referenced by nest::nc_const_iterator::advance_local_iter_to_new_part_(), nest::SimulationManager::call_update_(), nest::ConnectionManager::compute_target_data_buffer_size(), nest::ThirdInBuilder::connect_(), nest::EventDeliveryManager::deliver_events_(), nest::ConnectionManager::deliver_secondary_events(), nest::EventDeliveryManager::distribute_target_data_buffers_(), nest::EventDeliveryManager::get_global_max_spikes_per_rank_(), nest::VPManager::get_num_virtual_processes(), nest::FreeLayer< D >::get_status(), nest::VPManager::get_vp(), nest::KernelManager::initialize(), nest::FreeLayer< D >::lid_to_position_id_(), nest::NodeCollectionPrimitive::rank_local_begin(), nest::NodeCollectionComposite::rank_local_begin(), nest::EventDeliveryManager::reset_complete_marker_spike_data_(), nest::SendBufferPosition::SendBufferPosition(), set_buffer_size_spike_data(), set_buffer_size_target_data(), nest::EventDeliveryManager::set_end_marker_(), nest::VPManager::set_status(), nest::VPManager::thread_to_vp(), nest::VPManager::vp_to_thread(), and nest::EventDeliveryManager::write_done_marker_secondary_events_().
|
inline |
Referenced by nest::SourceTable::compute_buffer_pos_for_unique_secondary_sources(), nest::ConnectionManager::compute_compressed_secondary_recv_buffer_positions(), nest::ConnectionManager::fill_target_buffer(), nest::SourceTable::get_next_target_data(), and nest::SourceTable::source_should_be_processed_().
|
inline |
Return the process id for a given virtual process.
The real process' id of a virtual process is defined by the relation: p = (vp mod P), where P is the total number of processes.
References num_processes_.
Referenced by nest::NodeCollectionComposite::gid_to_rank_(), nest::VPManager::is_local_vp(), nest::NodeCollectionPrimitive::rank_local_begin(), and nest::ThirdInBuilder::register_connection().
|
inline |
|
inline |
Get rank of MPI process.
References rank_.
Referenced by nest::nc_const_iterator::advance_local_iter_to_new_part_(), nest::ConnectionManager::compute_target_data_buffer_size(), nest::ThirdInBuilder::connect_(), nest::VPManager::get_vp(), nest::KernelManager::initialize(), nest::VPManager::is_local_vp(), nest::RecordingBackendSIONlib::open_files_(), nest::NodeCollectionPrimitive::rank_local_begin(), nest::NodeCollectionComposite::rank_local_begin(), nest::VPManager::thread_to_vp(), and nest::ConnectionManager::update_delay_extrema_().
|
inline |
Returns total size of MPI recv buffer for communication of secondary events.
References recv_counts_secondary_events_in_int_per_rank_, and recv_displacements_secondary_events_in_int_per_rank_.
Referenced by get_status().
|
inline |
Returns the recvcounts parameter of Alltoallv for communication of secondary events, i.e., the number of elements (in ints) to recv from source_rank.
References recv_counts_secondary_events_in_int_per_rank_.
Referenced by get_done_marker_position_in_secondary_events_recv_buffer().
|
inline |
Returns the rdispls parameter of Alltoallv for communication of secondary events, i.e., the offset in the MPI buffer where elements from source_rank are written.
References recv_displacements_secondary_events_in_int_per_rank_.
Referenced by nest::ConnectionManager::compute_compressed_secondary_recv_buffer_positions(), nest::ConnectionManager::fill_target_buffer(), get_done_marker_position_in_secondary_events_recv_buffer(), and nest::SourceTable::populate_target_data_fields_().
|
inline |
Returns total size of MPI send buffer for communication of secondary events.
References send_counts_secondary_events_in_int_per_rank_, and send_displacements_secondary_events_in_int_per_rank_.
Referenced by get_status().
|
inline |
Returns the number of elements (in ints) to be sent to target_rank.
References send_counts_secondary_events_in_int_per_rank_.
Referenced by get_done_marker_position_in_secondary_events_send_buffer().
|
inline |
Returns the send displacement of elements (in ints) to be sent to rank target_rank.
References send_displacements_secondary_events_in_int_per_rank_.
Referenced by nest::TargetTable::add_target(), and get_done_marker_position_in_secondary_events_send_buffer().
|
inline |
Returns size of MPI buffer for spikes divided by number of processes.
References send_recv_count_spike_data_per_rank_.
Referenced by nest::EventDeliveryManager::deliver_events_(), nest::EventDeliveryManager::gather_spike_data_(), nest::EventDeliveryManager::get_global_max_spikes_per_rank_(), nest::SendBufferPosition::SendBufferPosition(), and nest::EventDeliveryManager::set_end_marker_().
|
inline |
Returns size of MPI buffer for connections divided by number of processes.
References send_recv_count_target_data_per_rank_.
Referenced by nest::EventDeliveryManager::distribute_target_data_buffers_().
|
overridevirtual |
Retrieve the status of the manager.
Implements nest::ManagerInterface.
References nest::names::adaptive_target_buffers(), adaptive_target_buffers_, nest::names::buffer_size_spike_data(), buffer_size_spike_data_, nest::names::buffer_size_target_data(), buffer_size_target_data_, get_recv_buffer_size_secondary_events_in_int(), get_send_buffer_size_secondary_events_in_int(), nest::names::growth_factor_buffer_spike_data(), growth_factor_buffer_spike_data_, nest::names::growth_factor_buffer_target_data(), growth_factor_buffer_target_data_, nest::names::max_buffer_size_target_data(), max_buffer_size_target_data_, nest::names::mpi_rank(), nest::names::num_processes(), num_processes_, rank_, nest::names::recv_buffer_size_secondary_events(), and nest::names::send_buffer_size_secondary_events().
|
inline |
Increases the size of the MPI buffer for communication of connections if it needs to be increased.
Returns whether the size was changed.
References adaptive_target_buffers_, buffer_size_target_data_, growth_factor_buffer_target_data_, max_buffer_size_target_data_, and set_buffer_size_target_data().
Referenced by nest::EventDeliveryManager::gather_target_data(), and nest::EventDeliveryManager::gather_target_data_compressed().
| void nest::MPIManager::init_mpi | ( | int * | argc, |
| char ** | argv[] | ||
| ) |
References nest::kernel(), nest::KernelManager::mpi_manager, recv_counts_secondary_events_in_int_per_rank_, recv_displacements_secondary_events_in_int_per_rank_, send_counts_secondary_events_in_int_per_rank_, send_displacements_secondary_events_in_int_per_rank_, set_buffer_size_spike_data(), and set_buffer_size_target_data().
Referenced by nest::init_nest().
|
overridevirtual |
Prepare manager for operation.
After this method has completed, the manager should be completely initialized and "ready for action".
| adjust_number_of_threads_or_rng_only | Pass true if calling from kernel_manager::change_number_of_threads() or RandomManager::get_status() to limit operations to those necessary for thread adjustment or switch or re-seeding of RNG. |
Implements nest::ManagerInterface.
References nest::FATAL, and LOG.
|
inline |
References use_mpi_.
|
inline |
If MPI is available, this method calls MPI_Abort with the exitcode.
| void nest::MPIManager::mpi_finalize | ( | int | exitcode | ) |
Finalize MPI communication (needs to be separate from MPIManager::finalize when compiled with MUSIC since spikes can arrive and handlers called here)
Referenced by nest::shutdown_nest().
|
inline |
References buffer_size_spike_data_, get_buffer_size_spike_data(), get_num_processes(), and send_recv_count_spike_data_per_rank_.
Referenced by nest::EventDeliveryManager::gather_spike_data_(), init_mpi(), and set_status().
|
inline |
References buffer_size_target_data_, get_buffer_size_target_data(), get_num_processes(), max_buffer_size_target_data_, and send_recv_count_target_data_per_rank_.
Referenced by nest::ConnectionManager::compute_target_data_buffer_size(), increase_buffer_size_target_data(), init_mpi(), and set_status().
|
inline |
Sets the recvcounts parameter of Alltoallv for communication of secondary events, i.e., the number of elements (in ints) to recv from the corresponding rank.
References recv_counts_secondary_events_in_int_per_rank_, and recv_displacements_secondary_events_in_int_per_rank_.
Referenced by nest::SourceTable::compute_buffer_pos_for_unique_secondary_sources().
|
overridevirtual |
Set the status of the manager.
Implements nest::ManagerInterface.
References nest::names::adaptive_target_buffers(), adaptive_target_buffers_, nest::names::buffer_size_spike_data(), buffer_size_spike_data_, nest::names::buffer_size_target_data(), buffer_size_target_data_, nest::names::growth_factor_buffer_spike_data(), growth_factor_buffer_spike_data_, nest::names::growth_factor_buffer_target_data(), growth_factor_buffer_target_data_, nest::names::max_buffer_size_target_data(), max_buffer_size_target_data_, set_buffer_size_spike_data(), set_buffer_size_target_data(), nest::names::shrink_factor_buffer_spike_data(), shrink_factor_buffer_spike_data_, and Dictionary::update_value().
|
inline |
Ensure all processes have reached the same stage by waiting until all processes have sent a dummy message to process 0.
Referenced by nest::SimulationManager::call_update_(), nest::EventDeliveryManager::gather_spike_data_(), and nest::synchronize().
|
inline |
Benchmark communication time of different MPI methods.
The methods time_communicate* can be used to benchmark the timing of different MPI communication methods.
|
inline |
|
inline |
|
inline |
|
inline |
|
private |
whether MPI buffers for communication of
Referenced by adaptive_target_buffers(), get_status(), increase_buffer_size_target_data(), and set_status().
|
private |
total size of MPI buffer for
Referenced by get_buffer_size_spike_data(), get_status(), set_buffer_size_spike_data(), and set_status().
|
private |
total size of MPI buffer for
Referenced by get_buffer_size_target_data(), get_status(), increase_buffer_size_target_data(), set_buffer_size_target_data(), and set_status().
|
private |
Referenced by get_status(), and set_status().
|
private |
Referenced by get_status(), increase_buffer_size_target_data(), and set_status().
|
private |
maximal size of MPI buffer for
Referenced by get_status(), increase_buffer_size_target_data(), set_buffer_size_target_data(), and set_status().
|
private |
number of MPI processes
Referenced by communicate(), communicate(), communicate(), communicate(), communicate(), get_num_processes(), get_process_id_of_vp(), and get_status().
|
private |
rank of the MPI process
Referenced by get_rank(), and get_status().
|
private |
size of receive buffer
Referenced by communicate(), and communicate().
|
private |
How many secondary elements (in ints) will be received from each rank.
Referenced by communicate_recv_counts_secondary_events(), get_recv_buffer_size_secondary_events_in_int(), get_recv_count_secondary_events_in_int(), init_mpi(), and set_recv_counts_secondary_events_in_int_per_rank().
|
private |
Offset in the MPI receive buffer (in ints) at which elements received from each rank will be written.
Referenced by get_recv_buffer_size_secondary_events_in_int(), get_recv_displacement_secondary_events_in_int(), init_mpi(), and set_recv_counts_secondary_events_in_int_per_rank().
|
private |
expected size of send buffer
Referenced by communicate(), and communicate().
|
private |
how many secondary elements (in ints) will be sent to each rank
Referenced by communicate_recv_counts_secondary_events(), get_send_buffer_size_secondary_events_in_int(), get_send_count_secondary_events_in_int(), and init_mpi().
|
private |
Offset in the MPI send buffer (in ints) from which elements send to each rank will be read.
Referenced by communicate_recv_counts_secondary_events(), get_send_buffer_size_secondary_events_in_int(), get_send_displacement_secondary_events_in_int(), and init_mpi().
|
private |
|
private |
|
private |
Referenced by set_status().
|
private |
whether MPI is used
Referenced by is_mpi_used().