spinn_front_end_common.utility_models package¶
Module contents¶
-
class
spinn_front_end_common.utility_models.
CommandSender
(label)[source]¶ Bases:
pacman.model.graphs.application.abstract.abstract_one_app_one_machine_vertex.AbstractOneAppOneMachineVertex
A utility for sending commands to a vertex (possibly an external device) at fixed times in the simulation or in response to simulation events (e.g., starting and stopping).
Parameters: label (str) – The label of this vertex -
add_commands
(start_resume_commands, pause_stop_commands, timed_commands, vertex_to_send_to)[source]¶ Add commands to be sent down a given edge.
Parameters: - start_resume_commands (iterable(MultiCastCommand)) – The commands to send when the simulation starts or resumes from pause
- pause_stop_commands (iterable(MultiCastCommand)) – The commands to send when the simulation stops or pauses after running
- timed_commands (iterable(MultiCastCommand)) – The commands to send at specific times
- vertex_to_send_to (AbstractVertex) – The vertex these commands are to be sent to
-
edges_and_partitions
()[source]¶ Construct application edges from this vertex to the app vertices that this vertex knows how to target (and has keys allocated for).
Returns: edges, partition IDs Return type: tuple(list(ApplicationEdge), list(str))
-
get_fixed_key_and_mask
(partition_id)[source]¶ Get a fixed key and mask for the application vertex or None if not fixed (the default). See
get_machine_gixed_key_and_mask()
for the conditions.Parameters: partition_id (str) – The identifier of the partition to get the key for Return type: BaseKeyAndMask or None
-
-
class
spinn_front_end_common.utility_models.
CommandSenderMachineVertex
(label, app_vertex=None)[source]¶ Bases:
pacman.model.graphs.machine.machine_vertex.MachineVertex
,spinn_front_end_common.interface.provenance.provides_provenance_data_from_machine_impl.ProvidesProvenanceDataFromMachineImpl
,spinn_front_end_common.abstract_models.abstract_has_associated_binary.AbstractHasAssociatedBinary
,spinn_front_end_common.abstract_models.abstract_generates_data_specification.AbstractGeneratesDataSpecification
Machine vertex for injecting packets at particular times or in response to particular events into a SpiNNaker application.
Parameters: - label (str) – The label of this vertex
- app_vertex (CommandSender) –
-
BINARY_FILE_NAME
= 'command_sender_multicast_source.aplx'¶
-
class
DATA_REGIONS
[source]¶ Bases:
enum.IntEnum
An enumeration.
-
COMMANDS_AT_START_RESUME
= 2¶
-
COMMANDS_AT_STOP_PAUSE
= 3¶
-
COMMANDS_WITH_ARBITRARY_TIMES
= 1¶
-
PROVENANCE_REGION
= 4¶
-
SYSTEM_REGION
= 0¶
-
-
add_commands
(start_resume_commands, pause_stop_commands, timed_commands, vertex_to_send_to)[source]¶ Add commands to be sent down a given edge.
Parameters: - start_resume_commands (iterable(MultiCastCommand)) – The commands to send when the simulation starts or resumes from pause
- pause_stop_commands (iterable(MultiCastCommand)) – the commands to send when the simulation stops or pauses after running
- timed_commands (iterable(MultiCastCommand)) – The commands to send at specific times
- vertex_to_send_to (AbstractVertex) – The vertex these commands are to be sent to
-
edges_and_partitions
()[source]¶ Construct machine edges from this vertex to the machine vertices that this vertex knows how to target (and has keys allocated for).
Returns: edges, partition IDs Return type: tuple(list(MachineEdge), list(str))
-
generate_data_specification
(spec, placement)[source]¶ Generate a data specification.
Parameters: - spec (DataSpecificationGenerator) – The data specification to write to
- placement (Placement) – The placement the vertex is located at
-
get_binary_start_type
()[source]¶ Get the start type of the binary to be run.
Return type: ExecutableType
-
get_edges_and_partitions
(pre_vertex, vertex_type, edge_type)[source]¶ Construct edges from this vertex to the vertices that this vertex knows how to target (and has keys allocated for).
Note
Do not call this directly from outside either a
CommandSender
or aCommandSenderMachineVertex
.Parameters: - pre_vertex (CommandSender or CommandSenderMachineVertex) –
- vertex_type (type) – subclass of
AbstractVertex
- edge_type (type) – subclass of
AbstractEdge
Returns: edges, partition IDs
Return type: tuple(list(AbstractEdge), list(str))
-
get_fixed_key_and_mask
(partition_id)[source]¶ Get the key and mask for the given partition.
Parameters: partition_id (str) – The partition to get the key for Return type: BaseKeyAndMask
-
classmethod
get_n_command_bytes
(commands)[source]¶ Parameters: commands (list(MultiCastCommand)) – Return type: int
-
parse_extra_provenance_items
(label, x, y, p, provenance_data)[source]¶ Convert the remaining provenance words (those not in the standard set) into provenance items.
Called by
get_provenance_data_from_machine()
Parameters: - label (str) – A descriptive label for the vertex (derived from label and placed position) to be used for provenance error reporting to the user.
- x (int) – x coordinate of the chip where this core
- y (int) – y coordinate of the core where this core
- p (int) – virtual id of the core
- provenance_data (list(int)) – The list of words of raw provenance data.
-
sdram_required
¶ The SDRAM space required by the vertex.
Return type: AbstractSDRAM
-
class
spinn_front_end_common.utility_models.
ChipPowerMonitorMachineVertex
(label, sampling_frequency)[source]¶ Bases:
pacman.model.graphs.machine.machine_vertex.MachineVertex
,spinn_front_end_common.abstract_models.abstract_has_associated_binary.AbstractHasAssociatedBinary
,spinn_front_end_common.abstract_models.abstract_generates_data_specification.AbstractGeneratesDataSpecification
,spinn_front_end_common.interface.buffer_management.buffer_models.abstract_receive_buffers_to_host.AbstractReceiveBuffersToHost
Machine vertex for C code representing functionality to record idle times in a machine graph.
Note
This is an unusual machine vertex, in that it has no associated application vertex.
Parameters: -
static
binary_start_type
()[source]¶ The type of binary that implements this vertex.
Returns: starttype enum Return type: ExecutableType
-
generate_data_specification
(spec, placement)[source]¶ Generate a data specification.
Parameters: - spec (DataSpecificationGenerator) – The data specification to write to
- placement (Placement) – The placement the vertex is located at
-
get_binary_start_type
()[source]¶ Get the start type of the binary to be run.
Return type: ExecutableType
-
get_recorded_data
(placement)[source]¶ Get data from SDRAM given placement and buffer manager. Also arranges for provenance data to be available.
Parameters: placement (Placement) – the location on machine to get data from Returns: results, an array with 1 dimension of uint32 values Return type: ndarray
-
get_recorded_region_ids
()[source]¶ Get the recording region IDs that have been recorded using buffering.
Returns: The region numbers that have active recording Return type: iterable(int)
-
get_recording_region_base_address
(placement)[source]¶ Get the recording region base address.
Parameters: placement (Placement) – the placement object of the core to find the address of Returns: the base address of the recording region Return type: int
-
static
get_resources
(sampling_frequency)[source]¶ Get the resources used by this vertex.
Parameters: sampling_frequency (float) – Return type: VariableSDRAM
-
sdram_required
¶ The SDRAM space required by the vertex.
Return type: AbstractSDRAM
-
static
-
class
spinn_front_end_common.utility_models.
DataSpeedUpPacketGatherMachineVertex
(x, y, ip_address)[source]¶ Bases:
pacman.model.graphs.machine.machine_vertex.MachineVertex
,spinn_front_end_common.abstract_models.abstract_generates_data_specification.AbstractGeneratesDataSpecification
,spinn_front_end_common.abstract_models.abstract_has_associated_binary.AbstractHasAssociatedBinary
,spinn_front_end_common.interface.provenance.abstract_provides_provenance_data_from_machine.AbstractProvidesProvenanceDataFromMachine
Machine vertex for handling fast data transfer between host and SpiNNaker. This machine vertex is only ever placed on chips with a working Ethernet connection; it collaborates with the
ExtraMonitorSupportMachineVertex
to write data on other chips.Note
This is an unusual machine vertex, in that it has no associated application vertex.
Parameters: -
BASE_KEY
= 4294967289¶ base key (really nasty hack to tie in fixed route keys)
-
BASE_MASK
= 4294967291¶ to use with multicast stuff (reinjection acks have to be fixed route)
-
END_FLAG_KEY
= 4294967286¶
-
END_FLAG_KEY_OFFSET
= 3¶
-
FIRST_DATA_KEY
= 4294967287¶
-
FIRST_DATA_KEY_OFFSET
= 2¶
-
FLAG_FOR_MISSING_ALL_SEQUENCES
= 4294967294¶
-
IN_REPORT_NAME
= 'speeds_gained_in_speed_up_process.rpt'¶ report name for tracking performance gains
-
NEW_SEQ_KEY
= 4294967288¶
-
NEW_SEQ_KEY_OFFSET
= 1¶
-
OUT_REPORT_NAME
= 'routers_used_in_speed_up_process.rpt'¶ report name for tracking used routers
-
TRANSACTION_ID_KEY
= 4294967285¶
-
TRANSACTION_ID_KEY_OFFSET
= 4¶
-
calculate_max_seq_num
()[source]¶ Deduce the max sequence number expected to be received.
Returns: the biggest sequence num expected Return type: int
-
clear_reinjection_queue
()[source]¶ Clears the queues for reinjection.
Parameters: placements (Placements) – the placements object
-
generate_data_specification
(spec, placement)[source]¶ Generate a data specification.
Parameters: - spec (DataSpecificationGenerator) – The data specification to write to
- placement (Placement) – The placement the vertex is located at
-
get_binary_start_type
()[source]¶ Get the start type of the binary to be run.
Return type: ExecutableType
-
get_data
(extra_monitor, placement, memory_address, length_in_bytes)[source]¶ Gets data from a given core and memory address.
Parameters: - extra_monitor (ExtraMonitorSupportMachineVertex) – the extra monitor used for this data
- placement (Placement) – placement object for where to get data from
- memory_address (int) – the address in SDRAM to start reading from
- length_in_bytes (int) – the length of data to read in bytes
Returns: byte array of the data
Return type:
-
get_provenance_data_from_machine
(placement)[source]¶ Get an iterable of provenance data items.
Parameters: placement (Placement) – the placement of the object Return type: iterable
The IPtags used by this vertex if any.
Return type: iterable(IPtagResource)
-
static
load_application_routing_tables
()[source]¶ Set all chips to have application table loaded in the router.
-
static
load_system_routing_tables
()[source]¶ Set all chips to have the system table loaded in the router.
-
static
locate_correct_write_data_function_for_chip_location
(uses_advanced_monitors, x, y, transceiver, extra_monitor_cores_to_ethernet_connection_map)[source]¶ Supports other components figuring out which gatherer and function to call for writing data onto SpiNNaker.
Parameters: - uses_advanced_monitors (bool) – Whether the system is using advanced monitors
- x (int) – the chip x coordinate to write data to
- y (int) – the chip y coordinate to write data to
- transceiver (Transceiver) – the SpiNNMan instance
- extra_monitor_cores_to_ethernet_connection_map (dict(tuple(int,int), DataSpeedUpPacketGatherMachineVertex)) – mapping between cores and connections
Returns: a write function of either a LPG or the spinnMan
Return type: callable
-
sdram_required
¶ The SDRAM space required by the vertex.
Return type: AbstractSDRAM
-
send_data_into_spinnaker
(x, y, base_address, data, n_bytes=None, offset=0, cpu=0, is_filename=False)[source]¶ Sends a block of data into SpiNNaker to a given chip.
Parameters: - x (int) – chip x for data
- y (int) – chip y for data
- base_address (int) – the address in SDRAM to start writing memory
- data (bytes or bytearray or memoryview or str) – the data to write (or filename to load data from,
if
is_filename
is True; that’s the only time this is a str) - n_bytes (int) – how many bytes to read, or None if not set
- offset (int) – where in the data to start from
- cpu (int) –
- is_filename (bool) – whether data is actually a file.
-
set_cores_for_data_streaming
()[source]¶ Helper method for setting the router timeouts to a state usable for data streaming.
-
set_router_wait1_timeout
(timeout)[source]¶ Set the wait1 field for a set of routers.
Parameters: - timeout (tuple(int,int)) –
- placements (Placements) –
-
set_router_wait2_timeout
(timeout)[source]¶ Set the wait2 field for a set of routers.
Parameters: timeout (tuple(int,int)) –
-
-
class
spinn_front_end_common.utility_models.
ExtraMonitorSupportMachineVertex
(reinject_point_to_point=False, reinject_nearest_neighbour=False, reinject_fixed_route=False)[source]¶ Bases:
pacman.model.graphs.machine.machine_vertex.MachineVertex
,spinn_front_end_common.abstract_models.abstract_has_associated_binary.AbstractHasAssociatedBinary
,spinn_front_end_common.abstract_models.abstract_generates_data_specification.AbstractGeneratesDataSpecification
,spinn_front_end_common.interface.provenance.abstract_provides_provenance_data_from_machine.AbstractProvidesProvenanceDataFromMachine
Machine vertex for talking to extra monitor cores. Supports reinjection control and the faster data transfer protocols.
Usually deployed once per chip.
Note
This is an unusual machine vertex, in that it has no associated application vertex.
Parameters: -
clear_reinjection_queue
(extra_monitor_cores_to_set)[source]¶ Clears the queues for reinjection.
Parameters: extra_monitor_cores_to_set (iterable(ExtraMonitorSupportMachineVertex)) – Which extra monitors need to clear their queues.
-
generate_data_specification
(spec, placement)[source]¶ Generate a data specification.
Parameters: - spec (DataSpecificationGenerator) – The data specification to write to
- placement (Placement) – The placement the vertex is located at
-
get_binary_start_type
()[source]¶ Get the start type of the binary to be run.
Return type: ExecutableType
-
get_provenance_data_from_machine
(placement)[source]¶ Get an iterable of provenance data items.
Parameters: placement (Placement) – the placement of the object Return type: iterable
-
get_reinjection_status
()[source]¶ Get the reinjection status from this extra monitor vertex.
Returns: the reinjection status for this vertex Return type: ReInjectionStatus
-
get_reinjection_status_for_vertices
()[source]¶ Get the reinjection status from a set of extra monitor cores.
Return type: dict(tuple(int,int), ReInjectionStatus)
-
load_application_mc_routes
()[source]¶ Get the extra monitor cores to load up the application-based multicast routes (used by the Data In protocol).
-
load_system_mc_routes
()[source]¶ Get the extra monitor cores to load up the system-based multicast routes (used by the Data In protocol).
Parameters: transceiver (Transceiver) – the spinnMan interface
-
reset_reinjection_counters
(extra_monitor_cores_to_set)[source]¶ Resets the counters for reinjection.
Parameters: - transceiver (Transceiver) – the spinnMan interface
- extra_monitor_cores_to_set (iterable(ExtraMonitorSupportMachineVertex)) – which monitors control the routers to reset the counters of
-
sdram_required
¶ The SDRAM space required by the vertex.
Return type: AbstractSDRAM
-
set_reinjection_packets
(point_to_point=None, multicast=None, nearest_neighbour=None, fixed_route=None)[source]¶ Parameters: - point_to_point (bool or None) – If point to point should be set, or None if left as before
- multicast (bool or None) – If multicast should be set, or None if left as before
- nearest_neighbour (bool or None) – If nearest neighbour should be set, or None if left as before
- fixed_route (bool or None) – If fixed route should be set, or None if left as before.
-
set_router_wait1_timeout
(timeout, extra_monitor_cores_to_set)[source]¶ Supports setting of the router time outs for a set of chips via their extra monitor cores. This sets the timeout for the time between when a packet arrives and when it starts to be emergency routed. (Actual emergency routing is disabled by default.)
Parameters: - timeout (tuple(int,int)) – The mantissa and exponent of the timeout value, each between 0 and 15
- extra_monitor_cores_to_set (iterable(ExtraMonitorSupportMachineVertex)) – which monitors control the routers to set the timeout of
-
set_router_wait2_timeout
(timeout, extra_monitor_cores_to_set)[source]¶ Supports setting of the router time outs for a set of chips via their extra monitor cores. This sets the timeout for the time between when a packet starts to be emergency routed and when it is dropped. (Actual emergency routing is disabled by default.)
Parameters: - timeout (tuple(int,int)) – The mantissa and exponent of the timeout value, each between 0 and 15
- extra_monitor_cores_to_set (iterable(ExtraMonitorSupportMachineVertex)) – which monitors control the routers to set the timeout of
-
static
static_get_binary_file_name
()[source]¶ The name of the binary implementing this vertex.
Return type: str
-
static
static_get_binary_start_type
()[source]¶ The type of the binary implementing this vertex.
Return type: ExecutableType
-
transaction_id
¶
-
-
class
spinn_front_end_common.utility_models.
LivePacketGather
(params, label=None)[source]¶ Bases:
pacman.model.graphs.application.application_vertex.ApplicationVertex
A vertex that gathers and forwards multicast packets to the host.
Parameters: - params (LivePacketGatherParameters) – The parameters object
- label (str) – An optional label
-
params
¶
-
class
spinn_front_end_common.utility_models.
LivePacketGatherMachineVertex
(lpg_params, app_vertex=None, label=None)[source]¶ Bases:
pacman.model.graphs.machine.machine_vertex.MachineVertex
,spinn_front_end_common.interface.provenance.provides_provenance_data_from_machine_impl.ProvidesProvenanceDataFromMachineImpl
,spinn_front_end_common.abstract_models.abstract_generates_data_specification.AbstractGeneratesDataSpecification
,spinn_front_end_common.abstract_models.abstract_has_associated_binary.AbstractHasAssociatedBinary
Used to gather multicast packets coming from cores and stream them out to a receiving application on host. Only ever deployed on chips with a working Ethernet connection.
Parameters: - lpg_params (LivePacketGatherParameters) – The parameters object
- app_vertex (LivePacketGather) – The application vertex
- label (str) – An optional label
-
KEY_ENTRY_SIZE
= 12¶
-
TRAFFIC_IDENTIFIER
= 'LPG_EVENT_STREAM'¶ Used to identify tags involved with the live packet gatherer.
-
add_incoming_source
(m_vertex, partition_id)[source]¶ Add a machine vertex source incoming into this gatherer.
Parameters: - m_vertex (MachineVertex) – The source machine vertex
- partition_id (str) – The incoming partition id
-
generate_data_specification
(spec, placement)[source]¶ Generate a data specification.
Parameters: - spec (DataSpecificationGenerator) – The data specification to write to
- placement (Placement) – The placement the vertex is located at
-
get_binary_start_type
()[source]¶ Get the start type of the binary to be run.
Return type: ExecutableType
The IPtags used by this vertex if any.
Return type: iterable(IPtagResource)
-
params
¶
-
parse_extra_provenance_items
(label, x, y, p, provenance_data)[source]¶ Convert the remaining provenance words (those not in the standard set) into provenance items.
Called by
get_provenance_data_from_machine()
Parameters: - label (str) – A descriptive label for the vertex (derived from label and placed position) to be used for provenance error reporting to the user.
- x (int) – x coordinate of the chip where this core
- y (int) – y coordinate of the core where this core
- p (int) – virtual id of the core
- provenance_data (list(int)) – The list of words of raw provenance data.
-
sdram_required
¶ The SDRAM space required by the vertex.
Return type: AbstractSDRAM
-
class
spinn_front_end_common.utility_models.
MultiCastCommand
(key, payload=None, time=None, repeat=0, delay_between_repeats=0)[source]¶ Bases:
object
A command to be sent to a vertex.
Parameters: - key (int) – The key of the command
- payload (int or None) – The payload of the command
- time (int or None) – The time within the simulation at which to send the
command, or
None
if this is not a timed command - repeat (int) – The number of times that the command should be repeated after sending it once. This could be used to ensure that the command is sent despite lost packets. Must be between 0 and 65535
- delay_between_repeats (int) – The amount of time in microseconds to wait between sending repeats of the same command. Must be between 0 and 65535, and must be 0 if repeat is 0
Raises: ConfigurationException – If the repeat or delay are out of range
-
class
spinn_front_end_common.utility_models.
ReverseIpTagMultiCastSource
(n_keys, label=None, max_atoms_per_core=9223372036854775807, receive_port=None, receive_sdp_port=1, receive_tag=None, receive_rate=10, virtual_key=None, prefix=None, prefix_type=None, check_keys=False, send_buffer_times=None, send_buffer_partition_id=None, reserve_reverse_ip_tag=False, injection_partition_id=None, splitter=None)[source]¶ Bases:
pacman.model.graphs.application.application_vertex.ApplicationVertex
,pacman.model.partitioner_interfaces.legacy_partitioner_api.LegacyPartitionerAPI
A model which will allow events to be injected into a SpiNNaker machine and converted into multicast packets.
Parameters: - n_keys (int) – The number of keys to be sent via this multicast source
- label (str) – The label of this vertex
- max_atoms_per_core (int) –
- board_address (str or None) – The IP address of the board on which to place this vertex if receiving data, either buffered or live (by default, any board is chosen)
- receive_port (int or None) – The port on the board that will listen for incoming event packets (default is to disable this feature; set a value to enable it)
- receive_sdp_port (int) – The SDP port to listen on for incoming event packets (defaults to 1)
- receive_tag (IPTag) – The IP tag to use for receiving live events (uses any by default)
- receive_rate (float) – The estimated rate of packets that will be sent by this source
- virtual_key (int) – The base multicast key to send received events with (assigned automatically by default)
- prefix (int) – The prefix to “or” with generated multicast keys (default is no prefix)
- prefix_type (EIEIOPrefix) – Whether the prefix should apply to the upper or lower half of the multicast keys (default is upper half)
- check_keys (bool) – True if the keys of received events should be verified before sending (default False)
- send_buffer_times (ndarray(ndarray(numpy.int32)) or list(ndarray(int32)) or None) – An array of arrays of times at which keys should be sent (one array for each key, default disabled)
- send_buffer_partition_id (str or None) – The ID of the partition containing the edges down which the events are to be sent
- reserve_reverse_ip_tag (bool) – Extra flag for input without a reserved port
- injection_partition (str) – If not None, will enable injection and specify the partition to send injected keys with
- splitter (None or AbstractSplitterCommon) – the splitter object needed for this vertex
-
create_machine_vertex
(vertex_slice, sdram, label=None)[source]¶ Create a machine vertex from this application vertex.
Parameters: - vertex_slice (Slice) – The slice of atoms that the machine vertex will cover.
- sdram (AbstractSDRAM) – The SDRAM used by the machine vertex.
- label (str or None) – human readable label for the machine vertex
Returns: The created machine vertex
Return type:
-
get_fixed_key_and_mask
(partition_id)[source]¶ Get a fixed key and mask for the application vertex or None if not fixed (the default). See
get_machine_gixed_key_and_mask()
for the conditions.Parameters: partition_id (str) – The identifier of the partition to get the key for Return type: BaseKeyAndMask or None
-
get_sdram_used_by_atoms
(vertex_slice)[source]¶ Get the separate SDRAM requirements for a range of atoms.
Parameters: vertex_slice (Slice) – the low value of atoms to calculate resources from Return type: AbstractSDRAM
-
class
spinn_front_end_common.utility_models.
ReverseIPTagMulticastSourceMachineVertex
(label, vertex_slice=None, app_vertex=None, n_keys=None, receive_port=None, receive_sdp_port=1, receive_tag=None, receive_rate=10, virtual_key=None, prefix=None, prefix_type=None, check_keys=False, send_buffer_times=None, send_buffer_partition_id=None, reserve_reverse_ip_tag=False, injection_partition_id=None)[source]¶ Bases:
pacman.model.graphs.machine.machine_vertex.MachineVertex
,spinn_front_end_common.abstract_models.abstract_generates_data_specification.AbstractGeneratesDataSpecification
,spinn_front_end_common.abstract_models.abstract_has_associated_binary.AbstractHasAssociatedBinary
,spinn_front_end_common.abstract_models.abstract_supports_database_injection.AbstractSupportsDatabaseInjection
,spinn_front_end_common.interface.provenance.provides_provenance_data_from_machine_impl.ProvidesProvenanceDataFromMachineImpl
,spinn_front_end_common.interface.buffer_management.buffer_models.sends_buffers_from_host_pre_buffered_impl.SendsBuffersFromHostPreBufferedImpl
,spinn_front_end_common.interface.buffer_management.buffer_models.abstract_receive_buffers_to_host.AbstractReceiveBuffersToHost
A model which allows events to be injected into SpiNNaker and converted in to multicast packets.
Parameters: - label (str) – The label of this vertex
- vertex_slice (Slice or None) – The slice served via this multicast source
- app_vertex (ReverseIpTagMultiCastSource or None) – The associated application vertex
- n_keys (int) – The number of keys to be sent via this mulitcast source (can’t be None if vertex_slice is also None)
- board_address (str) – The IP address of the board on which to place this vertex if receiving data, either buffered or live (by default, any board is chosen)
- receive_port (int) – The port on the board that will listen for incoming event packets (default is to disable this feature; set a value to enable it, or set the reserve_reverse_ip_tag parameter to True if a random port is to be used)
- receive_sdp_port (int) – The SDP port to listen on for incoming event packets (defaults to 1)
- receive_tag (int) – The IP tag to use for receiving live events (uses any by default)
- receive_rate (float) –
- virtual_key (int) – The base multicast key to send received events with (assigned automatically by default)
- prefix (int) – The prefix to “or” with generated multicast keys (default is no prefix)
- prefix_type (EIEIOPrefix) – Whether the prefix should apply to the upper or lower half of the multicast keys (default is upper half)
- check_keys (bool) – True if the keys of received events should be verified before sending (default False)
- send_buffer_times (ndarray) – An array of arrays of time steps at which keys should be sent (one array for each key, default disabled)
- send_buffer_partition_id (str) – The ID of the partition containing the edges down which the events are to be sent
- reserve_reverse_ip_tag (bool) – True if the source should set up a tag through which it can receive packets; if port is set to None this can be used to enable the reception of packets on a randomly assigned port, which can be read from the database
- injection_partition (str) – If not None, will enable injection and specify the partition to send injected keys with
-
buffering_input
()[source]¶ Return True if the input of this vertex is to be buffered.
Return type: bool
-
enable_recording
(new_state=True)[source]¶ Enable recording of the keys sent.
Parameters: new_state (bool) –
-
generate_data_specification
(spec, placement)[source]¶ Generate a data specification.
Parameters: - spec (DataSpecificationGenerator) – The data specification to write to
- placement (Placement) – The placement the vertex is located at
-
get_binary_start_type
()[source]¶ Get the start type of the binary to be run.
Return type: ExecutableType
-
get_recorded_region_ids
()[source]¶ Get the recording region IDs that have been recorded using buffering.
Returns: The region numbers that have active recording Return type: iterable(int)
-
get_recording_region_base_address
(placement)[source]¶ Get the recording region base address.
Parameters: placement (Placement) – the placement object of the core to find the address of Returns: the base address of the recording region Return type: int
-
get_region_buffer_size
(region)[source]¶ Parameters: region (int) – Region ID Returns: Size of buffer, in bytes. Return type: int
-
get_regions
()[source]¶ Get the set of regions for which there are keys to be sent.
Returns: Iterable of region IDs Return type: iterable(int)
-
classmethod
get_sdram_usage
(send_buffer_times, recording_enabled, receive_rate, n_keys)[source]¶ Parameters: Return type:
-
get_virtual_key
()[source]¶ Updates and returns the virtual key. None is give a zero value
Return type: int or None
-
parse_extra_provenance_items
(label, x, y, p, provenance_data)[source]¶ Convert the remaining provenance words (those not in the standard set) into provenance items.
Called by
get_provenance_data_from_machine()
Parameters: - label (str) – A descriptive label for the vertex (derived from label and placed position) to be used for provenance error reporting to the user.
- x (int) – x coordinate of the chip where this core
- y (int) – y coordinate of the core where this core
- p (int) – virtual id of the core
- provenance_data (list(int)) – The list of words of raw provenance data.
The reverse IPtags used by this vertex if any.
Return type: iterable(ReverseIPtagResource)
-
rewind
(region)[source]¶ Rewinds the internal buffer in preparation of re-sending the spikes.
Parameters: region (int) – The region to rewind
-
sdram_required
¶ The SDRAM space required by the vertex.
Return type: AbstractSDRAM
-
send_buffer_times
¶ When events will be sent.
Return type: ndarray(ndarray(numpy.int32)) or list(ndarray(numpy.int32)) or None
-
send_buffers
¶ Return type: dict(int,BufferedSendingRegion)
-
class
spinn_front_end_common.utility_models.
StreamingContextManager
(gatherers)[source]¶ Bases:
object
The implementation of the context manager object for streaming configuration control.
Parameters: gatherers (iterable(DataSpeedUpPacketGatherMachineVertex)) –