pacman.data package

Submodules

pacman.data.pacman_data_writer module

class pacman.data.pacman_data_writer.PacmanDataWriter(state: DataStatus)[source]

Bases: MachineDataWriter, PacmanDataView

See spinn_utilities.data.UtilsDataWriter.

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

Parameters:

state – State writer should be in

classmethod add_edge(edge: ApplicationEdge, outgoing_edge_partition_name: str) None[source]

Adds an Application edge to the user graph.

Syntactic sugar for get_graph().add_edge()

Parameters:
  • edge – The edge to add

  • outgoing_edge_partition_name – The name of the edge partition to add the edge to; each edge partition is the partition of edges that start at the same vertex

Raises:
  • PacmanConfigurationException – when both graphs contain vertices

  • PacmanInvalidParameterException – If the edge is not of a valid type or if edges have already been added to this partition that start at a different vertex to this one

  • SpiNNUtilsException – If the graph is currently unavailable

  • SimulatorNotSetupException – If called before sim.setup

  • SimulatorShutdownException – If called after sim.end

add_sample_monitor_vertex(vertex: MachineVertex, all_chips: bool) None[source]

Accepts a simple of the monitor cores to be added.

Should be called once for each monitor added to all (Ethernet) chips.

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

Parameters:
  • vertex – One of the vertices added to each core, assumed to be typical of all.

  • all_chips – 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

classmethod add_vertex(vertex: ApplicationVertex) None[source]

Adds an Application vertex to the user graph.

Syntactic sugar for get_graph().add_vertex()

Parameters:

vertex – The vertex to add to the graph

Raises:
set_placements(placements: Placements) None[source]

Set the placements.

Parameters:

placements

Raises:

TypeError – if the placements is not a Placements

set_plan_n_timesteps(plan_n_timesteps: int | None) None[source]

Sets the plan_n_timestep. Use None for run forever.

Parameters:

plan_n_timesteps

Raises:
set_precompressed(router_tables: MulticastRoutingTables) None[source]

Sets the precompressed router_tables value.

Parameters:

router_tables – new value

Raises:

TypeError – if the router_tables is not a MulticastRoutingTables

set_routing_infos(routing_infos: RoutingInfo) None[source]

Set the routing_infos.

Parameters:

routing_infos

Raises:

TypeError – if the routing_infos is not a RoutingInfo

set_routing_table_by_partition(routing_table_by_partition: MulticastRoutingTableByPartition) None[source]

Sets the _routing_table_by_partition.

Parameters:

routing_table_by_partition – raises TypeError: if routing_table_by_partition is no a MulticastRoutingTableByPartition

set_tags(tags: Tags) None[source]

Set the tags.

Parameters:

tags

Raises:

TypeError – if the tags is not a Tags

set_uncompressed(router_tables: MulticastRoutingTables) None[source]

Sets the uncompressed router_tables value.

Parameters:

router_tables – new value

Raises:

TypeError – if the router_tables is not a MulticastRoutingTables

Module contents

class pacman.data.PacmanDataView

Bases: MachineDataView

Adds the extra Methods to the View for PACMAN level.

See UtilsDataView for a more detailed description.

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

classmethod add_edge(edge: ApplicationEdge, outgoing_edge_partition_name: str) None[source]

Adds an Application edge to the user graph.

Syntactic sugar for get_graph().add_edge()

Parameters:
  • edge – The edge to add

  • outgoing_edge_partition_name – The name of the edge partition to add the edge to; each edge partition is the partition of edges that start at the same vertex

Raises:
  • PacmanConfigurationException – when both graphs contain vertices

  • PacmanInvalidParameterException – If the edge is not of a valid type or if edges have already been added to this partition that start at a different vertex to this one

  • SpiNNUtilsException – If the graph is currently unavailable

  • SimulatorNotSetupException – If called before sim.setup

  • SimulatorShutdownException – If called after sim.end

classmethod add_vertex(vertex: ApplicationVertex) None[source]

Adds an Application vertex to the user graph.

Syntactic sugar for get_graph().add_vertex()

Parameters:

vertex – The vertex to add to the graph

Raises:
classmethod get_all_monitor_sdram() AbstractSDRAM[source]

The amount of SDRAM on every chip reported to be used by monitor vertices.

Ethernet-enabled chips may have more.

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

Returns:

SDRAM usage of the monitors expected to be added

classmethod get_edges() Sequence[ApplicationEdge][source]

Get all the edges in the graph.

Syntactic sugar for get_graph().edges

Returns:

The edges in the graph.

classmethod get_ethernet_monitor_sdram() AbstractSDRAM[source]

The amount of SDRAM on every Ethernet chip reported to be used by monitor vertices.

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

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

Returns:

SDRAM usage of the monitors expected to be added

classmethod get_n_machine_vertices() int[source]
Returns:

The number of machine vertices via the application graph.

classmethod get_n_partitions() int[source]

The partitions in the user application graph.

Syntactic sugar for get_graph().n_outgoing_edge_partitions

Returns:

The number of outgoing edge partitions in the graph.

Raises:

SpiNNUtilsException – If the graph is currently unavailable

classmethod get_n_placements() int[source]
Returns:

The number of placements.

Raises:

SpiNNUtilsException – If the placements are currently unavailable

classmethod get_n_vertices() int[source]

The number of vertices in the user application graph.

Syntactic sugar for get_graph().n_vertices

Returns:

The number of vertices in the graph.

Raises:

SpiNNUtilsException – If the graph is currently unavailable

classmethod get_outgoing_edge_partitions_starting_at_vertex(vertex: ApplicationVertex) Iterable[AbstractEdgePartition][source]

Get all the edge partitions that start at the given vertex.

Syntactic sugar for get_graph().get_outgoing_edge_partitions_starting_at_vertex()

Parameters:

vertex – The vertex at which the edge partitions to find starts

Returns:

All the edge partitions that start at the given vertex.

classmethod get_placement_of_vertex(vertex: MachineVertex) Placement[source]

Return the placement information for a vertex.

Syntactic sugar for get_placements().get_placement_of_vertex(vertex). Optimised for speed

Parameters:

vertex – The vertex to find the placement of

Returns:

The placement

Raises:
classmethod get_placement_on_processor(x: int, y: int, p: int) Placement[source]

Get the vertex on a specific processor, or raise an exception if the processor has not been allocated.

Parameters:
  • x – the X coordinate of the chip

  • y – the Y coordinate of the chip

  • p – the processor on the chip

Returns:

the vertex placed on the given processor

Raises:
classmethod get_plan_n_timestep() int | None[source]

The number of timesteps to plan for in an auto-pause-resume cycle.

Use by partitioners and such, but not to reserve data regions.

Returns:

The planned number of timesteps, or None if run forever.

classmethod get_precompressed() MulticastRoutingTables[source]

Get the pre-compressed routing tables.

This may be the same object as the uncompressed ones if precompression is skipped or determined to be not needed.

Returns:

The routing tables after the range compressor or if not to be run the original tables

Raises:

SpiNNUtilsException – If the tables is currently unavailable

classmethod get_routing_infos() RoutingInfo[source]
Returns:

The routing information, if known.

Raises:

SpiNNUtilsException – If the routing_infos is currently unavailable

classmethod get_routing_table_by_partition() MulticastRoutingTableByPartition[source]
Returns:

The MulticastRoutingTableByPartition, if it has been set.

Raises:

SpiNNUtilsException – If the tables is currently unavailable

classmethod get_tags() Tags[source]
Returns:

The Tags object if known.

Raises:

SpiNNUtilsException – If the tags is currently unavailable

classmethod get_uncompressed() MulticastRoutingTables[source]

Get the uncompressed routing tables.

Returns:

The original routing tables

Raises:

SpiNNUtilsException – If the tables is currently unavailable

classmethod get_vertices_by_type(vertex_type: Type[VTX]) Iterable[VTX][source]

The application vertices in the graph of the specific type.

Syntactic sugar for:

for vertex in get_graph().vertices
    if isinstance(vertex, vertex_type)
        ...

Note

The result is a generator so can only be used in a single loop

Parameters:

vertex_type – The type(s) to filter the vertices on (can be anything acceptable to the isinstance built-in).

Returns:

The vertices of this type in the order they are in the graph

Raises:

SpiNNUtilsException – If the graph is currently unavailable

classmethod iterate_machine_vertices() Iterable[MachineVertex][source]
Returns:

Iterator over the Machine vertices via the application graph.

classmethod iterate_partitions() Iterable[ApplicationEdgePartition][source]

The partitions in the user application graphs as an iterator.

Syntactic sugar for get_graph().outgoing_edge_partitions

Returns:

The edge partitions in the graph.

Raises:

SpiNNUtilsException – If the graph is currently unavailable

classmethod iterate_placemements() Iterable[Placement][source]

Iterates over the Placement objects.

Syntactic sugar for get_placements().placements

Returns:

iterable of placements

classmethod iterate_placements_by_vertex_type(vertex_type: type | Tuple[type, ...]) Iterable[Placement][source]
Parameters:

vertex_type – Class of vertex to find

Returns:

Iterator over placements on any chip with this vertex_type.

Raises:

SpiNNUtilsException – If the placements are currently unavailable

classmethod iterate_placements_by_xy_and_type(xy: XY, vertex_type: type | Tuple[type, ...]) Iterable[Placement][source]
Parameters:
  • xy – x and y coordinates to find placements for.

  • vertex_type – Class of vertex to find

Returns:

Iterate over placements with this x, y and type.

Raises:

SpiNNUtilsException – If the placements are currently unavailable

classmethod iterate_placements_on_core(xy: XY) Iterable[Placement][source]
Parameters:

xy – x and y coordinates to find placements for.

Returns:

Iterator over placements with this x and y.

Raises:

SpiNNUtilsException – If the placements are currently unavailable

classmethod iterate_vertices() Iterable[ApplicationVertex][source]

The vertices in the user application graph.

Syntactic sugar for get_graph().vertices except that the result is an iterable and not a list.

Returns:

The vertices in the graph.

Raises:

SpiNNUtilsException – If the graph is currently unavailable