Configuration Settings
Topology
Configure FatTree, Torus, or custom graphs using TOML.
Topology parsing and graph construction is implemented in src/topos/build.rs.
Days supports three input modes:
- Fat-tree (
[topology] category = "FatTree") - Torus (
[topology] category = "Torus") - Custom graph (omit
[topology], provideedgesandhosts)
All modes ultimately produce:
- an undirected graph
UnGraph<usize, ()>(nodes areusizeIDs), - a
hosts: Vec<usize>list indicating which nodes can host flow endpoints.
1) Custom topology (explicit edges)
Use this mode when you want exact control over the graph:
edges = [[0, 1], [0, 2]]
hosts = [0, 1, 2]edgesis a list of undirected edges (pairs of node IDs).hostsis a list of node IDs that can host sources/sinks.
2) Fat-tree
[topology]
category = "FatTree"
[topology.fat_tree]
k = 8Constraints:
kmust be even and positive.
Notes:
- Days constructs the canonical k-ary fat-tree and sets
hosts = 0..(k^2/2).
3) Torus
[topology]
category = "Torus"
[topology.torus]
dim = 2
n = 3Constraints:
dimmust be 1, 2, or 3.nmust be positive.
Notes:
- Days builds a wrap-around torus and sets
hosts = 0..(n^dim).
Common failure modes
- Missing the required sub-table (
[topology.fat_tree]or[topology.torus]) for the chosen category. - Using fewer than 2 hosts when you rely on random endpoint selection (flow sets, collective endpoint generation).