pacman.model.resources package

Module contents

class pacman.model.resources.AbstractSDRAM

Bases: object

Represents an amount of SDRAM used on a chip in the machine.

abstract property fixed: int

The fixed SDRAM cost.

abstract get_total_sdram(n_timesteps: int | None) int[source]

The total SDRAM.

Parameters:

n_timesteps (int) – number of timesteps to cost for

Returns:

abstract property per_timestep: float

The extra SDRAM cost for each additional timestep.

Warning

May well be zero.

abstract report(timesteps: int | None, indent: str = '', preamble: str = '', target: TextIO | None = None)[source]

Writes a description of this SDRAM to the target.

Parameters:
  • timesteps (int) – Number of timesteps to do total cost for

  • indent (str) – Text at the start of this and all children

  • preamble (str) – Additional text at the start but not in children

  • target (file) – Where to write the output. None is standard print

abstract sub_from(other: AbstractSDRAM) AbstractSDRAM[source]

Creates a new SDRAM which is the other less this one.

Parameters:

other (AbstractSDRAM) – another SDRAM resource

Returns:

a New AbstractSDRAM

Return type:

AbstractSDRAM

class pacman.model.resources.ConstantSDRAM(sdram: int)

Bases: AbstractSDRAM

Represents an amount of SDRAM used on a chip in the machine.

This is used when the amount of SDRAM needed is not effected by runtime

Parameters:

sdram (int or int64) – The amount of SDRAM in bytes

property fixed: int

The fixed SDRAM cost.

get_total_sdram(n_timesteps: int | None) int[source]

The total SDRAM.

Parameters:

n_timesteps (int) – number of timesteps to cost for

Returns:

property per_timestep: float

The extra SDRAM cost for each additional timestep.

Warning

May well be zero.

report(timesteps: int | None, indent: str = '', preamble: str = '', target: TextIO | None = None)[source]

Writes a description of this SDRAM to the target.

Parameters:
  • timesteps (int) – Number of timesteps to do total cost for

  • indent (str) – Text at the start of this and all children

  • preamble (str) – Additional text at the start but not in children

  • target (file) – Where to write the output. None is standard print

sub_from(other: AbstractSDRAM) AbstractSDRAM[source]

Creates a new SDRAM which is the other less this one.

Parameters:

other (AbstractSDRAM) – another SDRAM resource

Returns:

a New AbstractSDRAM

Return type:

AbstractSDRAM

class pacman.model.resources.IPtagResource(ip_address: str | None, port: int | None, strip_sdp: bool, tag: int | None = None, traffic_identifier: str = 'DEFAULT')

Bases: object

Represents the ability to have a SpiNNaker machine send messages to you during execution.

Parameters:
  • ip_address (str) – The IP address of the host that will receive data from this tag

  • port (int or None) – The port that will

  • strip_sdp (bool) – Whether the tag requires that SDP headers are stripped before transmission of data

  • tag (int or None) – A fixed tag ID to assign, or None if any tag is OK

  • traffic_identifier (str) – The traffic to be sent using this tag; traffic with the same traffic_identifier can be sent using the same tag

get_value()[source]
Returns:

The description of the IP tag.

Return type:

list(str, int, bool, int, str)

property ip_address: str | None

The IP address to assign to the tag.

Return type:

str

property port: int | None

The port of the tag.

Return type:

int

property strip_sdp: bool

Whether SDP headers should be stripped for this tag.

Return type:

bool

property tag: int | None

The tag required, or None if any tag is OK.

Return type:

int or None

property traffic_identifier: str

The traffic identifier for this IP tag.

class pacman.model.resources.MultiRegionSDRAM

Bases: VariableSDRAM

A resource for SDRAM that comes in regions.

Note

Adding or subtracting two MultiRegionSDRAM objects will be assumed to be an operation over multiple cores/placements so these functions return a VariableSDRAM object without the regions data.

To add extra SDRAM costs for the same core/placement use the methods add_cost() and merge().

Parameters:
  • fixed_sdram (int or numpy.integer) – The amount of SDRAM (in bytes) that represents static overhead

  • per_timestep_sdram (float or numpy.float) – The amount of SDRAM (in bytes) required per timestep. Often represents the space to record a timestep.

add_cost(region: int | str | Enum, fixed_sdram: int | float | integer | floating, per_timestep_sdram: int | float | integer | floating = 0)[source]

Adds the cost for the specified region.

Parameters:
  • region (int or str or enum) – Key to identify the region

  • fixed_sdram (int or numpy.integer) – The fixed cost for this region.

  • per_timestep_sdram (int or numpy.integer) – The variable cost for this region is any

merge(other: MultiRegionSDRAM)[source]

Combines the other SDRAM costs keeping the region mappings.

Note

This method should only be called when combining cost for the same core/ placement. Use + to combine for different cores

Parameters:

other (MultiRegionSDRAM) – Another mapping of costs by region

nest(region: int | str | Enum, other: AbstractSDRAM)[source]

Combines the other SDRAM cost, in a nested fashion.

The totals for the new region are added to the total of this one. A new region is created summarising the cost of others. If other contains a regions which is the same as one in self they are not combined, but kept separate.

Parameters:
  • region (int or str or enum) – Key to identify the summary region

  • other (AbstractSDRAM) – Another SDRAM model to make combine by nesting

property regions

The map from region identifiers to the to the amount of SDRAM required.

Return type:

dict(int or str or enum, AbstractSDRAM)

report(timesteps: int | None, indent: str = '', preamble: str = '', target: TextIO | None = None)[source]

Writes a description of this SDRAM to the target.

Parameters:
  • timesteps (int) – Number of timesteps to do total cost for

  • indent (str) – Text at the start of this and all children

  • preamble (str) – Additional text at the start but not in children

  • target (file) – Where to write the output. None is standard print

class pacman.model.resources.ReverseIPtagResource(port: int | None = None, sdp_port: int = 1, tag: int | None = None)

Bases: object

Represents the ability to talk to a SpiNNaker machine by sending UDP packets to it during execution.

Parameters:
  • port (int or None) – The UDP port to listen to on the board for this tag or None for a default

  • sdp_port (int) – The SDP port number to be used when constructing SDP packets from the received UDP packets for this tag

  • tag (int or None) – A fixed tag ID to assign, or None if any tag is OK

get_value()[source]
Returns:

The description of the reverse IP tag.

Return type:

list(int, int, int)

property port: int | None

The port of the tag.

Return type:

int

property sdp_port: int

The SDP port to use when constructing the SDP message from the received UDP message.

Return type:

int

property tag: int | None

The tag required, or None if any tag is OK.

Return type:

int or None

class pacman.model.resources.VariableSDRAM(fixed_sdram: int, per_timestep_sdram: float)

Bases: AbstractSDRAM

Represents an amount of SDRAM used on a chip in the machine.

This is where the usage increase as the run time increases

Parameters:
  • fixed_sdram (int or numpy.integer) – The amount of SDRAM (in bytes) that represents static overhead

  • per_timestep_sdram (float or numpy.float) – The amount of SDRAM (in bytes) required per timestep. Often represents the space to record a timestep.

property fixed: int

The fixed SDRAM cost.

get_total_sdram(n_timesteps: int | None) int[source]

The total SDRAM.

Parameters:

n_timesteps (int) – number of timesteps to cost for

Returns:

property per_timestep: float

The extra SDRAM cost for each additional timestep.

Warning

May well be zero.

report(timesteps: int | None, indent: str = '', preamble: str = '', target: TextIO | None = None)[source]

Writes a description of this SDRAM to the target.

Parameters:
  • timesteps (int) – Number of timesteps to do total cost for

  • indent (str) – Text at the start of this and all children

  • preamble (str) – Additional text at the start but not in children

  • target (file) – Where to write the output. None is standard print

sub_from(other: AbstractSDRAM) VariableSDRAM[source]

Creates a new SDRAM which is the other less this one.

Parameters:

other (AbstractSDRAM) – another SDRAM resource

Returns:

a New AbstractSDRAM

Return type:

AbstractSDRAM