pacman.model.graphs.common package

Submodules

pacman.model.graphs.common.edge_traffic_type module

class pacman.model.graphs.common.edge_traffic_type.EdgeTrafficType(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: IntEnum

Indicates the traffic type of an Edge in a graph.

FIXED_ROUTE = 2

Edge communicates using fixed route packets

MULTICAST = 1

Edge communicates using multicast packets

SDRAM = 3

Edge communicates using shared memory

Module contents

class pacman.model.graphs.common.ChipAndCore(x: int, y: int, p: int | None = None)

Bases: object

A constraint to place a vertex on a specific chip and, optionally, a specific core on that chip.

Parameters:
  • x (int) – the x-coordinate of the chip

  • y (int) – the y-coordinate of the chip

  • p (int or None) – the processor (if any) of the chip

property p: int | None

The processor on the chip, or None if that is not constrained.

Return type:

int or None

property x: int

The X-coordinate of the chip.

Return type:

int

property y: int

The Y-coordinate of the chip.

Return type:

int

class pacman.model.graphs.common.MDSlice(lo_atom: int, hi_atom: int, shape: Tuple[int, ...], start: Tuple[int, ...], atoms_shape: Tuple[int, ...])

Bases: Slice

Represents a multi-dimensional slice of a vertex.

Parameters:
  • lo_atom (int) – Index of the lowest atom to represent.

  • hi_atom (int) – Index of the highest atom to represent.

  • shape (tuple(int,...)) – The size of each dimension in the slice.

  • start (tuple(int,...)) – The offset to the start index along each dimension.

  • atoms_shape (list(int)) – The shape of atoms (?)

Raises:

PacmanValueError – If the bounds of the slice are invalid.

property as_slice: slice

Converts the Slice to a standard slice object if possible.

Note

Use of this method is not recommended. It fails for multi-dimensional slices and may be removed.

Returns:

a standard built-in slice object

Return type:

slice

Raises:

NotImplementedError – If called on a multi-dimensional slice

property dimension: Tuple[slice, ...]

Get directions or edges as slices for every dimension

This is the width and if available height, depth, etc., of the Slice/Grid as represented as slices form the origin along in that direction.

Return type:

tuple(slice, …)

property end: Tuple[int, ...]

The end positions of the slice in each dimension

Return type:

tuple(int, …)

classmethod from_string(as_str: str) MDSlice | Slice[source]

Convert the string form of a MDSlice into an object instance.

Parameters:

as_str (str) – The string to parse

Return type:

MDSlice

get_ids_as_slice_or_list() ndarray[source]

Returns the IDs as a built-in slice if possible, otherwise as a list of IDs.

Returns:

a slice or list of IDs

Return type:

slice or list(int)

get_raster_ids() ndarray[Any, dtype[integer]][source]

Get the IDs of the atoms in the slice as they would appear in a “raster scan” of the atoms over the whole shape.

Returns:

A list of the global raster IDs of the atoms in this slice

Return type:

ndarray

get_raster_indices(relative_indices: ndarray[Any, dtype[integer]]) ndarray[Any, dtype[integer]][source]

Convert from slice-level indices to raster indices.

Note that no checking is done on the given indices; they should be within this slice!

Parameters:

relative_indices (numpy.ndarray) – The local core-level indices relative to this slice

Returns:

The raster application vertex indices

get_relative_indices(app_vertex_indices: ndarray[Any, dtype[integer]]) ndarray[Any, dtype[integer]][source]

Convert from raster indices to slice-level indices.

Note that no checking is done on the given indices; they should be within this slice!

Parameters:

app_vertex_indices (numpy.ndarray) – The raster application vertex indices to convert

Returns:

The local core-level indices relative to this slice

get_slice(n: int) slice[source]

Get a slice in the n’Th dimension

Parameters:

n (int) – The 0-indexed dimension to get the shape of

Type:

slice

property hi_atom: int

The highest atom represented in the slice.

Note

Use of this method is not recommended. It fails for multi-dimensional slices and may be removed

Return type:

int

property shape: Tuple[int, ...]

The shape of the atoms over multiple dimensions. By default the shape will be 1-dimensional.

Return type:

tuple(int,…)

property start: Tuple[int, ...]

The start coordinates of the slice. By default this will be lo_atom in 1 dimension.

Return type:

tuple(int,…)

class pacman.model.graphs.common.Slice(lo_atom: int, hi_atom: int)

Bases: object

Represents a simple single-dimensional slice of a vertex.

Note

Multi-dimensional slices are supported by MDSlice.

Parameters:
  • lo_atom (int) – Index of the lowest atom to represent.

  • hi_atom (int) – Index of the highest atom to represent.

Raises:
property as_slice: slice

Converts the Slice to a standard slice object if possible.

Note

Use of this method is not recommended. It fails for multi-dimensional slices and may be removed.

Returns:

a standard built-in slice object

Return type:

slice

Raises:

NotImplementedError – If called on a multi-dimensional slice

property dimension: Tuple[slice, ...]

Get directions or edges as slices for every dimension

This is the width and if available height, depth, etc., of the Slice/Grid as represented as slices form the origin along in that direction.

Return type:

tuple(slice, …)

property end: Tuple[int, ...]

The end positions of the slice in each dimension

Return type:

tuple(int, …)

classmethod from_string(as_str: str) Slice[source]

Convert the string form of a Slice into an object instance.

Parameters:

as_str (str) – The string to parse

Return type:

Slice

get_ids_as_slice_or_list() slice | ndarray[source]

Returns the IDs as a built-in slice if possible, otherwise as a list of IDs.

Returns:

a slice or list of IDs

Return type:

slice or list(int)

get_raster_ids() ndarray[Any, dtype[integer]][source]

Get the IDs of the atoms in the slice as they would appear in a “raster scan” of the atoms over the whole shape.

Returns:

A list of the global raster IDs of the atoms in this slice

Return type:

ndarray

get_raster_indices(relative_indices: ndarray[Any, dtype[integer]]) ndarray[Any, dtype[integer]][source]

Convert from slice-level indices to raster indices.

Note that no checking is done on the given indices; they should be within this slice!

Parameters:

relative_indices (numpy.ndarray) – The local core-level indices relative to this slice

Returns:

The raster application vertex indices

get_relative_indices(app_vertex_indices: ndarray[Any, dtype[integer]]) ndarray[Any, dtype[integer]][source]

Convert from raster indices to slice-level indices.

Note that no checking is done on the given indices; they should be within this slice!

Parameters:

app_vertex_indices (numpy.ndarray) – The raster application vertex indices to convert

Returns:

The local core-level indices relative to this slice

get_slice(n: int) slice[source]

Get a slice in the n’Th dimension.

Parameters:

n (int) – Must be 0

Type:

slice

property hi_atom: int

The highest atom represented in the slice.

Note

Use of this method is not recommended. It fails for multi-dimensional slices and may be removed

Return type:

int

property lo_atom: int

The lowest atom represented in the slice.

Return type:

int

property n_atoms: int

The number of atoms represented by the slice.

Return type:

int

property shape: Tuple[int, ...]

The shape of the atoms over multiple dimensions. By default the shape will be 1-dimensional.

Return type:

tuple(int,…)

property start: Tuple[int, ...]

The start coordinates of the slice. By default this will be lo_atom in 1 dimension.

Return type:

tuple(int,…)