spynnaker.pyNN.connections package

Module contents

class spynnaker.pyNN.connections.EthernetCommandConnection(translator, command_containers=None, local_host=None, local_port=19999)

Bases: DatabaseConnection

A connection that can send commands to a device at the start and end of a simulation.

Parameters:
  • translator (AbstractEthernetTranslator) – A translator of multicast commands to device commands

  • command_containers (list(AbstractSendMeMulticastCommandsVertex)) – A list of vertices that have commands to be sent at the start and end of simulation

  • local_host (str) – The optional host to listen on for the start/resume message

  • local_port (int) – The optional port to listen on for the stop/pause message

add_command_container(command_container)[source]

Add a command container.

Parameters:

command_container (AbstractSendMeMulticastCommandsVertex) – A vertex that has commands to be sent at the start and end of simulation

class spynnaker.pyNN.connections.EthernetControlConnection(translator, label, live_packet_gather_label, local_host=None, local_port=None)

Bases: LiveEventConnection

A connection that can translate Ethernet control messages received from a Population.

Parameters:
  • translator (AbstractEthernetTranslator) – The translator of multicast to control commands

  • label (str) – The label of the vertex to attach the translator to

  • live_packet_gather_label (str) – The label of the LPG vertex that this control connection will listen to.

  • local_host (str) – The optional host to listen on

  • local_port (int) – The optional port to listen on

add_translator(label, translator)[source]

Add another translator that routes via the LPG.

Parameters:
  • label (str) – The label of the vertex to attach the translator to

  • translator (AbstractEthernetTranslator) – The translator of multicast to control commands

class spynnaker.pyNN.connections.SPIFLiveSpikesConnection(receive_labels, spif_host, spif_port=3332, events_per_packet=32, time_per_packet=500, local_host=None, local_port=None)

Bases: DatabaseConnection

A connection for receiving live spikes from SPIF.

Parameters:
  • receive_labels (iterable(str)) – Labels of vertices from which live events will be received.

  • spif_host (str) – The location of the SPIF board receiving packets

  • spif_port (int) – The port of the SPIF board (default 3332)

  • events_per_packet (int) – The maximum number of events in each packet. SPIF will be configured to send a packet as soon as it reaches this size if not before (default is 32)

  • time_per_packet (int) – The maximum time between sending non-empty packets. SPIF will be configured to send a packet that isn’t empty after this many microseconds (default is 500)

  • local_host (str) – Optional specification of the local hostname or IP address of the interface to listen on

  • local_port (int) – Optional specification of the local port to listen on. Must match the port that the toolchain will send the notification on (19999 by default)

add_init_callback(label, init_callback)[source]

Add a callback to be called to initialise a vertex.

Parameters:
  • label (str) – The label of the vertex to be notified about. Must be one of the vertices listed in the constructor

  • init_callback (callable(str, int, float, float) -> None) – A function to be called to initialise the vertex. This should take as parameters the label of the vertex, the number of neurons in the population, the run time of the simulation in milliseconds, and the simulation timestep in milliseconds

add_pause_stop_callback(label, pause_stop_callback)[source]

Add a callback for the pause and stop state of the simulation.

Parameters:
  • label (str) – the label of the function to be sent

  • pause_stop_callback (callable(str, LiveEventConnection) -> None) – A function to be called when the pause or stop message has been received. This function should take the label of the referenced vertex, and an instance of this class, which can be used to send events.

add_receive_callback(label, live_event_callback, translate_key=True)[source]

Add a callback for the reception of live events from a vertex.

Parameters:
  • label (str) – The label of the vertex to be notified about. Must be one of the vertices listed in the constructor

  • live_event_callback (callable(str, list(int)) -> None) – A function to be called when events are received. This should take as parameters the label of the vertex, and an array-like of atom IDs.

  • translate_key (bool) – True if the key is to be converted to an atom ID, False if the key should stay a key

add_receive_label(label)[source]
Parameters:

label (str) –

add_start_resume_callback(label, start_resume_callback)[source]

Add a callback for the start and resume state of the simulation.

Parameters:
  • label (str) – the label of the function to be sent

  • start_resume_callback (callable(str, LiveEventConnection) -> None) – A function to be called when the start or resume message has been received. This function should take the label of the referenced vertex, and an instance of this class, which can be used to send events.

class spynnaker.pyNN.connections.SpynnakerLiveSpikesConnection(receive_labels=None, send_labels=None, local_host=None, local_port=19999, live_packet_gather_label='LiveSpikeReceiver')

Bases: LiveEventConnection

A connection for receiving and sending live spikes from and to SpiNNaker.

Parameters:
  • receive_labels (iterable(str)) – Labels of population from which live spikes will be received.

  • send_labels (iterable(str)) – Labels of population to which live spikes will be sent

  • local_host (str) – Optional specification of the local hostname or IP address of the interface to listen on

  • local_port (int) – Optional specification of the local port to listen on. Must match the port that the toolchain will send the notification on (19999 by default)

send_spike(label, neuron_id, send_full_keys=False)[source]

Send a spike from a single neuron.

Parameters:
  • label (str) – The label of the population from which the spike will originate

  • neuron_id (int) – The ID of the neuron sending a spike

  • send_full_keys (bool) – Determines whether to send full 32-bit keys, getting the key for each neuron from the database, or whether to send 16-bit neuron IDs directly

send_spikes(label, neuron_ids, send_full_keys=False)[source]

Send a number of spikes.

Parameters:
  • label (str) – The label of the population from which the spikes will originate

  • neuron_ids (list(int)) – array-like of neuron IDs sending spikes

  • send_full_keys (bool) – Determines whether to send full 32-bit keys, getting the key for each neuron from the database, or whether to send 16-bit neuron IDs directly

class spynnaker.pyNN.connections.SpynnakerPoissonControlConnection(poisson_labels=None, local_host=None, local_port=19999, control_label_extension='_control')

Bases: LiveEventConnection

A connection used to control a Poisson-distributed random event source’s firing rate at runtime.

Parameters:
  • poisson_labels (iterable(str)) – Labels of Poisson populations to be controlled

  • local_host (str) – Optional specification of the local hostname or IP address of the interface to listen on

  • local_port (int) – Optional specification of the local port to listen on. Must match the port that the toolchain will send the notification on (19999 by default)

  • control_label_extension (str) – The extra name added to the label of each Poisson source

add_init_callback(label, init_callback)[source]

Add a callback to be called to initialise a vertex.

Parameters:
  • label (str) – The label of the vertex to be notified about. Must be one of the vertices listed in the constructor

  • init_callback (callable(str, int, float, float) -> None) – A function to be called to initialise the vertex. This should take as parameters the label of the vertex, the number of neurons in the population, the run time of the simulation in milliseconds, and the simulation timestep in milliseconds

add_pause_stop_callback(label, pause_stop_callback)[source]

Add a callback for the pause and stop state of the simulation.

Parameters:
  • label (str) – the label of the function to be sent

  • pause_stop_callback (callable(str, LiveEventConnection) -> None) – A function to be called when the pause or stop message has been received. This function should take the label of the referenced vertex, and an instance of this class, which can be used to send events.

add_poisson_label(label)[source]
Parameters:

label (str) – The label of the Poisson source population.

add_receive_callback(label, live_event_callback, translate_key=False)[source]

Add a callback for the reception of time events from a vertex.

These are typically used to receive keys or atoms ids that spiked.

Note

Previously this method was also used to add no time callback I.e. the once that take as parameters the label of the vertex, an int atom ID or key, and an int payload which may be None. For those use add_receive_no_time_callback now

Parameters:
  • label (str) – The label of the vertex to be notified about. Must be one of the vertices listed in the constructor

  • live_event_callback (callable(str, int, list(int)) -> None) – A function to be called when events are received. This should take as parameters the label of the vertex, the simulation timestep when the event occurred, and an array-like of atom IDs or keys.

  • translate_key (bool) – True if the key is to be converted to an atom ID, False if the key should stay a key

add_start_callback(label, start_callback)[source]

Add a callback for the start of the simulation.

Parameters:
  • start_callback (callable(str, LiveEventConnection) -> None) – A function to be called when the start message has been received. This function should take the label of the referenced vertex, and an instance of this class, which can be used to send events

  • label (str) – the label of the function to be sent

add_start_resume_callback(label, start_resume_callback)[source]

Add a callback for the start and resume state of the simulation.

Parameters:
  • label (str) – the label of the function to be sent

  • start_resume_callback (callable(str, LiveEventConnection) -> None) – A function to be called when the start or resume message has been received. This function should take the label of the referenced vertex, and an instance of this class, which can be used to send events.

set_rate(label, neuron_id, rate)[source]

Set the rate of a Poisson neuron within a Poisson source.

Parameters:
  • label (str) – The label of the Population to set the rates of

  • neuron_id (int) – The neuron ID to set the rate of

  • rate (float) – The rate to set in Hz

set_rates(label, neuron_id_rates)[source]

Set the rates of multiple Poisson neurons within a Poisson source.

Parameters:
  • label (str) – The label of the Population to set the rates of

  • neuron_id_rates (list(tuple(int,float))) – A list of tuples of (neuron ID, rate) to be set