experiment: add workload regime taxonomy

This commit is contained in:
2026-07-20 17:36:02 +08:00
parent 39766141fb
commit 75946d9d73
7 changed files with 713 additions and 14 deletions

View File

@@ -0,0 +1,73 @@
#!/usr/bin/env python3
"""Render the review-only schematic for the workload-regime experiment card."""
from pathlib import Path
import matplotlib.pyplot as plt
import numpy as np
def logistic(x: np.ndarray, center: float, width: float) -> np.ndarray:
return 1.0 / (1.0 + np.exp(-(x - center) / width))
rho = np.linspace(0.02, 1.25, 300)
families = {
"homogeneous / real": (0.54, "#1f77b4", "-"),
"homogeneous / simulator": (0.36, "#1f77b4", "--"),
"heterogeneous / real": (0.76, "#d95f02", "-"),
"heterogeneous / simulator": (0.68, "#d95f02", "--"),
}
fig, axes = plt.subplots(1, 2, figsize=(11.5, 4.6), constrained_layout=True)
for label, (center, color, style) in families.items():
state = 0.1 + 0.82 * logistic(rho, center, 0.055)
axes[0].plot(rho, state, color=color, linestyle=style, linewidth=2.2, label=label)
axes[0].axhline(0.5, color="0.35", linewidth=1, linestyle=":")
axes[0].set(
title="A. Closed-loop scheduler-state knee",
xlabel="Normalized decode offered load, ρ",
ylabel="State index (batch / occupancy)",
xlim=(0, 1.25),
ylim=(0, 1.02),
)
axes[0].legend(frameon=False, fontsize=8, loc="lower right")
homogeneous_slack = 0.32 - 0.82 * np.exp(-((rho - 0.45) / 0.18) ** 2) - 0.12 * rho
heterogeneous_slack = 0.38 - 0.43 * np.exp(-((rho - 0.72) / 0.20) ** 2) - 0.10 * rho
capacity_aligned = 0.18 + 0.18 * logistic(rho, 0.83, 0.07)
axes[1].plot(rho, homogeneous_slack, color="#1f77b4", linewidth=2.2, label="homogeneous")
axes[1].plot(rho, heterogeneous_slack, color="#d95f02", linewidth=2.2, label="heterogeneous")
axes[1].plot(rho, capacity_aligned, color="#2a9d8f", linewidth=2.2, label="capacity-aligned")
axes[1].axhline(0, color="black", linewidth=1.2)
axes[1].fill_between(rho, -0.55, 0, color="#d62728", alpha=0.09, label="ranking reversal")
axes[1].set(
title="B. Config-ranking decision boundary",
xlabel="Normalized decode offered load, ρ",
ylabel="Minimum signed decision slack",
xlim=(0, 1.25),
ylim=(-0.55, 0.55),
)
axes[1].legend(frameon=False, fontsize=8, loc="lower right")
for ax in axes:
ax.grid(alpha=0.18)
ax.text(
0.5,
0.94,
"MOCK / SCHEMATIC — NOT DATA",
transform=ax.transAxes,
ha="center",
va="top",
fontsize=10,
fontweight="bold",
color="#9d0208",
bbox={"facecolor": "white", "edgecolor": "#9d0208", "alpha": 0.86},
)
out = Path(__file__).with_name("mock_workload_regime_boundary.png")
fig.savefig(out, dpi=180)
print(out)