File size: 5,229 Bytes
0c6c82c
 
94910ac
d2258e5
 
94910ac
 
 
 
 
 
 
8f91935
 
 
 
 
 
44745f2
0c6c82c
ce2d64b
0c6c82c
 
 
 
 
 
 
 
44745f2
ce2d64b
0c6c82c
94910ac
 
 
d2258e5
94910ac
8f91935
 
 
0c6c82c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44745f2
 
 
 
 
 
 
ce2d64b
 
 
 
 
 
 
 
e5c4ee4
 
 
 
 
 
94910ac
 
 
 
 
 
d2258e5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8f91935
 
 
 
 
 
 
 
ce2d64b
 
 
 
 
 
 
 
0c6c82c
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
from __future__ import annotations

from .agentic import (
    adaptive_alpha_sweep,
    adaptive_tiering_study,
    agent_affinity_sweep,
    agent_memory_budget_sweep,
    compare_agent_memory_policies,
    compare_agent_policies,
    run_agent_session_simulation,
    ttl_retention_sweep,
)
from .execution import (
    execution_decay_sweep,
    execution_prefetch_study,
    execution_threshold_sweep,
    run_execution_learning,
)
from .optimizer import capacity_search, compare_schedulers, compare_topologies, design_space_search
from .profiles import ACCELERATORS, MODELS
from .research import STUDIES, paired_study, robustness_study
from .simulator import SCHEDULERS, run_simulation


def metadata() -> dict:
    return {
        "models": list(MODELS.keys()),
        "accelerators": list(ACCELERATORS.keys()),
        "schedulers": sorted(SCHEDULERS),
        "topologies": ["colocated", "disaggregated_pd"],
        "research_studies": STUDIES,
        "profile_type": "analytical-reference",
        "agentic_modes": [
            "session_simulation", "policy_compare", "ttl_sweep",
            "memory_policy_compare", "memory_budget_sweep", "affinity_sweep",
            "predictive_tiering", "adaptive_alpha_sweep",
        ],
        "execution_learning_modes": [
            "single_run", "prefetch_policy_compare", "confidence_threshold_sweep", "transition_decay_sweep",
        ],
    }


def execute(action: str, payload: dict) -> dict:
    if action == "simulate":
        return run_simulation(payload)
    if action == "capacity":
        config = payload.get("config", payload)
        return capacity_search(
            config,
            min_rate=float(payload.get("min_rate", 0.25)),
            max_rate=float(payload.get("max_rate", 32.0)),
            iterations=int(payload.get("iterations", 8)),
            repetitions=int(payload.get("repetitions", 2)),
            headroom=float(payload.get("headroom", 0.20)),
        )
    if action == "compare":
        config = payload.get("config", payload)
        return compare_schedulers(config, payload.get("schedulers"))
    if action == "topology_compare":
        config = payload.get("config", payload)
        return compare_topologies(config)
    if action == "design_space":
        config = payload.get("config", payload)
        return design_space_search(config, bool(payload.get("include_disaggregated", True)))
    if action == "paired_study":
        config = payload.get("config", payload)
        return paired_study(
            config,
            study=str(payload.get("study", "prefix_cache")),
            repetitions=int(payload.get("repetitions", 12)),
            bootstrap_samples=int(payload.get("bootstrap_samples", 500)),
        )
    if action == "agent_simulate":
        return run_agent_session_simulation(payload.get("config", payload))
    if action == "agent_compare":
        return compare_agent_policies(payload.get("config", payload))
    if action == "agent_ttl_sweep":
        return ttl_retention_sweep(payload.get("config", payload), payload.get("ttl_values"))
    if action == "agent_memory_compare":
        return compare_agent_memory_policies(payload.get("config", payload))
    if action == "agent_memory_sweep":
        return agent_memory_budget_sweep(payload.get("config", payload), payload.get("budget_multipliers"))
    if action == "agent_affinity_sweep":
        return agent_affinity_sweep(payload.get("config", payload), payload.get("slack_values_ms"))
    if action == "agent_predictive_tiering":
        return adaptive_tiering_study(
            payload.get("config", payload),
            horizon_s=float(payload.get("horizon_s", 120.0)),
            shift_fraction=float(payload.get("shift_fraction", 0.55)),
            shift_multiplier=float(payload.get("shift_multiplier", 2.5)),
            alpha=float(payload.get("alpha", 0.30)),
        )
    if action == "agent_adaptive_alpha_sweep":
        return adaptive_alpha_sweep(
            payload.get("config", payload),
            payload.get("alpha_values"),
            horizon_s=float(payload.get("horizon_s", 120.0)),
            shift_fraction=float(payload.get("shift_fraction", 0.55)),
            shift_multiplier=float(payload.get("shift_multiplier", 2.5)),
        )
    if action == "execution_learning_run":
        return run_execution_learning(payload.get("config", payload))
    if action == "execution_prefetch_study":
        return execution_prefetch_study(payload.get("config", payload))
    if action == "execution_threshold_sweep":
        return execution_threshold_sweep(payload.get("config", payload), payload.get("thresholds"))
    if action == "execution_decay_sweep":
        return execution_decay_sweep(payload.get("config", payload), payload.get("decay_values"))
    if action == "robustness_study":
        config = payload.get("config", payload)
        return robustness_study(
            config,
            study=str(payload.get("study", "pd_vs_colocated")),
            samples=int(payload.get("samples", 32)),
            uncertainty=float(payload.get("uncertainty", 0.20)),
        )
    if action == "metadata":
        return metadata()
    raise ValueError(f"Unknown action: {action}")