Fix extract_doe_region.py SLOT_FMT drift; regenerate report with real data
FABRIC-3.md §XXXV.15. §XXXV.12 added an explicit _align_pad field to doe_trial_slot_t to fix a struct-alignment bug, but never updated the Python extractor's SLOT_FMT/SLOT_CRC_SPAN to match -- every field after isa was read from the wrong byte offset, so slot_crc read wrong bytes entirely and every legitimate record (including the real, live campaign's own first two clean trials) was flagged as CRC-corrupt. Fixed; SLOT_SIZE assertion tightened from <= to == to catch this drift immediately next time. Regenerated multiuser_doe_report.pdf against the real campaign's actual first two trials: run=0 (cfg=0, nw=2, uniform, fail=0) and run=1 (cfg=5, nw=8, heterogeneous, fail=0), both fleet_conserved=1 at exactly Q48.16 1.0. Real report, real data, first time this has happened for this campaign. disk/artemis.img itself and the live campaign's log directory are deliberately left uncommitted -- still being written by the running campaign. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BWpNjdwPtFLuVLaAq44L9K
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
553ca9163d
commit
9aebbb224b
+14
@@ -5855,3 +5855,17 @@ That is the natural mechanism a real fix would hook, not something to build from
|
|||||||
with the workflow") -- find and log these live, keep the campaign running, don't stop to fix
|
with the workflow") -- find and log these live, keep the campaign running, don't stop to fix
|
||||||
each one as found. Real feature, real gap, deliberately deferred.
|
each one as found. Real feature, real gap, deliberately deferred.
|
||||||
|
|
||||||
|
### XXXV.15 -- Extractor bug: SLOT_FMT never updated after §XXXV.12's alignment fix
|
||||||
|
|
||||||
|
Found checking the real, live campaign's first two trials against the console log. Both slots
|
||||||
|
read back as "CRC mismatch" in `extract_doe_region.py` even though the kernel-side write path
|
||||||
|
was correct and the console log showed clean trials. Root cause: §XXXV.12's struct-alignment fix
|
||||||
|
added an explicit `_align_pad` `uint32_t` field to `doe_trial_slot_t` (`doe_region.h`), but
|
||||||
|
`extract_doe_region.py`'s `SLOT_FMT`/`SLOT_CRC_SPAN` were never updated to match -- every field
|
||||||
|
after `isa` was being read from the wrong byte offset, so `slot_crc` itself was read from the
|
||||||
|
wrong bytes entirely. Fixed (`SLOT_FMT = "<QQIIIIIII8sIQ"`, `assert SLOT_SIZE == DOE_SLOT_SIZE`
|
||||||
|
tightened from `<=` to catch exactly this kind of drift next time). Re-extracted the real
|
||||||
|
campaign's first two trials correctly: `run=0 cfg=0 rep=14 nw=2 mode=uniform fail=0`,
|
||||||
|
`run=1 cfg=5 rep=8 nw=8 mode=heterogeneous fail=0`, both `fleet_conserved=1`,
|
||||||
|
`fleet_k_q48=65536` (exactly Q48.16 1.0) -- clean so far.
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,68 @@
|
|||||||
|
<?xml version='1.0' encoding='UTF-8' ?>
|
||||||
|
<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='576.00pt' height='432.00pt' viewBox='0 0 576.00 432.00'>
|
||||||
|
<g class='svglite'>
|
||||||
|
<defs>
|
||||||
|
<style type='text/css'><![CDATA[
|
||||||
|
.svglite line, .svglite polyline, .svglite polygon, .svglite path, .svglite rect, .svglite circle {
|
||||||
|
fill: none;
|
||||||
|
stroke: #000000;
|
||||||
|
stroke-linecap: round;
|
||||||
|
stroke-linejoin: round;
|
||||||
|
stroke-miterlimit: 10.00;
|
||||||
|
}
|
||||||
|
.svglite text {
|
||||||
|
white-space: pre;
|
||||||
|
}
|
||||||
|
.svglite g.glyphgroup path {
|
||||||
|
fill: inherit;
|
||||||
|
stroke: none;
|
||||||
|
}
|
||||||
|
]]></style>
|
||||||
|
</defs>
|
||||||
|
<rect width='100%' height='100%' style='stroke: none; fill: #FFFFFF;'/>
|
||||||
|
<defs>
|
||||||
|
<clipPath id='cpMC4wMHw1NzYuMDB8MC4wMHw0MzIuMDA='>
|
||||||
|
<rect x='0.00' y='0.00' width='576.00' height='432.00' />
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
<g clip-path='url(#cpMC4wMHw1NzYuMDB8MC4wMHw0MzIuMDA=)'>
|
||||||
|
<rect x='0.00' y='0.000000000000057' width='576.00' height='432.00' style='stroke-width: 1.07; stroke: none; fill: #FFFFFF;' />
|
||||||
|
</g>
|
||||||
|
<defs>
|
||||||
|
<clipPath id='cpMzguNjR8NTcwLjUyfDI0LjI5fDM2MS45Mg=='>
|
||||||
|
<rect x='38.64' y='24.29' width='531.88' height='337.63' />
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
<g clip-path='url(#cpMzguNjR8NTcwLjUyfDI0LjI5fDM2MS45Mg==)'>
|
||||||
|
<polyline points='38.64,361.92 570.52,361.92 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
|
||||||
|
<polyline points='38.64,277.51 570.52,277.51 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
|
||||||
|
<polyline points='38.64,193.10 570.52,193.10 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
|
||||||
|
<polyline points='38.64,108.69 570.52,108.69 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
|
||||||
|
<polyline points='38.64,24.29 570.52,24.29 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
|
||||||
|
<polyline points='183.70,361.92 183.70,24.29 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
|
||||||
|
<polyline points='425.46,361.92 425.46,24.29 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
|
||||||
|
<rect x='74.91' y='193.10' width='217.59' height='0.00' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #4A90D9; fill-opacity: 0.85;' />
|
||||||
|
<rect x='316.67' y='193.10' width='217.59' height='0.00' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #E07B39; fill-opacity: 0.85;' />
|
||||||
|
<text x='183.70' y='190.75' text-anchor='middle' style='font-size: 8.54px; font-family: "Liberation Sans";' textLength='11.88px' lengthAdjust='spacingAndGlyphs'>0/1</text>
|
||||||
|
<text x='425.46' y='190.75' text-anchor='middle' style='font-size: 8.54px; font-family: "Liberation Sans";' textLength='11.88px' lengthAdjust='spacingAndGlyphs'>0/1</text>
|
||||||
|
</g>
|
||||||
|
<g clip-path='url(#cpMC4wMHw1NzYuMDB8MC4wMHw0MzIuMDA=)'>
|
||||||
|
<text x='33.71' y='364.95' text-anchor='end' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='15.64px' lengthAdjust='spacingAndGlyphs'>-5%</text>
|
||||||
|
<text x='33.71' y='280.54' text-anchor='end' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='15.64px' lengthAdjust='spacingAndGlyphs'>-2%</text>
|
||||||
|
<text x='33.71' y='196.13' text-anchor='end' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='12.72px' lengthAdjust='spacingAndGlyphs'>0%</text>
|
||||||
|
<text x='33.71' y='111.72' text-anchor='end' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='12.72px' lengthAdjust='spacingAndGlyphs'>3%</text>
|
||||||
|
<text x='33.71' y='27.31' text-anchor='end' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='12.72px' lengthAdjust='spacingAndGlyphs'>5%</text>
|
||||||
|
<text x='183.70' y='372.90' text-anchor='middle' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='4.89px' lengthAdjust='spacingAndGlyphs'>2</text>
|
||||||
|
<text x='425.46' y='372.90' text-anchor='middle' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='4.89px' lengthAdjust='spacingAndGlyphs'>8</text>
|
||||||
|
<text x='304.58' y='385.04' text-anchor='middle' style='font-size: 11.00px; font-family: "Liberation Sans";' textLength='96.00px' lengthAdjust='spacingAndGlyphs'>Concurrent workers</text>
|
||||||
|
<text transform='translate(13.05,193.10) rotate(-90)' text-anchor='middle' style='font-size: 11.00px; font-family: "Liberation Sans";' textLength='169.77px' lengthAdjust='spacingAndGlyphs'>Fraction of trials with fail_count > 0</text>
|
||||||
|
<text x='218.58' y='416.18' style='font-size: 11.00px; font-family: "Liberation Sans";' textLength='27.53px' lengthAdjust='spacingAndGlyphs'>mode</text>
|
||||||
|
<rect x='252.30' y='404.47' width='15.86' height='15.86' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #4A90D9; fill-opacity: 0.85;' />
|
||||||
|
<rect x='309.85' y='404.47' width='15.86' height='15.86' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #E07B39; fill-opacity: 0.85;' />
|
||||||
|
<text x='274.35' y='415.43' style='font-size: 8.80px; font-family: "Liberation Sans";' textLength='29.31px' lengthAdjust='spacingAndGlyphs'>uniform</text>
|
||||||
|
<text x='331.91' y='415.43' style='font-size: 8.80px; font-family: "Liberation Sans";' textLength='58.67px' lengthAdjust='spacingAndGlyphs'>heterogeneous</text>
|
||||||
|
<text x='304.58' y='23.35' text-anchor='middle' style='font-size: 9.00px;fill: #666666; font-family: "Liberation Sans";' textLength='26.50px' lengthAdjust='spacingAndGlyphs'>2 trials</text>
|
||||||
|
<text x='304.58' y='14.98' text-anchor='middle' style='font-size: 12.00px; font-weight: bold; font-family: "Liberation Sans";' textLength='309.09px' lengthAdjust='spacingAndGlyphs'>Trial Fail Rate by Concurrency Level x Workload Mode</text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 5.7 KiB |
@@ -0,0 +1,73 @@
|
|||||||
|
<?xml version='1.0' encoding='UTF-8' ?>
|
||||||
|
<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='720.00pt' height='432.00pt' viewBox='0 0 720.00 432.00'>
|
||||||
|
<g class='svglite'>
|
||||||
|
<defs>
|
||||||
|
<style type='text/css'><![CDATA[
|
||||||
|
.svglite line, .svglite polyline, .svglite polygon, .svglite path, .svglite rect, .svglite circle {
|
||||||
|
fill: none;
|
||||||
|
stroke: #000000;
|
||||||
|
stroke-linecap: round;
|
||||||
|
stroke-linejoin: round;
|
||||||
|
stroke-miterlimit: 10.00;
|
||||||
|
}
|
||||||
|
.svglite text {
|
||||||
|
white-space: pre;
|
||||||
|
}
|
||||||
|
.svglite g.glyphgroup path {
|
||||||
|
fill: inherit;
|
||||||
|
stroke: none;
|
||||||
|
}
|
||||||
|
]]></style>
|
||||||
|
</defs>
|
||||||
|
<rect width='100%' height='100%' style='stroke: none; fill: #FFFFFF;'/>
|
||||||
|
<defs>
|
||||||
|
<clipPath id='cpMC4wMHw3MjAuMDB8MC4wMHw0MzIuMDA='>
|
||||||
|
<rect x='0.00' y='0.00' width='720.00' height='432.00' />
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
<g clip-path='url(#cpMC4wMHw3MjAuMDB8MC4wMHw0MzIuMDA=)'>
|
||||||
|
<rect x='0.00' y='0.000000000000057' width='720.00' height='432.00' style='stroke-width: 1.07; stroke: none; fill: #FFFFFF;' />
|
||||||
|
</g>
|
||||||
|
<defs>
|
||||||
|
<clipPath id='cpNDUuMDB8NzE0LjUyfDI0LjI5fDM2MS45Mg=='>
|
||||||
|
<rect x='45.00' y='24.29' width='669.52' height='337.63' />
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
<g clip-path='url(#cpNDUuMDB8NzE0LjUyfDI0LjI5fDM2MS45Mg==)'>
|
||||||
|
<polyline points='45.00,361.92 714.52,361.92 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
|
||||||
|
<polyline points='45.00,277.51 714.52,277.51 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
|
||||||
|
<polyline points='45.00,193.10 714.52,193.10 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
|
||||||
|
<polyline points='45.00,108.69 714.52,108.69 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
|
||||||
|
<polyline points='45.00,24.29 714.52,24.29 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
|
||||||
|
<polyline points='75.43,361.92 75.43,24.29 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
|
||||||
|
<polyline points='227.60,361.92 227.60,24.29 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
|
||||||
|
<polyline points='379.76,361.92 379.76,24.29 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
|
||||||
|
<polyline points='531.92,361.92 531.92,24.29 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
|
||||||
|
<polyline points='684.09,361.92 684.09,24.29 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
|
||||||
|
<circle cx='75.43' cy='193.10' r='1.95' style='stroke-width: 0.71; stroke: #4A90D9; stroke-opacity: 0.60; fill: #4A90D9; fill-opacity: 0.60;' />
|
||||||
|
<circle cx='684.09' cy='193.10' r='1.95' style='stroke-width: 0.71; stroke: #E07B39; stroke-opacity: 0.60; fill: #E07B39; fill-opacity: 0.60;' />
|
||||||
|
<line x1='45.00' y1='193.10' x2='714.52' y2='193.10' style='stroke-width: 1.07; stroke: #7F7F7F; stroke-dasharray: 5.69,5.69; stroke-linecap: butt;' />
|
||||||
|
</g>
|
||||||
|
<g clip-path='url(#cpMC4wMHw3MjAuMDB8MC4wMHw0MzIuMDA=)'>
|
||||||
|
<text x='40.07' y='364.95' text-anchor='end' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='22.00px' lengthAdjust='spacingAndGlyphs'>0.950</text>
|
||||||
|
<text x='40.07' y='280.54' text-anchor='end' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='22.00px' lengthAdjust='spacingAndGlyphs'>0.975</text>
|
||||||
|
<text x='40.07' y='196.13' text-anchor='end' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='22.00px' lengthAdjust='spacingAndGlyphs'>1.000</text>
|
||||||
|
<text x='40.07' y='111.72' text-anchor='end' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='22.00px' lengthAdjust='spacingAndGlyphs'>1.025</text>
|
||||||
|
<text x='40.07' y='27.31' text-anchor='end' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='22.00px' lengthAdjust='spacingAndGlyphs'>1.050</text>
|
||||||
|
<text x='75.43' y='372.90' text-anchor='middle' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='17.11px' lengthAdjust='spacingAndGlyphs'>0.00</text>
|
||||||
|
<text x='227.60' y='372.90' text-anchor='middle' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='17.11px' lengthAdjust='spacingAndGlyphs'>0.25</text>
|
||||||
|
<text x='379.76' y='372.90' text-anchor='middle' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='17.11px' lengthAdjust='spacingAndGlyphs'>0.50</text>
|
||||||
|
<text x='531.92' y='372.90' text-anchor='middle' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='17.11px' lengthAdjust='spacingAndGlyphs'>0.75</text>
|
||||||
|
<text x='684.09' y='372.90' text-anchor='middle' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='17.11px' lengthAdjust='spacingAndGlyphs'>1.00</text>
|
||||||
|
<text x='379.76' y='385.04' text-anchor='middle' style='font-size: 11.00px; font-family: "Liberation Sans";' textLength='130.70px' lengthAdjust='spacingAndGlyphs'>Run id (shuffled trial index)</text>
|
||||||
|
<text transform='translate(13.05,193.10) rotate(-90)' text-anchor='middle' style='font-size: 11.00px; font-family: "Liberation Sans";' textLength='96.75px' lengthAdjust='spacingAndGlyphs'>fleet_k_q48 / 65536</text>
|
||||||
|
<text x='293.76' y='416.18' style='font-size: 11.00px; font-family: "Liberation Sans";' textLength='27.53px' lengthAdjust='spacingAndGlyphs'>mode</text>
|
||||||
|
<circle cx='335.41' cy='412.40' r='1.95' style='stroke-width: 0.71; stroke: #4A90D9; stroke-opacity: 0.60; fill: #4A90D9; fill-opacity: 0.60;' />
|
||||||
|
<circle cx='392.97' cy='412.40' r='1.95' style='stroke-width: 0.71; stroke: #E07B39; stroke-opacity: 0.60; fill: #E07B39; fill-opacity: 0.60;' />
|
||||||
|
<text x='349.53' y='415.43' style='font-size: 8.80px; font-family: "Liberation Sans";' textLength='29.31px' lengthAdjust='spacingAndGlyphs'>uniform</text>
|
||||||
|
<text x='407.09' y='415.43' style='font-size: 8.80px; font-family: "Liberation Sans";' textLength='58.67px' lengthAdjust='spacingAndGlyphs'>heterogeneous</text>
|
||||||
|
<text x='379.76' y='23.35' text-anchor='middle' style='font-size: 9.00px;fill: #666666; font-family: "Liberation Sans";' textLength='314.09px' lengthAdjust='spacingAndGlyphs'>Dashed line = Q48.16 conserved value (1.0); trial-end reads, shuffled run order</text>
|
||||||
|
<text x='379.76' y='14.98' text-anchor='middle' style='font-size: 12.00px; font-weight: bold; font-family: "Liberation Sans";' textLength='310.25px' lengthAdjust='spacingAndGlyphs'>Fleet Heat Conservation (K) Across the Trial Sequence</text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 6.3 KiB |
@@ -1,34 +0,0 @@
|
|||||||
<?xml version='1.0' encoding='UTF-8' ?>
|
|
||||||
<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='576.00pt' height='288.00pt' viewBox='0 0 576.00 288.00'>
|
|
||||||
<g class='svglite'>
|
|
||||||
<defs>
|
|
||||||
<style type='text/css'><![CDATA[
|
|
||||||
.svglite line, .svglite polyline, .svglite polygon, .svglite path, .svglite rect, .svglite circle {
|
|
||||||
fill: none;
|
|
||||||
stroke: #000000;
|
|
||||||
stroke-linecap: round;
|
|
||||||
stroke-linejoin: round;
|
|
||||||
stroke-miterlimit: 10.00;
|
|
||||||
}
|
|
||||||
.svglite text {
|
|
||||||
white-space: pre;
|
|
||||||
}
|
|
||||||
.svglite g.glyphgroup path {
|
|
||||||
fill: inherit;
|
|
||||||
stroke: none;
|
|
||||||
}
|
|
||||||
]]></style>
|
|
||||||
</defs>
|
|
||||||
<rect width='100%' height='100%' style='stroke: none; fill: #FFFFFF;'/>
|
|
||||||
<defs>
|
|
||||||
<clipPath id='cpMC4wMHw1NzYuMDB8MC4wMHwyODguMDA='>
|
|
||||||
<rect x='0.00' y='0.00' width='576.00' height='288.00' />
|
|
||||||
</clipPath>
|
|
||||||
</defs>
|
|
||||||
<g clip-path='url(#cpMC4wMHw1NzYuMDB8MC4wMHwyODguMDA=)'>
|
|
||||||
<rect x='0.00' y='0.00' width='576.00' height='288.00' style='stroke-width: 0.00; stroke: none;' />
|
|
||||||
<text x='288.00' y='137.58' text-anchor='middle' style='font-size: 17.07px;fill: #666666; font-family: "Liberation Sans";' textLength='164.02px' lengthAdjust='spacingAndGlyphs'>No trials persisted yet</text>
|
|
||||||
<text x='288.00' y='162.16' text-anchor='middle' style='font-size: 17.07px;fill: #666666; font-family: "Liberation Sans";' textLength='109.02px' lengthAdjust='spacingAndGlyphs'>(0 trials so far)</text>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.4 KiB |
@@ -0,0 +1,67 @@
|
|||||||
|
<?xml version='1.0' encoding='UTF-8' ?>
|
||||||
|
<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='576.00pt' height='432.00pt' viewBox='0 0 576.00 432.00'>
|
||||||
|
<g class='svglite'>
|
||||||
|
<defs>
|
||||||
|
<style type='text/css'><![CDATA[
|
||||||
|
.svglite line, .svglite polyline, .svglite polygon, .svglite path, .svglite rect, .svglite circle {
|
||||||
|
fill: none;
|
||||||
|
stroke: #000000;
|
||||||
|
stroke-linecap: round;
|
||||||
|
stroke-linejoin: round;
|
||||||
|
stroke-miterlimit: 10.00;
|
||||||
|
}
|
||||||
|
.svglite text {
|
||||||
|
white-space: pre;
|
||||||
|
}
|
||||||
|
.svglite g.glyphgroup path {
|
||||||
|
fill: inherit;
|
||||||
|
stroke: none;
|
||||||
|
}
|
||||||
|
]]></style>
|
||||||
|
</defs>
|
||||||
|
<rect width='100%' height='100%' style='stroke: none; fill: #FFFFFF;'/>
|
||||||
|
<defs>
|
||||||
|
<clipPath id='cpMC4wMHw1NzYuMDB8MC4wMHw0MzIuMDA='>
|
||||||
|
<rect x='0.00' y='0.00' width='576.00' height='432.00' />
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
<g clip-path='url(#cpMC4wMHw1NzYuMDB8MC4wMHw0MzIuMDA=)'>
|
||||||
|
<rect x='0.00' y='0.000000000000057' width='576.00' height='432.00' style='stroke-width: 1.07; stroke: none; fill: #FFFFFF;' />
|
||||||
|
</g>
|
||||||
|
<defs>
|
||||||
|
<clipPath id='cpNDcuOTJ8NTcwLjUyfDI0LjI5fDQwMS4xMg=='>
|
||||||
|
<rect x='47.92' y='24.29' width='522.60' height='376.83' />
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
<g clip-path='url(#cpNDcuOTJ8NTcwLjUyfDI0LjI5fDQwMS4xMg==)'>
|
||||||
|
<polyline points='47.92,401.12 570.52,401.12 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
|
||||||
|
<polyline points='47.92,306.91 570.52,306.91 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
|
||||||
|
<polyline points='47.92,212.70 570.52,212.70 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
|
||||||
|
<polyline points='47.92,118.49 570.52,118.49 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
|
||||||
|
<polyline points='47.92,24.29 570.52,24.29 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
|
||||||
|
<polyline points='190.45,401.12 190.45,24.29 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
|
||||||
|
<polyline points='427.99,401.12 427.99,24.29 ' style='stroke-width: 1.07; stroke: #E5E5E5; stroke-linecap: butt;' />
|
||||||
|
<line x1='190.45' y1='212.70' x2='190.45' y2='212.70' style='stroke-width: 1.07; stroke: #333333; stroke-linecap: butt;' />
|
||||||
|
<line x1='190.45' y1='212.70' x2='190.45' y2='212.70' style='stroke-width: 1.07; stroke: #333333; stroke-linecap: butt;' />
|
||||||
|
<polygon points='101.37,212.70 101.37,212.70 279.53,212.70 279.53,212.70 101.37,212.70 ' style='stroke-width: 1.07; stroke: #333333; stroke-linecap: butt; stroke-linejoin: miter; fill: #50C878; fill-opacity: 0.80;' />
|
||||||
|
<line x1='101.37' y1='212.70' x2='279.53' y2='212.70' style='stroke-width: 2.13; stroke: #333333; stroke-linecap: butt; stroke-linejoin: miter;' />
|
||||||
|
<line x1='427.99' y1='212.70' x2='427.99' y2='212.70' style='stroke-width: 1.07; stroke: #333333; stroke-linecap: butt;' />
|
||||||
|
<line x1='427.99' y1='212.70' x2='427.99' y2='212.70' style='stroke-width: 1.07; stroke: #333333; stroke-linecap: butt;' />
|
||||||
|
<polygon points='338.91,212.70 338.91,212.70 517.07,212.70 517.07,212.70 338.91,212.70 ' style='stroke-width: 1.07; stroke: #333333; stroke-linecap: butt; stroke-linejoin: miter; fill: #E07B39; fill-opacity: 0.80;' />
|
||||||
|
<line x1='338.91' y1='212.70' x2='517.07' y2='212.70' style='stroke-width: 2.13; stroke: #333333; stroke-linecap: butt; stroke-linejoin: miter;' />
|
||||||
|
</g>
|
||||||
|
<g clip-path='url(#cpMC4wMHw1NzYuMDB8MC4wMHw0MzIuMDA=)'>
|
||||||
|
<text x='42.99' y='404.14' text-anchor='end' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='24.92px' lengthAdjust='spacingAndGlyphs'>-0.050</text>
|
||||||
|
<text x='42.99' y='309.94' text-anchor='end' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='24.92px' lengthAdjust='spacingAndGlyphs'>-0.025</text>
|
||||||
|
<text x='42.99' y='215.73' text-anchor='end' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='22.00px' lengthAdjust='spacingAndGlyphs'>0.000</text>
|
||||||
|
<text x='42.99' y='121.52' text-anchor='end' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='22.00px' lengthAdjust='spacingAndGlyphs'>0.025</text>
|
||||||
|
<text x='42.99' y='27.31' text-anchor='end' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='22.00px' lengthAdjust='spacingAndGlyphs'>0.050</text>
|
||||||
|
<text x='190.45' y='412.10' text-anchor='middle' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='4.89px' lengthAdjust='spacingAndGlyphs'>2</text>
|
||||||
|
<text x='427.99' y='412.10' text-anchor='middle' style='font-size: 8.80px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='4.89px' lengthAdjust='spacingAndGlyphs'>8</text>
|
||||||
|
<text x='309.22' y='424.24' text-anchor='middle' style='font-size: 11.00px; font-family: "Liberation Sans";' textLength='96.00px' lengthAdjust='spacingAndGlyphs'>Concurrent workers</text>
|
||||||
|
<text transform='translate(13.05,212.70) rotate(-90)' text-anchor='middle' style='font-size: 11.00px; font-family: "Liberation Sans";' textLength='122.34px' lengthAdjust='spacingAndGlyphs'>switch_count_cumulative</text>
|
||||||
|
<text x='309.22' y='23.35' text-anchor='middle' style='font-size: 9.00px;fill: #666666; font-family: "Liberation Sans";' textLength='290.50px' lengthAdjust='spacingAndGlyphs'>Stage-3 switch signal count at trial end, by number of concurrent workers</text>
|
||||||
|
<text x='309.22' y='14.98' text-anchor='middle' style='font-size: 12.00px; font-weight: bold; font-family: "Liberation Sans";' textLength='341.33px' lengthAdjust='spacingAndGlyphs'>Cumulative Preemptive Switch Count by Concurrency Level</text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 5.4 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,4 +1,11 @@
|
|||||||
% Auto-generated by analyse_multiuser_doe.R -- do not edit by hand.
|
% Auto-generated by analyse_multiuser_doe.R -- do not edit by hand.
|
||||||
No trial data has been persisted to the DoE region yet. This section
|
This report reflects \textbf{2} completed trial(s) persisted via
|
||||||
will populate automatically the next time this report is built after
|
\texttt{DOE-PERSIST-TRIAL} as of the last extraction, spanning ISA(s)
|
||||||
the campaign has produced at least one completed trial.
|
\texttt{amd64}. Overall fail rate across all trials so far is
|
||||||
|
\textbf{0.0\%}; \textbf{100.0\%} of trials read
|
||||||
|
\texttt{fleet\_conserved==1} at trial end.
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item 2 workers, uniform: 1 trials, fail rate 0.0\%, mean fleet K = 1.0000
|
||||||
|
\item 8 workers, heterogeneous: 1 trials, fail rate 0.0\%, mean fleet K = 1.0000
|
||||||
|
\end{itemize}
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
"nw","mode","n_trials","n_fail","fail_rate","mean_fail_count","mean_fleet_k","pct_conserved","mean_switch_cnt"
|
||||||
|
"2","uniform",1,0,0,0,1,1,0
|
||||||
|
"8","heterogeneous",1,0,0,0,1,1,0
|
||||||
|
@@ -1,2 +0,0 @@
|
|||||||
"status","trials_so_far"
|
|
||||||
"No trials persisted yet",0
|
|
||||||
|
@@ -1 +1,3 @@
|
|||||||
isa,run_id,cfg,rep,nw,mode,fail_count,fleet_k_q48,fleet_conserved,switch_count_cumulative
|
isa,run_id,cfg,rep,nw,mode,fail_count,fleet_k_q48,fleet_conserved,switch_count_cumulative
|
||||||
|
amd64,0,0,14,2,0,0,65536,1,0
|
||||||
|
amd64,1,5,8,8,1,0,65536,1,0
|
||||||
|
|||||||
|
@@ -73,11 +73,13 @@ CTRL_CRC_SPAN = struct.calcsize("<QIIII") # everything before hdr_crc
|
|||||||
|
|
||||||
# doe_trial_slot_t: fleet_k_q48(u64) switch_count_cumulative(u64)
|
# doe_trial_slot_t: fleet_k_q48(u64) switch_count_cumulative(u64)
|
||||||
# run_id(u32) cfg(u32) rep(u32) nw(u32) mode(u32) fail_count(u32)
|
# run_id(u32) cfg(u32) rep(u32) nw(u32) mode(u32) fail_count(u32)
|
||||||
# fleet_conserved(u32) isa(8s) slot_crc(u64), rest is padding to 64.
|
# fleet_conserved(u32) isa(8s) _align_pad(u32, explicit -- see
|
||||||
SLOT_FMT = "<QQIIIIIII8sQ"
|
# doe_region.h's own comment on why: brings slot_crc to an 8-aligned
|
||||||
|
# offset without relying on implicit compiler padding) slot_crc(u64).
|
||||||
|
SLOT_FMT = "<QQIIIIIII8sIQ"
|
||||||
SLOT_SIZE = struct.calcsize(SLOT_FMT)
|
SLOT_SIZE = struct.calcsize(SLOT_FMT)
|
||||||
SLOT_CRC_SPAN = struct.calcsize("<QQIIIIIII8s") # everything before slot_crc
|
SLOT_CRC_SPAN = struct.calcsize("<QQIIIIIII8sI") # everything before slot_crc
|
||||||
assert SLOT_SIZE <= DOE_SLOT_SIZE
|
assert SLOT_SIZE == DOE_SLOT_SIZE
|
||||||
|
|
||||||
|
|
||||||
# CRC-64/XZ, same polynomial/algorithm as compute_crc64() in
|
# CRC-64/XZ, same polynomial/algorithm as compute_crc64() in
|
||||||
@@ -186,7 +188,7 @@ def read_ring(dev_path: str):
|
|||||||
f.seek(blk_off + slot_off_in_devblock)
|
f.seek(blk_off + slot_off_in_devblock)
|
||||||
raw = f.read(SLOT_SIZE)
|
raw = f.read(SLOT_SIZE)
|
||||||
(fleet_k_q48, switch_count, run_id, cfg, rep, nw, mode,
|
(fleet_k_q48, switch_count, run_id, cfg, rep, nw, mode,
|
||||||
fail_count, fleet_conserved, isa_raw, slot_crc) = struct.unpack(SLOT_FMT, raw)
|
fail_count, fleet_conserved, isa_raw, _align_pad, slot_crc) = struct.unpack(SLOT_FMT, raw)
|
||||||
|
|
||||||
want_slot_crc = compute_crc64(raw[:SLOT_CRC_SPAN])
|
want_slot_crc = compute_crc64(raw[:SLOT_CRC_SPAN])
|
||||||
if want_slot_crc != slot_crc:
|
if want_slot_crc != slot_crc:
|
||||||
|
|||||||
Reference in New Issue
Block a user