core module

The core module provides support for backends. The core module provides the classes required for interacting with backends and performing application tasks.

The table below contains descriptions of the module components.

The core module components

Component

Description

Backend

Base class for specific backend implementations.

BackendWrapper

Structure that implements a wrapper for the Backend base class.

BaseData

Structure defining a set of base data.

continuously_uid_generator

Class implementing a generator of unique IDs.

MessageBus

Class implementing an interface for the message bus.

MessageEndpoint

Class implementing an interface for the message bus endpoint.

Population

Set of classes that implement neuron containers of the same model.

Projection

Set of classes that implement synapse containers of the same type.

Subscription

Set of classes that implement a message subscription.

TagMap

Class implementing an interface for the tag dictionary.

UID

Class defining unique identifiers.

uid_hash

Class that implements hashing of UIDs.

UUID

Class that implements the interface to the UID of the Boost:Uuid library.

messaging

Namespace that contains message interfaces.

The figure below shows how the module components interact.

In the Kaspersky Neuromorphic Platform, the BaseData structure contains basic information about an object and includes UID and TagMap. The BaseData structure is used in the following classes: Projection, Population, and Backend. Therefore, each of them has a UID and a set of tags with the TagMap values.

The Population and Projection classes receive and send messages that are implemented in the classes of the messaging namespace. Messages contain the sender's UID in the header. Message exchange is implemented using the functions of the Backend class, which stores the MessageBus and MessageEndpoint classes. The MessageBus creates MessageEndpoint and interacts with them by exchanging messages. Each MessageEndpoint has a container of the Subscription class.

Diagram of interactions between components in the core module

In this section

UID class

uid_hash class

UUID class

continuously_uid_generator class

TagMap class

BaseData structure

Set of Population classes

Set of Projection classes

Backend class

BackendWrapper structure

MessageBus class

MessageEndpoint class

Set of Subscription classes

messaging namespace

Page top