ken Front matter I · Curriculum II · Methods Instrument Procedure Shapes WP1 WP2 WP3 WP4 Register Log III · Protocol
ken · volume 1 Procedure

The Standard Run

Six turns in four stages. Use this shape for every comparison.

Written to the structural rules of ASD-STE100 · runshape.mjs

About the language of this page

This page is a test. It follows the structural rules of ASD-STE100 Simplified Technical English. It does not follow the dictionary rule. Part 2 of that specification has a licence, and we do not hold one.

This page is therefore not in Simplified Technical English. It satisfies a subset. Section 6 gives the measurement.

1Purpose

This procedure gives the standard run. Use it for each comparison that this programme publishes. A fixed shape makes two runs comparable. It also makes the cost countable before you spend it.

2The shape

Table 1. The four stages.
StageNameAgentsTurnsRole
1Setup11Block. Prepares the state.
2Wave A22Treatment. A matched pair.
3Wave B22Treatment. A matched pair.
4Cleanup11Block. Collects the result.

The run has six turns. It has four stages. No stage uses more than two agents.

3The reason for two agents in a wave

Give the two agents in a wave the same state. Then the wave is a matched pair. A matched pair removes the task difficulty from the difference between the two conditions. This cuts the runs you need by a factor of (1 − ρ).

The saving is not automatic. It depends on how you dispatch the wave. Give the two agents different state. The wave then becomes two independent draws. The saving is then lost.

Warning

Do not vary the brief between the two agents in one wave. Vary only the condition under test. If you vary both, you cannot separate them.

4Procedure

4.1 Before the run

  1. Write the scorer. Write it before the brief.
  2. Score the current code with the scorer. Confirm that it fails.
  3. Score a minimal correct answer. Confirm that it scores full marks.
  4. Set the number of runs. Use costInRuns() in runshape.mjs.
  5. Fix the stopping rule. Write it down before the first turn.
  6. Name the person who does the human tier. Give a date.
  7. Simulate the design. Report what the simulation gives.

4.2 During the run

  1. Run stage 1. Record the state that it produces.
  2. Dispatch wave A. Give both agents the same state.
  3. Record which agent got which condition.
  4. Wait for both agents. Do not start stage 3 early.
  5. Dispatch wave B. Give both agents the same state again.
  6. Run stage 4. Collect every output.

4.3 After the run

  1. Report the score variance across cells.
  2. Report the number of distinct score values.
  3. Report the share of cells at the maximum.
  4. Stop here if more than 70% of cells sit at the maximum. The run did not discriminate.
  5. Report the spread within a cell next to the difference between cells.
  6. Name each signal that did not fire. Put the names in the report header.
  7. Check each field that orders the report. Report a field that failed.

5The plan is a graph

The shape above is a graph. We write it as rewrite rules, not as a list of stages. The laws come from morph, which takes them from MorphoHDL.

  1. A cell is a rewrite rule. A stage expands into sub-stages and wires them.
  2. The bus sets the width. A wave is as wide as the condition bus. One definition covers two conditions and six.
  3. The only control flow is failure. A wave on a one-condition bus fails. A run past the budget fails. The planner unwinds to the fallback of that cell.
  4. Probe and build are one interpreter. A flag switches them. The cost estimate therefore cannot drift from the plan it estimates.

Law 4 is the reason to do this. A cost table kept beside a runner drifts from it. One interpreter does not drift. The selftest checks that the two agree over six designs.

Law 3 replaces the stopping rule with the same mechanism that ends the recursion. Give the planner a budget of 20 turns. Then ask it for ten runs. It builds three and records why.

setup 1 · depth 0setup 1A1·control · depth 1A1·controlA1·treatment · depth 1A1·treatmentB1·control · depth 2B1·controlB1·treatment · depth 2B1·treatmentcleanup 1 · depth 3cleanup 1setup 2 · depth 0setup 2A2·control · depth 1A2·controlA2·treatment · depth 1A2·treatmentB2·control · depth 2B2·controlB2·treatment · depth 2B2·treatmentcleanup 2 · depth 3cleanup 2setup 3 · depth 0setup 3A3·control · depth 1A3·controlA3·treatment · depth 1A3·treatmentB3·control · depth 2B3·controlB3·treatment · depth 2B3·treatmentcleanup 3 · depth 3cleanup 30123
Figure 1. Three standard runs over two conditions. 18 turns, depth 3. Each condition is a lane. The vertical axis is depth, computed by a Kahn pass, so height means elapsed time. No coordinate in this figure was written by hand.
setup 1 · depth 0setup 1A1·a · depth 1A1·aA1·b · depth 1A1·bA1·c · depth 1A1·cA1·d · depth 1A1·dB1·a · depth 2B1·aB1·b · depth 2B1·bB1·c · depth 2B1·cB1·d · depth 2B1·dcleanup 1 · depth 3cleanup 1setup 2 · depth 0setup 2A2·a · depth 1A2·aA2·b · depth 1A2·bA2·c · depth 1A2·cA2·d · depth 1A2·dB2·a · depth 2B2·aB2·b · depth 2B2·bB2·c · depth 2B2·cB2·d · depth 2B2·dcleanup 2 · depth 3cleanup 20123
Figure 2. The same cell over a four-condition bus. The wave widened because the bus did. The depth did not change, and neither did any geometry.
setup 1 · depth 0setup 1A1·solo · depth 1A1·soloB1·solo · depth 2B1·solocleanup 1 · depth 3cleanup 1setup 2 · depth 0setup 2A2·solo · depth 1A2·soloB2·solo · depth 2B2·solocleanup 2 · depth 3cleanup 20123
Figure 3. A bus of one cannot split. Each wave fails and falls back to a single degraded arm, drawn dashed. The run still completes, at 8 turns instead of 12, and the failure is on the record.

The layout is a force relaxation. It uses repulsion between nodes, springs along the edges weighted by endpoint degree, and a weak centring pull. Only x relaxes. We pin y to depth.

The layout settles to the same place from any seed, to about one part in ten million. The picture is therefore a function of the graph. It is not a function of a lucky start.

6Cost

One run costs six turns. The table gives the cost of one comparison. It uses ρ = 0.413. That is the only value this programme has measured. Its 95% interval is [0.00, 0.88]. Read each row as an order of magnitude.

Table 2. Cost of one two-condition comparison at 5% significance and 80% power. Computed by costInRuns().
Effect dUnpaired runsPaired runsPaired turns
0.33502061236
0.512674444
0.85030180
1.2221484
Table 3. What a turn budget reaches. Computed by budgetLadder().
TurnsRunsDetectable d
2442.15
4881.52
96161.07
144240.88
288480.62
480800.48

Read Table 3 first. A large effect costs 180 turns. A medium effect costs 444 turns. Decide which effect is worth the price. Decide it before the first turn.

7Result of the language test

We wrote this page to the rules. We did not write the other pages to them. The lint counts violations per 100 sentences.

Table 4. Structural violations per 100 sentences. Lower is closer to the standard.
PageSentencesLongestPer 100
This page127180
/methods2215031
/lab903732
/log7974728
/wp11093923
/wp23195333

8Limits

ken · procedure · the standard run
Table 2 and Table 3 are recomputed from ken/lab/runshape.mjs on each build. Table 4 is recomputed by ken/lab/ste-lint.mjs.