FatTreeScenario
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.
A non-blocking fat-tree of radix-radix switches (Al-Fares et al. 2008).
Notes
Equation: Compose mlsysim.physics.communication.calc_fat_tree_hosts, mlsysim.physics.communication.calc_fat_tree_switches.
Assumptions: The topology is a fully populated nonblocking fat-tree with an even radix, as specified by the communication helpers.
Excludes: Partial population, oversubscription, faults, and routing imbalance are absent.
References
Derivation: this scenario binds its input fields to the referenced implementation contracts: mlsysim.physics.communication.calc_fat_tree_hosts, mlsysim.physics.communication.calc_fat_tree_switches. The methods below identify any additional arithmetic.
Examples
>>> from mlsysim import Scenarios
>>> case = Scenarios.FatTreeNdrSwitch
>>> round(case.two_tier_hosts, 4)
2048Attributes
| Name | Description |
|---|---|
| pod_hosts | Hosts in one standard fat-tree pod. Equation: (radix // 2) ** 2. Units: hosts; an |
| radix | |
| three_tier_hosts | Host count for the three-tier specialization. Equation: hosts(3). Units: hosts; uses |
| three_tier_switches | Switch count for the three-tier specialization. Equation: switches(3). Units: |
| two_tier_hosts | Host count for the two-tier specialization. Equation: hosts(2). Units: hosts; uses |
Methods
| Name | Description |
|---|---|
| hosts | Host count supported by a full nonblocking fat-tree at a chosen tier count. Equation: |
| switches | Switch count for the chosen full fat-tree. Equation: |
hosts
engine.scenario_types.FatTreeScenario.hosts(tiers)Host count supported by a full nonblocking fat-tree at a chosen tier count. Equation: mlsysim.physics.communication.calc_fat_tree_hosts(radix, tiers). Units: hosts; topology restrictions come from the helper.
switches
engine.scenario_types.FatTreeScenario.switches(tiers)Switch count for the chosen full fat-tree. Equation: mlsysim.physics.communication.calc_fat_tree_switches(radix, tiers). Units: switches; partial population is excluded.
radix
Type: int.
Declared default: required.
two_tier_hosts
engine.scenario_types.FatTreeScenario.two_tier_hosts
Host count for the two-tier specialization. Equation: hosts(2). Units: hosts; uses the same radix and nonblocking port allocation.
three_tier_hosts
engine.scenario_types.FatTreeScenario.three_tier_hosts
Host count for the three-tier specialization. Equation: hosts(3). Units: hosts; uses the same radix and nonblocking port allocation.
three_tier_switches
engine.scenario_types.FatTreeScenario.three_tier_switches
Switch count for the three-tier specialization. Equation: switches(3). Units: switches; all topology levels are populated.
pod_hosts
engine.scenario_types.FatTreeScenario.pod_hosts
Hosts in one standard fat-tree pod. Equation: (radix // 2) ** 2. Units: hosts; an even switch radix is assumed.