NEST main@caf0ae8
 
Loading...
Searching...
No Matches
nest::TargetTable Class Reference

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.
 

Detailed Description

This data structure stores all targets of the local neurons.

This is the presynaptic part of the connection infrastructure.

Member Function Documentation

◆ add_target()

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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ clear()

void nest::TargetTable::clear ( const size_t  tid)
inline

Clears all entries of targets_.

References secondary_send_buffer_pos_, and targets_.

Referenced by nest::ConnectionManager::restructure_connection_tables().

Here is the caller graph for this function:

◆ compress_secondary_send_buffer_pos()

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().

Here is the caller graph for this function:

◆ finalize()

void nest::TargetTable::finalize ( )

Deletes data structure.

References secondary_send_buffer_pos_, and targets_.

Referenced by nest::ConnectionManager::finalize().

Here is the caller graph for this function:

◆ get_secondary_send_buffer_positions()

const std::vector< size_t > & nest::TargetTable::get_secondary_send_buffer_positions ( const size_t  tid,
const size_t  lid,
const synindex  syn_id 
) const
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().

Here is the caller graph for this function:

◆ get_targets()

const std::vector< Target > & nest::TargetTable::get_targets ( const size_t  tid,
const size_t  lid 
) const
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().

Here is the caller graph for this function:

◆ initialize()

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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ prepare()

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().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ secondary_send_buffer_pos_

std::vector< std::vector< std::vector< std::vector< size_t > > > > nest::TargetTable::secondary_send_buffer_pos_
private

Stores MPI send buffer positions for secondary targets of local neurons.

Four dimensional object:

  • first dim: threads
  • second dim: local neurons
  • third dim: synapse types
  • fourth dim: MPI send buffer positions

Referenced by add_target(), clear(), compress_secondary_send_buffer_pos(), finalize(), get_secondary_send_buffer_positions(), initialize(), and prepare().

◆ targets_

std::vector< std::vector< std::vector< Target > > > nest::TargetTable::targets_
private

Stores targets of local neurons.

Three dimensional objects:

  • first dim: threads
  • second dim: local neurons
  • third dim: targets

Referenced by add_target(), clear(), finalize(), get_targets(), initialize(), and prepare().


The documentation for this class was generated from the following files: