pacman.model.resources package

Module contents

class pacman.model.resources.AbstractSDRAM[source]

Bases: object

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

fixed

The fixed SDRAM cost.

get_total_sdram(n_timesteps)[source]

The total SDRAM.

Parameters:n_timesteps (int) – number of timesteps to cost for
Returns:
per_timestep

The extra SDRAM cost for each additional timestep.

Warning

May well be zero.

report(timesteps, indent='', preamble='', target=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)[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)[source]

Bases: pacman.model.resources.abstract_sdram.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
fixed

The fixed SDRAM cost.

get_total_sdram(n_timesteps)[source]

The total SDRAM.

Parameters:n_timesteps (int) – number of timesteps to cost for
Returns:
per_timestep

The extra SDRAM cost for each additional timestep.

Warning

May well be zero.

report(timesteps, indent='', preamble='', target=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)[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.ElementFreeSpace(start_address, size)[source]

Bases: object

Parameters:
  • start_address (int) –
  • size (int) –
size
Return type:int
start_address
Return type:int
class pacman.model.resources.IPtagResource(ip_address, port, strip_sdp, tag=None, traffic_identifier='DEFAULT')[source]

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)
ip_address

The IP address to assign to the tag.

Return type:str
port

The port of the tag.

Return type:int
strip_sdp

Whether SDP headers should be stripped for this tag.

Return type:bool
tag

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

Return type:int or None
traffic_identifier

The traffic identifier for this IP tag.

class pacman.model.resources.MultiRegionSDRAM[source]

Bases: pacman.model.resources.variable_sdram.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()

add_cost(region, fixed_sdram, per_timestep_sdram=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)[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, other)[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
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, indent='', preamble='', target=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=None, sdp_port=1, tag=None)[source]

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)
port

The port of the tag.

Return type:int
sdp_port

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

Return type:int
tag

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

Return type:int or None
class pacman.model.resources.VariableSDRAM(fixed_sdram, per_timestep_sdram)[source]

Bases: pacman.model.resources.abstract_sdram.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 – 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.
fixed

The fixed SDRAM cost.

get_total_sdram(n_timesteps)[source]

The total SDRAM.

Parameters:n_timesteps (int) – number of timesteps to cost for
Returns:
per_timestep

The extra SDRAM cost for each additional timestep.

Warning

May well be zero.

report(timesteps, indent='', preamble='', target=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)[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