Map
The Map
holds both a TopLevel
and a Taskgraph
. An additional Mapping
type records how the taskgraph
maps to the toplevel
.
Mapper2.MapperCore.Map
— Type.mutable struct Map{D, T<:RuleSet}
Fields
ruleset
RuleSet
for assigningtaskgraph
totoplevel
.toplevel
TopLevel{A,D}
- TheTopLevel
to be used for the mapping.taskgraph
The
Taskgraph
to map to thetoplevel
.options
mapping
How
taskgraph
is mapped totoplevel
.metadata
Documentation
Top level data structure. Summary of parameters:
T
- TheRuleSet
used to control placement and routing.D
- The number of dimensions in the architecture (will usually be 2 or 3).
Method List
Map(ruleset, toplevel, taskgraph, options, mapping, metadata)
defined at /home/travis/build/hildebrandmw/Mapper2.jl/src/Map/Map.jl:42
.
Map(ruleset, toplevel, taskgraph; options, metadata)
defined at /home/travis/build/hildebrandmw/Mapper2.jl/src/Map/Map.jl:67
.
Mapper2.MapperCore.Mapping
— Type.mutable struct Mapping
Fields
nodes
Dict{String, Path{Component}}
- Takes a node name and returns the path to theComponent
where that node is mapped.
edges
Vector{SparseDiGraph{Union{Path{Link},Path{Port},Path{Component}}}}
- Takes a integer index for an edge in the parentTaskgraph
and returns a graph whose node typesPath
s to architectural compoennts.oEdge connectivity in the graph describes how the
TaskgraphEdge
is routed through theTopLevel
Documentation
Record of how Taskgraph
s and TaskgraphEdge
s in a Taskgraph
map to a TopLevel
.
Method List
Mapping(nodes, edges)
Mapping(nodes, edges)
defined at /home/travis/build/hildebrandmw/Mapper2.jl/src/Map/Map.jl:13
.
Verification Routines
Verify the result of placement and routing.
Mapper2.MapperCore.check_routing
— Function.check_routing(map; quiet)
Check routing in map
. Return true
if map
passes all checks. Otherwise, return false
. If quiet = false
, print status of each test to STDOUT
.
Checks performed:
Mapper2.MapperCore.check_placement
— Function.check_placement(map)
Ensure that each TaskgraphNode
is mapped to a valid component.
Mapper2.MapperCore.check_ports
— Function.check_ports(m::Map{A}) where A
Check the source and destination ports for each task in m
. Perform the following checks:
- Each source and destination port for each task channel is valid.
- All sources and destinations for each task channel has been assigned to a port.
Mapper2.MapperCore.check_capacity
— Function.check_capacity(m::Map)
Performs the following checks:
- The number of channels assigned to each routing resource in
m.toplevel
does not exceed the stated capacity of that resource.
check_architecture_connectivity(m::Map)
Traverse the routing for each channel in m.taskgraph
. Check:
- The nodes on each side of an edge in the routing graph are actually connected in the underlying architecture.
Mapper2.MapperCore.check_routing_connectivity
— Function.check_routing_connectivity(m::Map)
Perform the following check:
- Check that the routing graph for each channel in
m.taskgraph
is weakly connected. - Ensure there is a valid path from each source of the routing graph to each destination of the routing graph.
Mapper2.MapperCore.check_architecture_resources
— Function.check_architecture_resources(map::Map)
Traverse the routing graph for each channel in m.taskgraph
. Check:
- The routing resources used by each channel are valid for that type of channel.