Skip to main content

TorusScenario

Communication scenarios · Implementation: mlsysim/engine/scenario_definitions/communication.py.

Construct this scenario with keyword inputs. The fields below show the types and defaults declared by this class.

n_endpoints as a cubic torus against a non-blocking fat-tree, at equal per-link bandwidth.

Notes

Equation: Compose mlsysim.physics.communication.calc_torus_bisection_links, mlsysim.physics.communication.calc_torus_diameter, mlsysim.physics.communication.calc_fat_tree_path_switches.

Assumptions: Endpoints form a regular cubic torus and links have equal bandwidth; side length is rounded for non-perfect powers.

Excludes: The rounded geometry need not preserve endpoint count exactly; failures and adaptive-routing congestion are absent.

References

Derivation: this scenario binds its input fields to the referenced implementation contracts: mlsysim.physics.communication.calc_torus_bisection_links, mlsysim.physics.communication.calc_torus_diameter, mlsysim.physics.communication.calc_fat_tree_path_switches. The methods below identify any additional arithmetic.

Examples

>>> from mlsysim import Scenarios
>>> case = Scenarios.TorusVsFatTree4K
>>> round(case.side, 4)
16

Attributes

Name Description
dims
fat_tree_bisection Aggregate bandwidth of the fat-tree comparison cut. Equation: fat_tree_cut_links * | | [fat_tree_cut_links](#mlsysim.engine.scenario_types.TorusScenario.fat_tree_cut_links) | Links in the comparison's full-bandwidth half-fleet cut. Equation:n_endpoints // 2. | | [fat_tree_path_switches](#mlsysim.engine.scenario_types.TorusScenario.fat_tree_path_switches) | Switch traversals on the comparison's full-height fat-tree path. Equation: | | [fat_tree_tiers](#mlsysim.engine.scenario_types.TorusScenario.fat_tree_tiers) | | | [link_bandwidth](#mlsysim.engine.scenario_types.TorusScenario.link_bandwidth) | | | [n_endpoints](#mlsysim.engine.scenario_types.TorusScenario.n_endpoints) | | | [side](#mlsysim.engine.scenario_types.TorusScenario.side) | Integer side length used for the cubic-torus approximation. Equation: round the | | [torus_bisection](#mlsysim.engine.scenario_types.TorusScenario.torus_bisection) | Aggregate bandwidth of the torus cut. Equation:torus_cut_links * link_bandwidth``.
torus_cut_links Link count crossing a minimum torus bisection. Equation:
torus_diameter Longest minimum-hop path in the modeled regular torus. Equation:

n_endpoints

Type: int.

Declared default: required.

dims

Type: int.

Declared default: 3.

fat_tree_tiers

Type: int.

Declared default: 3.

side

engine.scenario_types.TorusScenario.side

Integer side length used for the cubic-torus approximation. Equation: round the dims-th root of n_endpoints. Units: endpoints per side; non-perfect powers are rounded rather than rejected.

torus_bisection

engine.scenario_types.TorusScenario.torus_bisection

Aggregate bandwidth of the torus cut. Equation: torus_cut_links * link_bandwidth. Units: bandwidth; contention and routing imbalance are excluded.

fat_tree_bisection

engine.scenario_types.TorusScenario.fat_tree_bisection

Aggregate bandwidth of the fat-tree comparison cut. Equation: fat_tree_cut_links * link_bandwidth. Units: bandwidth under the nonblocking assumption.

torus_diameter

engine.scenario_types.TorusScenario.torus_diameter

Longest minimum-hop path in the modeled regular torus. Equation: mlsysim.physics.communication.calc_torus_diameter(side, dims). Units: hops; failed links and adaptive detours are excluded.

fat_tree_path_switches

engine.scenario_types.TorusScenario.fat_tree_path_switches

Switch traversals on the comparison’s full-height fat-tree path. Equation: mlsysim.physics.communication.calc_fat_tree_path_switches(fat_tree_tiers). Units: switches; not a latency measurement.

Back to top