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 |
---|---|
Base class for specific backend implementations. |
|
Structure that implements a wrapper for the Backend base class. |
|
Structure defining a set of base data. |
|
Class implementing a generator of unique IDs. |
|
Class implementing an interface for the message bus. |
|
Class implementing an interface for the message bus endpoint. |
|
Set of classes that implement neuron containers of the same model. |
|
Set of classes that implement synapse containers of the same type. |
|
Set of classes that implement a message subscription. |
|
Class implementing an interface for the tag dictionary. |
|
Class defining unique identifiers. |
|
Class that implements hashing of UIDs. |
|
Class that implements the interface to the UID of the Boost:Uuid library. |
|
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