spinn_machine.data package

Submodules

spinn_machine.data.machine_data_writer module

class spinn_machine.data.machine_data_writer.MachineDataWriter(state: DataStatus)[source]

Bases: UtilsDataWriter, MachineDataView

See UtilsDataWriter.

This class is designed to only be used directly within the SpiNNMachine repository unit tests as all methods are available to subclasses.

Parameters:

state – State writer should be in

add_monitor_core(all_chips: bool) None[source]

Accepts a simple of the monitor cores to be added.

Called by PacmanDataWriter add_sample_monitor_vertex.

Only affect is to change the numbers reported by the get_all/ethernet_monitor methods.

Parameters:

all_chips (bool) – If True assumes that this Vertex will be placed on all chips including Ethernet ones. If False assumes that this Vertex type will only be placed on Ethernet Vertices

clear_machine() None[source]

Clears any previously set machine.

Warning

Designed to only be used by ASB to remove a max machine before allocating an actual one. Any other use is not supported. Will be removed without notice if max_machine is no longer done.

get_user_accessed_machine() bool[source]

Reports if …View.get_machine has been called outside of sim.run.

Designed to only be used from ASB. Any other use is not supported

set_machine(machine: Machine) None[source]

Sets the machine.

Parameters:

machine (Machine)

Raises:

TypeError – it the machine is not a Machine

set_machine_generator(machine_generator: Callable[[], None]) None[source]

Registers a function that can be called to give a machine. Note that if the function does not actually register a machine when called, an exception will be thrown.

Parameters:

machine_generator

Module contents

class spinn_machine.data.MachineDataView

Bases: UtilsDataView

Adds the extra Methods to the View for Machine level.

See UtilsDataView for a more detailed description.

This class is designed to only be used directly within the SpiNNMachine repository as all methods are available to subclasses

classmethod get_all_monitor_cores() int[source]

The number of cores on every chip reported to be used by monitor vertices.

Ethernet-enabled chips may have more.

Does not include the system core reserved by the machine/ scamp.

Return type:

int

classmethod get_chip_at(x: int, y: int) Chip[source]

Gets the chip at (x, y).

Almost Semantic sugar for get_machine()[x, y]

The method however does not return None but rather raises a KeyError if the chip is not known

Parameters:
Return type:

Chip

Raises:
classmethod get_ethernet_monitor_cores() int[source]

The number of cores on every Ethernet chip reported to be used by monitor vertices.

This includes the one returned by get_all_monitor_cores unless for some reason these are not on Ethernet chips.

Does not include the system core reserved by the machine/ scamp.

Return type:

int

classmethod get_machine() Machine[source]

Returns the Machine if it has been set.

In Mock mode will create and return a virtual 8 * 8 board

Raises:

SpiNNUtilsException – If the machine is currently unavailable

Return type:

Machine

classmethod get_machine_version() AbstractVersion[source]

Returns the Machine Version if it has or can be set.

` May call version_factory to create the version

return:

A superclass of AbstractVersion

raises SpinnMachineException:

If the cfg version is not set correctly

classmethod get_nearest_ethernet(x: int, y: int) Tuple[int, int][source]

Gets the nearest Ethernet-enabled chip (x, y) for the chip at (x, y) if it exists.

If there is no machine or no chip at (x, y) this method, or any other issue will just return (x, y)

Note

This method will never request a new machine. Therefore a call to this method will not trigger a hard reset

Parameters:
  • x (int) – Chip X coordinate

  • y (int) – Chip Y coordinate

Returns:

Chip (x,`y`)’s nearest_ethernet info or if that is not available just (x, y)

Return type:

tuple(int, int)

classmethod get_physical_core_id(xy: Tuple[int, int], virtual_p: int) int[source]

Get the physical core ID from a virtual core ID.

Note: This call only works for Version 1

Parameters:
  • xy ((int, int)) – The Chip or its XY coordinates

  • virtual_p (int) – The virtual core ID

Return type:

int

Raises:
  • SpiNNUtilsException – If v_to_p map not set, including if the MachineVersion does not support v_to_p_map

  • KeyError – If xy not in the v_to_p_map

  • IndexError – If virtual_p not in the v_to_p_map[xy]

classmethod get_physical_quad(virtual_p: int) Tuple[int, int, int][source]

Returns the quad qx, qy and qp for this virtual id

Does not include XY so does not check if the Core exists on a Chip

Parameters:

virtual_p (int)

Return type:

(int, int, int)

Raises:
  • SpiNNUtilsException – If quad_map map not set, MachineVersion does not support quad_map

  • KeyError – If virtual_p not in the quad_map

classmethod get_physical_string(xy: Tuple[int, int], virtual_p: int) str[source]

Returns a String representing the physical core

Parameters:
  • xy ((int, int)) – The Chip or its XY coordinates

  • virtual_p – The virtual (python) id for the core

Return type:

str

classmethod has_existing_machine() bool[source]

Reports if a machine is currently already created.

Unlike has_machine this method returns false if a machine could be mocked

Return type:

bool

classmethod has_machine() bool[source]

Reports if a machine is currently set or can be mocked.

Unlike has_existing_machine for unit tests this will return True even if a Machine has not yet been created

Return type:

bool

classmethod set_v_to_p_map(v_to_p_map: Dict[Tuple[int, int], bytes]) None[source]

Registers the mapping from Virtual to int physical core ids

Note: Only expected to be used in Version 1

Parameters:

v_to_p_map (dict((int, int), bytes))

classmethod where_is_chip(chip: Chip) str[source]

Gets a string saying where chip is if possible.

Almost Semantic sugar for get_machine().where_is_chip()

The method does not raise an exception rather returns a String of the exception

Note

This method will never request a new machine. Therefore a call to this method will not trigger a hard reset

Parameters:

chip (Chip)

Return type:

str

classmethod where_is_xy(x: int, y: int) str[source]

Gets a string saying where chip at x and y is if possible.

Almost Semantic sugar for get_machine().where_is_xy()

The method does not raise an exception rather returns a String of the exception

Note

This method will never request a new machine. Therefore a call to this method will not trigger a hard reset

Parameters:
Return type:

str