spinn_front_end_common.abstract_models package

Subpackages

Module contents

class spinn_front_end_common.abstract_models.AbstractCanReset[source]

Bases: object

Indicates an object that can be reset to time 0.

This is used when AbstractSpinnakerBase.reset is called. All Vertices and all edges in the original graph (the one added to by the user) will be checked and reset.

abstract reset_to_first_timestep()[source]

Reset the object to first time step.

class spinn_front_end_common.abstract_models.AbstractGeneratesDataSpecification[source]

Bases: object

abstract generate_data_specification(spec, placement)[source]

Generate a data specification.

Parameters:
class spinn_front_end_common.abstract_models.AbstractHasAssociatedBinary[source]

Bases: object

Marks a machine graph vertex that can be launched on a SpiNNaker core.

abstract get_binary_file_name()[source]

Get the binary name to be run for this vertex.

Return type:

str

abstract get_binary_start_type()[source]

Get the start type of the binary to be run.

Return type:

ExecutableType

class spinn_front_end_common.abstract_models.AbstractMachineAllocationController[source]

Bases: object

An object that controls the allocation of a machine

abstract close()[source]

Indicate that the use of the machine is complete.

abstract create_transceiver()[source]

Create a transceiver for talking to the allocated machine, and make sure everything is ready for use (i.e. boot and discover connections if needed).

Return type:

Transceiver

abstract extend_allocation(new_total_run_time)[source]

Extend the allocation of the machine from the original run time.

Parameters:

new_total_run_time (float) – The total run time that is now required starting from when the machine was first allocated

make_report(filename)[source]

Asks the controller to make a report of details of allocations. By default, this does nothing.

abstract open_eieio_connection(chip_x, chip_y)[source]

Open a connection to a specific Ethernet-enabled chip for EIEIO. Caller will have to arrange for SpiNNaker to pay attention to the connection.

The coordinates will be job-relative.

Parameters:
  • chip_x (int) – Ethernet-enabled chip X coordinate

  • chip_y (int) – Ethernet-enabled chip Y coordinate

Return type:

EIEIOConnection

abstract open_eieio_listener()[source]

Open an unbound EIEIO connection. This may be used to communicate with any board of the job.

Return type:

EIEIOConnection

abstract open_sdp_connection(chip_x, chip_y, udp_port=17893)[source]

Open a connection to a specific Ethernet-enabled SpiNNaker chip. Caller will have to arrange for SpiNNaker to pay attention to the connection.

The coordinates will be job-relative.

Parameters:
  • chip_x (int) – Ethernet-enabled chip X coordinate

  • chip_y (int) – Ethernet-enabled chip Y coordinate

  • udp_port (int) – the UDP port on the chip to connect to; connecting to a non-SCP port will result in a connection that can’t easily be configured.

Return type:

SDPConnection

property proxying

Whether this is a proxying connection. False unless overridden.

Return type:

bool

abstract where_is_machine(chip_x, chip_y)[source]

Locates and returns cabinet, frame, board for a given chip in a machine allocated to this job.

Parameters:
  • chip_x (int) – chip x location

  • chip_y (int) – chip y location

Returns:

(cabinet, frame, board)

Return type:

tuple(int,int,int)

class spinn_front_end_common.abstract_models.AbstractRewritesDataSpecification[source]

Bases: object

Indicates an object that allows data to be changed after run, and so can rewrite the data specification.

abstract regenerate_data_specification(spec, placement)[source]

Regenerate the data specification, only generating regions that have changed and need to be reloaded.

Parameters:
abstract reload_required()[source]

Return true if any data region needs to be reloaded.

Return type:

bool

abstract set_reload_required(new_value)[source]

Indicate that the regions have been reloaded.

Parameters:

new_value – the new value

class spinn_front_end_common.abstract_models.AbstractSendMeMulticastCommandsVertex[source]

Bases: object

A device that may be a virtual vertex which wants to commands to be sent to it as multicast packets at fixed points in the simulation.

Note

The device might not be a vertex at all. It could instead be instantiated entirely host side, in which case these methods will never be called.

abstract property pause_stop_commands

The commands needed when pausing or stopping simulation.

Return type:

iterable(MultiCastCommand)

abstract property start_resume_commands

The commands needed when starting or resuming simulation.

Return type:

iterable(MultiCastCommand)

abstract property timed_commands

The commands to be sent at given times in the simulation.

Return type:

iterable(MultiCastCommand)

class spinn_front_end_common.abstract_models.AbstractSupportsBitFieldGeneration[source]

Bases: object

Marks a vertex that can provide information about bitfields it wants generated on-chip.

abstract bit_field_base_address(placement)[source]

Returns the SDRAM address for the bit field table data.

Parameters:

placement (Placement) –

Returns:

the SDRAM address for the bitfield address

Return type:

int

abstract bit_field_builder_region(placement)[source]

Returns the SDRAM address for the bit field builder data.

Parameters:

placement (Placement) –

Returns:

the SDRAM address for the bitfield builder data

Return type:

int

class spinn_front_end_common.abstract_models.AbstractSupportsBitFieldRoutingCompression[source]

Bases: object

Marks a machine vertex that can support having the on-chip bitfield compressor running on its core.

abstract bit_field_base_address(placement)[source]

Returns the SDRAM address for the bit-field table data.

Parameters:

placement (Placement) –

Returns:

the SDRAM address for the bitfield address

Return type:

int

abstract regeneratable_sdram_blocks_and_sizes(placement)[source]

Returns the SDRAM addresses and sizes for the cores’ SDRAM that are available (borrowed) for generating bitfield tables.

Parameters:

placement (Placement) –

Returns:

list of tuples containing (the SDRAM address for the cores SDRAM address’s for the core’s SDRAM that can be used to generate bitfield tables loaded, and the size of memory chunks located there)

Return type:

list(tuple(int,int))

class spinn_front_end_common.abstract_models.AbstractSupportsDatabaseInjection[source]

Bases: object

Marks a machine vertex as supporting injection of information via a database running on the controlling host.

abstract property injection_partition_id

The partition that packets are being injected with.

Return type:

str

abstract property is_in_injection_mode

Whether this vertex is actually in injection mode.

Return type:

bool

class spinn_front_end_common.abstract_models.AbstractVertexWithEdgeToDependentVertices[source]

Bases: object

A vertex with a dependent vertices, which should be connected to this vertex by an edge directly to each of them.

abstract dependent_vertices()[source]

Return the vertices which this vertex depends upon.

Return type:

iterable(ApplicationVertex)

abstract edge_partition_identifiers_for_dependent_vertex(vertex)[source]

Return the dependent edge identifiers for a particular dependent vertex.

Parameters:

vertex (ApplicationVertex) –

Return type:

iterable(str)

class spinn_front_end_common.abstract_models.HasCustomAtomKeyMap[source]

Bases: object

An object that can provide a custom atom-key mapping for a partition. Useful when there isn’t a one-to-one correspondence between atoms and keys for a given partition.

abstract get_atom_key_map(pre_vertex, partition_id, routing_info)[source]

Get the mapping between atoms and keys for the given partition id, and for the given machine pre-vertex.

Parameters:
  • pre_vertex (MachineVertex) – The machine vertex to get the map for

  • partition_id (str) – The partition to get the map for

  • routing_info (RoutingInfo) – Routing information

Returns:

A list of (atom_id, key)

Return type:

list(tuple(int,int))