Skip to main content

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)
2048

Attributes

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.

Back to top