Skip to content

Commit c26beed

Browse files
committed
[fix.execution.λ.D8+] Bind GPU acceptance to verified inventory
The live same-GPU handoff reached GPU admission and correctly rejected the fixture's stale fp64 assumption against the measured blackwell/fp32 node. Construct each GPU acceptance request from the adapter's verified inventory so the test exercises Kueue exclusivity instead of bypassing the production placement contract. Keep the seven-second Pod deadline unchanged but give the harness sixty seconds to observe queue admission, startup, deadline termination, and status convergence. Regenerate the architecture twin after the harness repair.
1 parent 85da3c1 commit c26beed

3 files changed

Lines changed: 108 additions & 70 deletions

File tree

‎deploy/kubernetes/adversarial_verify.py‎

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,10 @@ def security_boundary(verify: Verification) -> dict[str, Any]:
299299
def hard_walltime(verify: Verification) -> dict[str, Any]:
300300
instance = adapter(["/bin/sh", "-c", "echo WALLTIME_STARTED; sleep 30"], BUSYBOX)
301301
status = verify.submit(instance, request(20, image=BUSYBOX, walltime=7))
302-
final = wait_status(instance, status.allocation_id, timeout=30)
302+
# The walltime starts only after Kueue resumes the Pod. Keep the execution
303+
# deadline at seven seconds while allowing independent queue/start/terminal
304+
# observation latency in the acceptance harness.
305+
final = wait_status(instance, status.allocation_id, timeout=60)
303306
assert final.state == "failed"
304307
reasons = [item.get("reason") for item in final.scheduler_summary["conditions"]]
305308
reasons.extend(item.get("reason")
@@ -428,8 +431,17 @@ def gpu_exclusive(verify: Verification, round_number: int) -> dict[str, Any]:
428431
"--loop=1",
429432
]
430433
instances = [adapter(command, GPU_OPERATOR), adapter(command, GPU_OPERATOR)]
431-
statuses = [verify.submit(instances[index], request(
432-
base + index, image=GPU_OPERATOR, gpus=1, walltime=6
434+
gpu = instances[0].health()["gpu"]
435+
436+
def bound_gpu_request(number: int, *, walltime: int) -> dict[str, Any]:
437+
value = request(number, image=GPU_OPERATOR, gpus=1, walltime=walltime)
438+
value["resource_request"]["gpu_arch"] = [gpu["arch"]]
439+
value["determinism"]["numeric_mode"] = gpu["numeric_mode"]
440+
value["placement"]["node_constraints"] = gpu["node_selector"]
441+
return value
442+
443+
statuses = [verify.submit(instances[index], bound_gpu_request(
444+
base + index, walltime=6
433445
)) for index in range(2)]
434446
max_reserved = 0
435447
saw_second_waiting = False
@@ -472,8 +484,7 @@ def gpu_exclusive(verify: Verification, round_number: int) -> dict[str, Any]:
472484
assert all(postmortem_logs)
473485

474486
smoke = adapter(command[:-1], GPU_OPERATOR)
475-
smoke_status = verify.submit(smoke, request(base + 2, image=GPU_OPERATOR,
476-
gpus=1, walltime=30))
487+
smoke_status = verify.submit(smoke, bound_gpu_request(base + 2, walltime=30))
477488
smoke_final = wait_status(smoke, smoke_status.allocation_id, timeout=30)
478489
smoke_logs = smoke.logs(smoke_status.allocation_id).strip()
479490
assert smoke_final.state == "succeeded" and "RTX 5080" in smoke_logs

‎docs/architecture/dirac-digital-twin.html‎

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)