Predictika · Juniper AI data center fabric design

An AI agent's GPU fabric design, checked against Juniper's validated designs

An SE, a partner or an AI agent proposes the back-end fabric for a GPU cluster: which Juniper switches, how many spines, which optics, which Junos release. Before anyone orders or builds it, the proposal goes to the Predictika validator, which checks it against the rules in Juniper's published AI data center validated designs, recomputes the GPU count and the oversubscription from the servers and spines, compares them with the figures the proposal states, and returns every reason in one answer. Hard rules block; soft recommendations route to a person for approval. Nothing here is priced. This is an illustrative model built from Juniper's public documentation. HPE and Juniper are not involved with it and have not endorsed it.

Scope: GPU back-end fabric designs on Juniper QFX5220, QFX5230, QFX5240, QFX5241 and QFX5250 switches and PTX10008 spines. See everything this validator covers

This validator checks one kind of proposal: a leaf-spine (or rail-collapsed) GPU back-end fabric built from Juniper data center switches, as described in Juniper's AI data center validated designs. It handles any proposal that picks from these switches, optics and Junos releases, not only the scenarios shown on this page. It does not cover front-end or storage fabrics, configuration, or pricing.

  • Covered: sizing — GPUs from the server count (8 GPUs per server, one 400G fabric link per GPU), servers per stripe, leaf switches, uplinks and spines needed for 1:1, and the oversubscription of what is proposed. Two-to-one blocks; anything above 1:1 and below 2:1 needs approval; fewer than 4 spines needs approval.
  • Covered: hardware — optic form factor (OSFP or QSFP-DD) and speed against the switch ports, the switch models Juniper lists for leaf and spine roles, and the QFX5250-64OE-L, which is liquid cooled and installs only in ORv3 racks.
  • Covered: software and options — the Junos release for each model (below the lowest consistently documented release blocks; below the highest listed or on a different release train needs approval), load balancing, lossless configuration, Juniper-supplied versus third-party optics, and rail-collapsed limits.
  • Covered: the proposal itself — the GPU count and oversubscription the proposal states are compared with the computed figures, and a mismatch blocks.
  • Not covered — the rest of the Juniper portfolio, other GPU vendors' server specifics, cabling and breakout, power, links per leaf-spine pair, switch configuration, and any price or availability. Other areas can be added.
  • Only consistent rows are modeled — where Juniper's own documents disagree (for example the QFX5230 model name in the link table, or the stated Junos minimums), the validator models only the part that is consistent and routes the rest to approval or leaves it out.
The AI design agentProposes the GPU back-end fabric from the customer's requirements and says it is ready for the build team.
Predictika validatorChecks every rule at once and returns the verdict, each finding, and the computed figures.

9 scenarios in 5 groups · each group runs from the agent’s first attempt to the outcome · click one to switch

What the agent proposes

The AI design agent says

Illustrative agent statement. The validator receives the structured request below.

Proposing agent: AI design agent (scripted)

Before sending, the agent must call Recorded run

Predictika validator


      
Waiting for the call.

Where rules-based CPQ gets it wrong

Click to expand

Our assessment of what a typical rules-based CPQ (product rules, price rules and validation rules, as in Salesforce CPQ) does with the same cases. It is a judgment about effort and reliability, not a claim that nothing can be built.

What the validator caughtTypical rules-based CPQPredictika
Fabric sizing that derives stripes, leaves, uplinks and spines from the server countOnly with workarounds
A configurator can bundle quantities, but the counts here depend on the server count in steps (stripes of a fixed size, 8 leaves per stripe) and on the port count of the chosen spine, so each is a formula that has to be rewritten for every switch model, and a 4-spine proposal for 1,024 GPUs passes unless someone adds the arithmetic.
The stripe, leaf, uplink and spine counts are computed from the proposal on every call and compared with what was proposed; 4 spines for 1,024 GPUs comes back as 2:1 oversubscribed, with the 8 spines that 1:1 needs.
Optics against ports, and cooling against racksOnly with care
Form factor, speed and rack type are compatibility rules per switch and optic. They can be written, but each new switch or optic multiplies them, and the liquid-cooled QFX5250 adds a switch-to-rack rule.
Form factor and speed come from catalog attributes; an OSFP optic in QSFP-DD ports and a liquid-cooled switch in an air-cooled rack are both caught on the same call.
Junos release rules that differ by model and by release trainOnly with care
A minimum release per model is a list of exceptions, and comparing releases across trains (23.4X100 and 23.4R) needs a ranking that a price book does not provide.
Each model carries its release train and rank; below the lowest consistent release blocks, and a different train routes to approval.
Hard rules versus recommendations, and figures the proposal itself statesOnly with workarounds
Approval chains handle one threshold well, but here some findings block, some only need a person, and the proposal's own stated GPU count and oversubscription must be checked against the computed ones, which a rules-based tool rarely has as fields.
Each finding is labeled block or approval, and the stated figures travel with the proposal and are compared on every call.

What this validator catches: findings from its test cases

Click to expand

Every rule is checked on every call, in any order the choices arrive; one problem never hides another. Blocking findings stop the design; approval findings need a person to sign off; everything else is computed. The wording shown is an example from the test runs; the numbers change with the proposal.

1Fabric is oversubscribed (blocks): The fabric is 2.0 to 1 oversubscribed: 1024 leaf-to-spine uplinks are needed for 1:1 but 4 spines of QFX5240-64OD give 512 ports. The Juniper validated design reports congestion and traffic loss at 2:1; 1:1 needs 8 spines.
2Junos release below the validated minimum (blocks): Spine PTX10008 with JNP10K-LC1301 runs 23.4R1 but Juniper validated designs recommend at least 23.4R2-S3 for this model.
3Liquid-cooled switch in an air-cooled rack (blocks): QFX5250-64OE-L is 100 percent liquid cooled and installs in ORv3 racks (busbar power, coolant manifolds); the spine rack is an air-cooled 19-inch rack.
4Local Optimization is off (blocks): A rail-collapsed design needs Local Optimization enabled on the GPU servers so that traffic between rails stays inside the server; it is not enabled.
5Optic does not fit the switch ports (blocks): Leaf optic 400G OSFP optic has the OSFP form factor, but the ports of QFX5230-64CD are QSFP-DD ports. OSFP and QSFP-DD are different form factors and do not fit each other.
6Optic faster than the ports (blocks): Leaf optic 800G QSFP-DD optic runs at 800G but the ports of QFX5230-64CD run at up to 400G.
7Rail-collapsed design has spines (blocks): A rail-collapsed design has no spine layer, but 2 spines were proposed.
8Rail-collapsed design too large (blocks): A rail-collapsed fabric has no spine layer, so every leaf port faces a server: at most 128 servers on QFX5240-64OD and at most 1024 GPUs (Apstra rail-collapsed limit). This design has 160 servers and 1280 GPUs.
9Stated GPU count does not match (blocks): Stated GPU count does not match: the agent stated 2048; the validator computes 1920 (240 servers x 8 GPUs).
10Stated oversubscription does not match (blocks): Stated oversubscription does not match: the agent stated 1.0 to 1; the validator computes 2.0 to 1.
11Fewer than 4 spines (needs approval): 2 spines proposed. Juniper validated designs say a minimum of 4 spines must always be deployed for path diversity and to reduce PFC failure paths (a 2-spine design was found susceptible to PFC storms under dual failure with congestion).
12Junos release differs from the validated designs (needs approval): Leaf QFX5240-64OD runs 23.4X100-D31; Juniper validated designs list 23.4X100-D42 for this model (where its two designs differ, the higher is used) or a different release train.
13No lossless configuration (needs approval): No lossless configuration proposed; the validated design recommends DCQCN (PFC and ECN) for the GPU back-end fabric.
14Oversubscribed against the 1:1 target (needs approval): The fabric is 1.07 to 1 oversubscribed; the validated designs target 1:1 (they allow very low oversubscription but do not quantify it).
15Switch is not a validated spine (needs approval): QFX5250-64OE-L is not one of the GPU back-end spine models in the Juniper AI data center validated designs.
16Third-party optics (needs approval): Third-party optics are not supported by JTAC; Juniper recommends Juniper-supplied optics. Part-level optic support is in the Juniper Hardware Compatibility Tool, which this validator does not check.
17Traditional ECMP load balancing (needs approval): Traditional ECMP load balancing proposed; the validated design recommends Dynamic Load Balancing for the GPU back-end fabric.

Scenarios and results

Click to expand

The recorded result of the validator for each scenario on this page: the request the AI agent sent, the verdict, and every finding, in the order they appear above.

1. Stated figures: Stated 2,048 GPUs, built as 240 servers

The agent's request. Please check the GPU back-end fabric for Helix Systems: 240 GPU servers, which is 2,048 GPUs, built rail-optimized on QFX5240-64OD leaves with 800G OSFP optics running Junos 23.4X100-D42, and 14 QFX5240-64OD spines with 800G OSFP optics on the same release. All fabric links use Juniper-supplied optics, the racks are air-cooled 19-inch racks, load balancing is Dynamic Load Balancing, the lossless configuration is DCQCN with Local Optimization on, and the fabric is stated as 1:1. It is ready to go to the build team.

Verdict: Blocked.

  • Stated GPU count does not match. Stated GPU count does not match: the agent stated 2048; the validator computes 1920 (240 servers x 8 GPUs).
  • Stated oversubscription does not match. Stated oversubscription does not match: the agent stated 1.0 to 1; the validator computes 1.07 to 1.
  • Oversubscribed against the 1:1 target. The fabric is 1.07 to 1 oversubscribed; the validated designs target 1:1 (they allow very low oversubscription but do not quantify it).
  • Links per switch pair not checked. Juniper link table lists QFX5240-64OD to QFX5240-64OD with two 400GE links or one 800GE link per leaf-spine pair; links per pair are not checked here.

2. Stated figures: 256 servers and 16 spines

The agent's request. Please check the GPU back-end fabric for Helix Systems: 256 GPU servers, 2,048 GPUs in all, built rail-optimized on QFX5240-64OD leaves with 800G OSFP optics running Junos 23.4X100-D42, and now 16 QFX5240-64OD spines with 800G OSFP optics on the same release. All fabric links use Juniper-supplied optics, the racks are air-cooled 19-inch racks, load balancing is Dynamic Load Balancing, the lossless configuration is DCQCN with Local Optimization on, and the fabric is stated as 1:1. It is ready to go to the build team.

Verdict: Allowed.

  • Links per switch pair not checked. Juniper link table lists QFX5240-64OD to QFX5240-64OD with two 400GE links or one 800GE link per leaf-spine pair; links per pair are not checked here.

3. Oversubscription: 4 spines for 1,024 GPUs

The agent's request. Please check the GPU back-end fabric for Orion Compute: 128 GPU servers, 1,024 GPUs in all, built rail-optimized on QFX5240-64OD leaves with 800G OSFP optics running Junos 23.4X100-D42, and 4 QFX5240-64OD spines with 800G OSFP optics on the same release. All fabric links use Juniper-supplied optics, the racks are air-cooled 19-inch racks, load balancing is Dynamic Load Balancing, the lossless configuration is DCQCN with Local Optimization on, and the fabric is stated as 1:1. It is ready to go to the build team.

Verdict: Blocked.

  • Fabric is oversubscribed. The fabric is 2.0 to 1 oversubscribed: 1024 leaf-to-spine uplinks are needed for 1:1 but 4 spines of QFX5240-64OD give 512 ports. The Juniper validated design reports congestion and traffic loss at 2:1; 1:1 needs 8 spines.
  • Stated oversubscription does not match. Stated oversubscription does not match: the agent stated 1.0 to 1; the validator computes 2.0 to 1.
  • Links per switch pair not checked. Juniper link table lists QFX5240-64OD to QFX5240-64OD with two 400GE links or one 800GE link per leaf-spine pair; links per pair are not checked here.

4. Oversubscription: 8 spines for 1,024 GPUs

The agent's request. Please check the GPU back-end fabric for Orion Compute: 128 GPU servers, 1,024 GPUs in all, built rail-optimized on QFX5240-64OD leaves with 800G OSFP optics running Junos 23.4X100-D42, and now 8 QFX5240-64OD spines with 800G OSFP optics on the same release. All fabric links use Juniper-supplied optics, the racks are air-cooled 19-inch racks, load balancing is Dynamic Load Balancing, the lossless configuration is DCQCN with Local Optimization on, and the fabric is stated as 1:1. It is ready to go to the build team.

Verdict: Allowed.

  • Links per switch pair not checked. Juniper link table lists QFX5240-64OD to QFX5240-64OD with two 400GE links or one 800GE link per leaf-spine pair; links per pair are not checked here.

5. Spine count: A 2-spine pilot

The agent's request. Please check the GPU back-end fabric for Larkspur AI Lab: 32 GPU servers, 256 GPUs in all, built rail-optimized on QFX5240-64OD leaves with 800G OSFP optics running Junos 23.4X100-D42, and 2 QFX5240-64OD spines with 800G OSFP optics on the same release. All fabric links use Juniper-supplied optics, the racks are air-cooled 19-inch racks, load balancing is Dynamic Load Balancing, the lossless configuration is DCQCN with Local Optimization on, and the fabric is stated as 1:1. It is ready to go to the build team.

Verdict: Needs approval.

  • Fewer than 4 spines. 2 spines proposed. Juniper validated designs say a minimum of 4 spines must always be deployed for path diversity and to reduce PFC failure paths (a 2-spine design was found susceptible to PFC storms under dual failure with congestion).
  • Links per switch pair not checked. Juniper link table lists QFX5240-64OD to QFX5240-64OD with two 400GE links or one 800GE link per leaf-spine pair; links per pair are not checked here.

6. Spine count: The pilot with 4 spines

The agent's request. Please check the GPU back-end fabric for Larkspur AI Lab: 32 GPU servers, 256 GPUs in all, built rail-optimized on QFX5240-64OD leaves with 800G OSFP optics running Junos 23.4X100-D42, and now 4 QFX5240-64OD spines with 800G OSFP optics on the same release. All fabric links use Juniper-supplied optics, the racks are air-cooled 19-inch racks, load balancing is Dynamic Load Balancing, the lossless configuration is DCQCN with Local Optimization on, and the fabric is stated as 1:1. It is ready to go to the build team.

Verdict: Allowed.

  • Links per switch pair not checked. Juniper link table lists QFX5240-64OD to QFX5240-64OD with two 400GE links or one 800GE link per leaf-spine pair; links per pair are not checked here.

7. Optics and Junos release: OSFP optics on QSFP-DD ports, PTX on 23.4R1

The agent's request. Please check the GPU back-end fabric for Cobalt Cloud: 256 GPU servers, 2,048 GPUs in all, built rail-optimized on QFX5230-64CD leaves with 400G OSFP optics running Junos 23.4X100-D20, and 4 PTX10008 spines with JNP10K-LC1301 line cards, 400G QSFP-DD optics and Junos 23.4R1. All fabric links use Juniper-supplied optics, the racks are air-cooled 19-inch racks, load balancing is Dynamic Load Balancing, the lossless configuration is DCQCN with Local Optimization on, and the fabric is stated as 1:1. It is ready to go to the build team.

Verdict: Blocked.

  • Optic does not fit the switch ports. Leaf optic 400G OSFP optic has the OSFP form factor, but the ports of QFX5230-64CD are QSFP-DD ports. OSFP and QSFP-DD are different form factors and do not fit each other.
  • Junos release below the validated minimum. Spine PTX10008 with JNP10K-LC1301 runs 23.4R1 but Juniper validated designs recommend at least 23.4R2-S3 for this model.
  • Links per switch pair not checked. Juniper link table has no consistent row for QFX5230-64CD to PTX10008 with JNP10K-LC1301, so links per leaf-spine pair are not checked.

8. Optics and Junos release: QSFP-DD optics, PTX on 23.4R2-S3

The agent's request. Please check the GPU back-end fabric for Cobalt Cloud: 256 GPU servers, 2,048 GPUs in all, built rail-optimized on QFX5230-64CD leaves with 400G QSFP-DD optics running Junos 23.4X100-D20, and 4 PTX10008 spines with JNP10K-LC1301 line cards, 400G QSFP-DD optics and Junos 23.4R2-S3. All fabric links use Juniper-supplied optics, the racks are air-cooled 19-inch racks, load balancing is Dynamic Load Balancing, the lossless configuration is DCQCN with Local Optimization on, and the fabric is stated as 1:1. It is ready to go to the build team.

Verdict: Allowed.

  • Links per switch pair not checked. Juniper link table has no consistent row for QFX5230-64CD to PTX10008 with JNP10K-LC1301, so links per leaf-spine pair are not checked.

9. Cooling: QFX5250 spines in an air-cooled rack

The agent's request. Please check the GPU back-end fabric for Nimbus Grid: 128 GPU servers, 1,024 GPUs in all, built rail-optimized on QFX5240-64OD leaves with 800G OSFP optics running Junos 23.4X100-D42, and 4 QFX5250-64OE-L spines with 800G OSFP optics. All fabric links use Juniper-supplied optics, the racks are air-cooled 19-inch racks, load balancing is Dynamic Load Balancing, the lossless configuration is DCQCN with Local Optimization on, and the fabric is stated as 1:1. It is ready to go to the build team.

Verdict: Blocked.

  • Liquid-cooled switch in an air-cooled rack. QFX5250-64OE-L is 100 percent liquid cooled and installs in ORv3 racks (busbar power, coolant manifolds); the spine rack is an air-cooled 19-inch rack.
  • Switch is not a validated spine. QFX5250-64OE-L is not one of the GPU back-end spine models in the Juniper AI data center validated designs.
  • Links per switch pair not checked. Juniper link table has no consistent row for QFX5240-64OD to QFX5250-64OE-L, so links per leaf-spine pair are not checked.

Narration transcript

Click to expand

The text of the narrated walkthrough, step by step.

  1. Welcome to a demo of Predictika's Validator. An SE, a partner or an AI agent proposes the back-end fabric for a GPU cluster: which Juniper switches, how many spines, which optics, and more. Before anyone orders or builds it, the proposal goes to the Predictika validator, which checks it against the rules in Juniper's published AI data center validated designs, recomputes the GPU count and the oversubscription from the servers and spines, compares them with the figures the proposal states, and returns every reason in one answer. Hard rules block; soft recommendations route to a person for approval. Nothing here is priced. This is an illustrative model built from Juniper's public documentation. HPE and Juniper are not involved with it and have not endorsed it.
  2. I will start with the first request by the agent.
  3. The agent says. Please check the GPU back-end fabric for Helix Systems: 240 GPU servers, which is 2,048 GPUs, built rail-optimized on QFX5240-64OD leaves with 800G OSFP optics running Junos 23.4X100-D42. All fabric links use Juniper-supplied optics, the racks are air-cooled 19-inch racks, load balancing is Dynamic Load Balancing, the lossless configuration is DCQCN with Local Optimization on. The rest of the request is on screen.
  4. Before it goes out, the agent calls the validator.
  5. Blocked, with two findings and one approval, all in one answer. Stated GPU count does not match: the agent stated 2048; the validator computes 1920 (240 servers x 8 GPUs). Stated oversubscription does not match: the agent stated 1.0 to 1; the validator computes 1.07 to 1.
  6. The validator returned two blocking findings and one approval in one answer. A check that reads one field at a time would pass most of this; it shows only when the choices in the design are checked against each other.
  7. What this shows: for fabric sizing that derives stripes, leaves, uplinks and spines from the server count, a rules-based CPQ can do this only with workarounds.
  8. Now the agent resubmits.
  9. The corrected request. It changes the GPU servers to 256 and the spines to 16.
  10. It calls the validator again.
  11. This time the validator clears it.
  12. The validator also returns the line-item quote. It starts with 8-GPU servers and QFX5240-64OD leaf switches; the other two lines are on screen.
  13. All three earlier findings are cleared, and the validator's figure matches the design.
  14. Three problems caught in one call, fixed in one pass, and a clean design. That is the value of Predictika's validator: catching mistakes before they reach the build.