This data structure stores all targets of the local neurons. More...
#include <target_table.h>
Public Member Functions | |
| void | initialize () |
| Initializes data structures. | |
| void | finalize () |
| Deletes data structure. | |
| void | prepare (const size_t tid) |
| Adjusts targets_ to number of local nodes. | |
| void | add_target (const size_t tid, const size_t target_rank, const TargetData &target_data) |
| Adds entry to targets_. | |
| const std::vector< Target > & | get_targets (const size_t tid, const size_t lid) const |
| Returns all targets of a neuron. | |
| const std::vector< size_t > & | get_secondary_send_buffer_positions (const size_t tid, const size_t lid, const synindex syn_id) const |
| Returns all MPI send buffer positions of a neuron. | |
| void | clear (const size_t tid) |
| Clears all entries of targets_. | |
| void | compress_secondary_send_buffer_pos (const size_t tid) |
| Removes identical MPI send buffer positions to avoid writing data multiple times. | |
Private Attributes | |
| std::vector< std::vector< std::vector< Target > > > | targets_ |
| Stores targets of local neurons. | |
| std::vector< std::vector< std::vector< std::vector< size_t > > > > | secondary_send_buffer_pos_ |
| Stores MPI send buffer positions for secondary targets of local neurons. | |
This data structure stores all targets of the local neurons.
This is the presynaptic part of the connection infrastructure.
| void nest::TargetTable::add_target | ( | const size_t | tid, |
| const size_t | target_rank, | ||
| const TargetData & | target_data | ||
| ) |
Adds entry to targets_.
References nest::TargetDataFields::get_lcid(), nest::SecondaryTargetDataFields::get_recv_buffer_pos(), nest::MPIManager::get_send_displacement_secondary_events_in_int(), nest::TargetData::get_source_lid(), nest::TargetDataFields::get_syn_id(), nest::SecondaryTargetDataFields::get_syn_id(), nest::TargetDataFields::get_tid(), vector_util::grow(), nest::TargetData::is_primary(), nest::kernel(), nest::KernelManager::mpi_manager, nest::TargetData::secondary_data, secondary_send_buffer_pos_, nest::TargetData::target_data, and targets_.
Referenced by nest::ConnectionManager::add_target().
|
inline |
Clears all entries of targets_.
References secondary_send_buffer_pos_, and targets_.
Referenced by nest::ConnectionManager::restructure_connection_tables().
| void nest::TargetTable::compress_secondary_send_buffer_pos | ( | const size_t | tid | ) |
Removes identical MPI send buffer positions to avoid writing data multiple times.
References secondary_send_buffer_pos_.
Referenced by nest::ConnectionManager::compress_secondary_send_buffer_pos().
| void nest::TargetTable::finalize | ( | ) |
Deletes data structure.
References secondary_send_buffer_pos_, and targets_.
Referenced by nest::ConnectionManager::finalize().
|
inline |
Returns all MPI send buffer positions of a neuron.
Used to fill MPI buffer in EventDeliveryManager.
References secondary_send_buffer_pos_.
Referenced by nest::ConnectionManager::get_secondary_send_buffer_positions().
|
inline |
Returns all targets of a neuron.
Used for filling EventDeliveryManager::emitted_spikes_register_.
References targets_.
Referenced by nest::ConnectionManager::get_remote_targets_of_local_node().
| void nest::TargetTable::initialize | ( | ) |
Initializes data structures.
References nest::VPManager::get_num_threads(), nest::VPManager::get_thread_id(), nest::kernel(), secondary_send_buffer_pos_, targets_, and nest::KernelManager::vp_manager.
Referenced by nest::ConnectionManager::initialize().
| void nest::TargetTable::prepare | ( | const size_t | tid | ) |
Adjusts targets_ to number of local nodes.
References nest::NodeManager::get_max_num_local_nodes(), nest::kernel(), nest::KernelManager::node_manager, secondary_send_buffer_pos_, and targets_.
Referenced by nest::ConnectionManager::prepare_target_table().
|
private |
Stores MPI send buffer positions for secondary targets of local neurons.
Four dimensional object:
Referenced by add_target(), clear(), compress_secondary_send_buffer_pos(), finalize(), get_secondary_send_buffer_positions(), initialize(), and prepare().
|
private |
Stores targets of local neurons.
Three dimensional objects:
Referenced by add_target(), clear(), finalize(), get_targets(), initialize(), and prepare().