pacman.model.graphs.machine package

Module contents

class pacman.model.graphs.machine.AbstractSDRAMPartition

Bases: object

An edge partition that contains SDRAM edges.

get_sdram_base_address_for(vertex)[source]

Get the SDRAM base address for a edge given which side the vertex is on.

Parameters:vertex – the vertex to find SDRAM base address of
Returns:the SDRAM address for this vertex
get_sdram_size_of_region_for(vertex)[source]

Get the size of the region for a vertex given a edge.

Parameters:vertex – the vertex to find SDRAM size of
Returns:the SDRAM size for this vertex
total_sdram_requirements()[source]

Get the total SDRAM required by this outgoing partition.

Returns:int
class pacman.model.graphs.machine.ConstantSDRAMMachinePartition(identifier, pre_vertex)

Bases: pacman.model.graphs.AbstractSingleSourcePartition, pacman.model.graphs.machine.AbstractSDRAMPartition

An SDRAM partition that uses a fixed amount of memory. The edges in the partition must agree on how much memory is required.

MISSING_EDGE_ERROR_MESSAGE = 'Partition {} has no edges'
add_edge(edge)[source]

Add an edge to the edge partition.

Parameters:edge (AbstractEdge) – the edge to add
Raises:PacmanInvalidParameterException – If the edge does not belong in this edge partition
get_sdram_base_address_for(vertex)[source]

Get the SDRAM base address for a edge given which side the vertex is on.

Parameters:vertex – the vertex to find SDRAM base address of
Returns:the SDRAM address for this vertex
get_sdram_size_of_region_for(vertex)[source]

Get the size of the region for a vertex given a edge.

Parameters:vertex – the vertex to find SDRAM size of
Returns:the SDRAM size for this vertex
sdram_base_address
total_sdram_requirements()[source]

Get the total SDRAM required by this outgoing partition.

Returns:int
class pacman.model.graphs.machine.DestinationSegmentedSDRAMMachinePartition(identifier, pre_vertex)

Bases: pacman.model.graphs.AbstractSingleSourcePartition, pacman.model.graphs.machine.AbstractSDRAMPartition

An SDRAM partition that gives each edge its own slice of memory from a contiguous block. The edges all have the same source vertex.

add_edge(edge)[source]

Add an edge to the edge partition.

Parameters:edge (AbstractEdge) – the edge to add
Raises:PacmanInvalidParameterException – If the edge does not belong in this edge partition
get_sdram_base_address_for(vertex)[source]

Get the SDRAM base address for a edge given which side the vertex is on.

Parameters:vertex – the vertex to find SDRAM base address of
Returns:the SDRAM address for this vertex
get_sdram_size_of_region_for(vertex)[source]

Get the size of the region for a vertex given a edge.

Parameters:vertex – the vertex to find SDRAM size of
Returns:the SDRAM size for this vertex
sdram_base_address
total_sdram_requirements()[source]

Get the total SDRAM required by this outgoing partition.

Returns:int
class pacman.model.graphs.machine.MachineEdge(pre_vertex, post_vertex, label=None)

Bases: pacman.model.graphs.AbstractEdge

A simple implementation of a machine edge.

Parameters:
  • pre_vertex (MachineVertex) – The vertex at the start of the edge.
  • post_vertex (MachineVertex) – The vertex at the end of the edge.
  • label (str or None) – The name of the edge.
label

The label of the edge

Return type:str
post_vertex

The vertex at the end of the edge.

Return type:MachineVertex
pre_vertex

The vertex at the start of the edge.

Return type:MachineVertex
class pacman.model.graphs.machine.MachineFPGAVertex(fpga_id, fpga_link_id, board_address=None, label=None, constraints=None, app_vertex=None, vertex_slice=None)

Bases: pacman.model.graphs.machine.MachineVertex, pacman.model.graphs.AbstractFPGA

A virtual vertex on an FPGA link.

board_address

The IP address of the board to which the device is connected, or None for the boot board.

Return type:str
fpga_id

The ID of the FPGA to which the vertex is connected.

Return type:int

The link of the FPGA to which the vertex is connected.

Return type:int
sdram_required

The sdram required by the vertex

Return type:AbstractSDRAM
class pacman.model.graphs.machine.MachineSpiNNakerLinkVertex(spinnaker_link_id, board_address=None, label=None, constraints=None, app_vertex=None, vertex_slice=None)

Bases: pacman.model.graphs.machine.MachineVertex, pacman.model.graphs.AbstractSpiNNakerLink

A virtual vertex on a SpiNNaker Link.

board_address

The IP address of the board to which the device is connected, or None for the boot board.

Return type:str
sdram_required

The sdram required by the vertex

Return type:AbstractSDRAM

The SpiNNaker Link that the vertex is connected to.

Return type:int
class pacman.model.graphs.machine.MachineVertex(label=None, constraints=None, app_vertex=None, vertex_slice=None)

Bases: pacman.model.graphs.AbstractVertex

A machine graph vertex.

Parameters:
  • label (str or None) – The optional name of the vertex
  • constraints (iterable(AbstractConstraint) or None) – The optional initial constraints of the vertex
  • app_vertex (ApplicationVertex or None) – The application vertex that caused this machine vertex to be created. If None, there is no such application vertex.
  • vertex_slice (Slice or None) – The slice of the application vertex that this machine vertex implements.
Raises:
app_vertex
The application vertex that caused this machine vertex to be
created. If None, there is no such application vertex.
Return type:ApplicationVertex or None
get_n_keys_for_partition(partition_id)[source]

Get the number of keys required by the given partition of edges.

Parameters:partition_id (str) – The identifier of the partition partition_id param is only used by some MachineVertex clases
Returns:The number of keys required
Return type:int
index
The index into the collection of machine vertices for an
application vertex.
Return type:int
iptags

The iptags used by this vertex if any.

Return type:iterable(IPtagResource)
reverse_iptags

The reverse iptags used by this vertex if any.

Return type:iterable(ReverseIPtagResource)
sdram_required

The sdram required by the vertex

Return type:AbstractSDRAM
vertex_slice
The slice of the application vertex that this machine vertex
implements.
Return type:Slice
class pacman.model.graphs.machine.MulticastEdgePartition(pre_vertex, identifier)

Bases: pacman.model.graphs.AbstractSingleSourcePartition

A simple implementation of a machine edge partition that will communicate with SpiNNaker multicast packets. They have a common set of sources with the same semantics and so can share a single key.

Parameters:
  • pre_vertex – the pre vertex of this partition.
  • identifier (str) – The identifier of the partition
class pacman.model.graphs.machine.SDRAMMachineEdge(pre_vertex, post_vertex, label)

Bases: pacman.model.graphs.machine.MachineEdge

sdram_base_address
sdram_size
class pacman.model.graphs.machine.SimpleMachineVertex(sdram, label=None, constraints=None, app_vertex=None, vertex_slice=None, iptags=None, reverse_iptags=None)

Bases: pacman.model.graphs.machine.MachineVertex

A MachineVertex that stores its own resources.

This class is mainly intended for json and testing as it support the
mininal API. If a more complex Vertex is required consider the MockMachineVertex.
iptags

The iptags used by this vertex if any.

Return type:iterable(IPtagResource)
reverse_iptags

The reverse iptags used by this vertex if any.

Return type:iterable(ReverseIPtagResource)
sdram_required

The sdram required by the vertex

Return type:AbstractSDRAM
class pacman.model.graphs.machine.SourceSegmentedSDRAMMachinePartition(identifier, pre_vertices)

Bases: pacman.model.graphs.AbstractMultiplePartition, pacman.model.graphs.machine.AbstractSDRAMPartition

An SDRAM partition that gives each edge its own slice of memory from a contiguous block. The edges all have the same destination vertex.

Parameters:
  • identifier (str) – The identifier of the partition
  • label (str) – A label of the partition
  • pre_vertices (iterable(AbstractVertex)) – The vertices that an edge in this partition may originate at
add_edge(edge)[source]

Add an edge to the edge partition.

Parameters:edge (AbstractEdge) – the edge to add
Raises:PacmanInvalidParameterException – If the edge does not belong in this edge partition
get_sdram_base_address_for(vertex)[source]

Get the SDRAM base address for a edge given which side the vertex is on.

Parameters:vertex – the vertex to find SDRAM base address of
Returns:the SDRAM address for this vertex
get_sdram_size_of_region_for(vertex)[source]

Get the size of the region for a vertex given a edge.

Parameters:vertex – the vertex to find SDRAM size of
Returns:the SDRAM size for this vertex
sdram_base_address
Return type:int
total_sdram_requirements()[source]
Return type:int