Routing Struct
The Routing Struct is the central datatype for routing, encoding connectivity information of the ports, links, and other routing resources of the architecture. Furthermore, it encodes which links may be used by which channels in the Taskgraph
and the valid starting and ending ports for each channel.
Mapper2.Routing.RoutingStruct
— Type.struct RoutingStruct{L<:RoutingLink, C<:RoutingChannel}
Fields
architecture_graph
Base
RoutingGraph
for the underlying routing architecture.graph_vertex_annotations
Annotating
RoutingLink
for each routing element inarchitecture_graph
.
routings
Graphs of routing resources used by each channel.
channels
Vector{RoutingChannel}
containing the channel information for the taskgraph.
channel_index_to_taskgraph_index
Convenience structure mapping local channel indices back to edge indices in the parent taskgraph.
Documentation
Central type for routing. Not meant for extending.
API
allroutes
getroute
alllinks
getlink
start_vertices
stop_vertices
getchannel
getmap
getgraph
iscongested
clear_route
setroute
Method List
RoutingStruct(architecture_graph, graph_vertex_annotations, routings, channels, channel_index_to_taskgraph_index)
defined at /home/travis/build/hildebrandmw/Mapper2.jl/src/Route/Struct.jl:20
.
RoutingStruct(map)
defined at /home/travis/build/hildebrandmw/Mapper2.jl/src/Route/Struct.jl:49
.
API
Mapper2.Routing.allroutes
— Function.allroutes(routing_struct)
Return all routings in routing_struct
.
Mapper2.Routing.getroute
— Function.getroute(routing_struct, index)
Return route for channel index
.
Mapper2.Routing.alllinks
— Function.alllinks(routing_struct)
Return Vector{RoutingLink}
for all links in `routing_struct.
Mapper2.Routing.getlink
— Function.getlink(routing_struct, i)
Return <:RoutingLink
for link in routing_struct
with indes i
.
Mapper2.Routing.start_vertices
— Function.start_vertices(routing_struct, i)
Return Vector{PortVertices}
of start vertices for channel index i
.
start_vertices(channel::RoutingChannel) :: Vector{PortVertices}
Return Vector{PortVertices}
of start vertices for channel
.
Mapper2.Routing.stop_vertices
— Function.stop_vertices(routing_struct, i)
Return Vector{PortVertices}
of stop vertices for channel index i
.
stop_vertices(channel::RoutingChannel) :: Vector{PortVertices}
Return Vector{PortVertices}
of stop vertices for channel
.
Mapper2.Routing.getchannel
— Function.getchannel(routing_struct, i)
Return <:RoutingChannel
with indesx i
.
Mapper2.Routing.getgraph
— Function.getgraph(routing_struct)
Return the RoutingGraph
member of routing_struct
.
Mapper2.Routing.iscongested
— Function.iscongested(routing_struct, [path])
Return true
if routing congestion exists in routing_struct
. If path is given either as a ChannelIndex
or SparseDiGraph
, return true
if just the specified path is congested.
Method List
iscongested(routing_struct)
defined at /home/travis/build/hildebrandmw/Mapper2.jl/src/Route/Struct.jl:155
.
Mapper2.Routing.clear_route
— Function.clear_route(rs::RoutingStruct, channel::ChannelIndex)
Rip up the current routing for the given link.
Mapper2.Routing.setroute
— Function.setroute(routing_struct, route, channel)
Assign route
to channel
.