Stage H: DoE rebuilt on BIRTH/SEND/KILL, defs-only workloads; work heat floor on contact (FABRIC-3.8 §3.9, §3.13.7)
Workload capsules the DoE births are definitions only; each defines WL-RUN (its old birth-time work plus its entry word twice) and WL-DONE-ARGS. The driver births N workers, SENDs each 'WL-RUN WL-DONE-ARGS SEND', waits in an ordinary loop for N MU-DONE messages, KILLs them (parked idle), and emits the marker. The serialized VM-EXEC round-robin is gone. Kernel: no switch checkpoint after a payload's last word; work heat is the assessed per-beat charge, and a VM gaining work is raised to the busy set's floor (Captain Bob's ruling) -- fixes a live stall where a busy-waiting Hera never yielded, without serializing batch starts. Evidence: cfg-4 rows spread evenly over Hera and all 8 worker slots (44k switches); full cfg-4 trials on amd64/aarch64/riscv64 end fail=0 with 8/8 KILL dead; Stage G interleave byte-identical on all three. Acceptance: dict_hash unchanged, relay 3, idle growth 0. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
81def7b4a5
commit
f152a91099
+18
-31
@@ -29,19 +29,14 @@ Block 5045
|
||||
ENDCASE ;
|
||||
|
||||
Block 5046
|
||||
: WL-ENTRY ( idx -- c-addr u )
|
||||
CASE
|
||||
0 OF S" RUN-TRANSPOSE" ENDOF
|
||||
1 OF S" MICRO-BURST" ENDOF
|
||||
2 OF S" RUN-SAW" ENDOF
|
||||
3 OF S" DUAL-SINE" ENDOF
|
||||
4 OF S" RUN-PI" ENDOF
|
||||
5 OF S" CHAOS-FIELD" ENDOF
|
||||
6 OF S" RUN-OMNI" ENDOF
|
||||
7 OF S" RUN-MMUL" ENDOF
|
||||
8 OF S" RUN-FIB" ENDOF
|
||||
9 OF S" RUN-SAW" ENDOF
|
||||
ENDCASE ;
|
||||
( FABRIC-3.8 3.9 Stage H: workers are born defs-only and )
|
||||
( each is SENT one job. WL-RUN, defined in every workload )
|
||||
( capsule, is its old birth-time tail plus its entry word )
|
||||
( twice, as the old two VM-EXEC passes did. The LAST word )
|
||||
( of the job SENDs MU-DONE back to Hera, who counts them. )
|
||||
VARIABLE MU-DONE-COUNT
|
||||
: MU-DONE ( -- ) MU-DONE-COUNT @ 1+ MU-DONE-COUNT ! ;
|
||||
: MU-JOB ( -- c-addr u ) S" WL-RUN WL-DONE-ARGS SEND" ;
|
||||
|
||||
Block 5047
|
||||
: MU-WORKER-NAME ( n -- c-addr u )
|
||||
@@ -66,17 +61,12 @@ Block 5048
|
||||
WL-CAPSULE
|
||||
MU-TMP-NC @ MU-TMP-NU @
|
||||
WORKER-BIRTH ;
|
||||
: MU-TOUCH-WORKER ( wl-idx worker-n -- )
|
||||
MU-WORKER-NAME MU-TMP-NU ! MU-TMP-NC !
|
||||
WL-ENTRY
|
||||
MU-TMP-NC @ MU-TMP-NU @
|
||||
VM-EXEC ;
|
||||
|
||||
Block 5049
|
||||
VARIABLE MU-FAIL-COUNT
|
||||
: MU-CHECK-WORKER ( worker-n -- )
|
||||
MU-WORKER-NAME VM-ERROR?
|
||||
IF MU-FAIL-COUNT @ 1+ MU-FAIL-COUNT ! THEN ;
|
||||
: MU-SEND-WORKER ( worker-n -- )
|
||||
MU-JOB ROT MU-WORKER-NAME SEND 0= IF
|
||||
MU-FAIL-COUNT @ 1+ MU-FAIL-COUNT ! MU-DONE THEN ;
|
||||
: MU-KILL-WORKER ( worker-n -- )
|
||||
MU-WORKER-NAME KILL ;
|
||||
CREATE MU-RUN-MATRIX MU-MAX-RUNS CELLS ALLOT
|
||||
@@ -125,14 +115,12 @@ Block 5052
|
||||
MU-NW @ 0 DO
|
||||
MU-MODE @ I MU-WL-FOR I MU-BIRTH-WORKER DROP
|
||||
LOOP ;
|
||||
: MU-TOUCH-ALL ( -- )
|
||||
: MU-SEND-ALL ( -- )
|
||||
MU-NW @ 0 DO
|
||||
MU-MODE @ I MU-WL-FOR I MU-TOUCH-WORKER
|
||||
LOOP ;
|
||||
: MU-CHECK-ALL ( -- )
|
||||
MU-NW @ 0 DO
|
||||
I MU-CHECK-WORKER
|
||||
I MU-SEND-WORKER
|
||||
LOOP ;
|
||||
: MU-WAIT-ALL ( -- )
|
||||
BEGIN MU-DONE-COUNT @ MU-NW @ < WHILE REPEAT ;
|
||||
|
||||
Block 5053
|
||||
: MU-KILL-ALL ( -- )
|
||||
@@ -141,13 +129,12 @@ Block 5053
|
||||
LOOP ;
|
||||
: MU-RUN-TRIAL ( cfg rep run-id -- )
|
||||
MU-RUN-ID ! MU-REP ! MU-CFG !
|
||||
0 MU-FAIL-COUNT !
|
||||
0 MU-FAIL-COUNT ! 0 MU-DONE-COUNT !
|
||||
MU-CFG @ MU-CONC-OF MU-NW !
|
||||
MU-CFG @ MU-MODE-OF MU-MODE !
|
||||
MU-BIRTH-ALL
|
||||
MU-TOUCH-ALL
|
||||
MU-TOUCH-ALL
|
||||
MU-CHECK-ALL
|
||||
MU-SEND-ALL
|
||||
MU-WAIT-ALL
|
||||
MU-KILL-ALL
|
||||
MU-EMIT-TRIAL-MARKER ;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user