目录 / 文档-技术白皮书 / 11-EFT.WP.Core.DrawingKinetics v1.0
I. 范围与目标
- 将细丝牵引/拉伸动力学的计算与采集/控制线程对接,给出执行图 G = ( V , E ) 的建模、调度与观测口径,确保 hb 因果、bp 背压安全与 SLO 可验证。
- 定义运行期度量 TS.*,覆盖 T_make(G)、延迟与抖动、队列与丢包、关键路径与告警触发;明确与第2–9章物理量(lambda,s,v,A,rho_L,J,T_fil,S_xx(f) 等)在时基 ts 上的一致对齐。
II. 术语与符号
- 执行图与代价:G=(V,E),w(v)(节点计算代价,单位 s 或 CPU·s),m(并发资源数),C_p(G)(关键路径时长)。
- 调度与时限:T_make(G)(作业完工时长),D_k(第 k 个产物截止时间),slack_k = D_k - ( t_now + R_k ),R_k(关键路径剩余代价估计)。
- 队列与背压:Q_i(ts)(第 i 级队列深度,单位 item),r_in,i,r_out,i(输入/输出速率,单位 item/s),bp(背压信号)。
- 因果与时基:hb(happens-before),tau_mono(单调时基),ts = alpha + beta * tau_mono(与第8章一致)。
- 运行度量(TS.*,与《Core.Threads》一致口径)
- TS.lat.p50,TS.lat.p99(端到端延迟)
- TS.jitter.rms(周期抖动)
- TS.backlog.max(最大队列深度)
- TS.loss.rate(丢包率)
- TS.hb.violations(因果违例计数)
- TS.util.cpu,TS.util.mem(资源占用)
- TS.makespan.last = T_make(G)
- TS.cp.length = C_p(G),TS.cp.set(关键路径节点集)
III. 公设与最小方程
- P11-10(hb-一致提交)
任一物理时序派生量写入清单前满足 hb(acquire) -> hb(estimate) -> hb(emit);提交以幂等事务封装,重放不改变 meta.uid 与摘要哈希。 - P11-11(跨线程时基一致)
任一线程的 tau_mono 漂移相对主钟不超过 drift_max;对外发布一律映射到 ts = alpha + beta * tau_mono 并在 timebase.* 留存 alpha,beta。 - P11-12(背压安全域)
背压策略应使所有中间队列满足 0 <= Q_i(ts) <= Q_i.max 且不发生未受控丢弃;若需丢弃,必须按策略字段记录为 drop.policy 与 *_qf。 - S12-18(队列动力学与限流)
( d/dt ) Q_i = r_in,i - r_out,i;r_out,i = min( r_cap,i , r_demand,i );当 Q_i >= Q_i.max 时发出 bp 并调节上游 r_in,i = f_bp( Q_i ),其中 f_bp 单调非增且 f_bp( Q_i.max ) = 0。 - S12-19(DAG 完工下界与调度准则)
T_make(G) >= max( C_p(G) , ( ∑_{v∈V} w(v) / m ) );近似最优的就绪优先策略为优先调度关键路径上、且 w(v)/deadline_slack(v) 最小的节点。 - S12-20(时限余度与告警)
slack_k = D_k - ( t_now + R_k );触发门限 slack_k <= slack_gate 时,发出 ALERT.DEADLINE_RISK 并提升 TS.priority 或降采样。 - 量纲校核
check_dim( T_make ) == s;check_dim( ( d/dt ) Q_i ) == 1/s;check_dim( r_in,i ) == 1/s。
IV. 数据与清单口径
- 运行期扩展字段(建议并入 schema.core.drawing/v1 的 runtime.* 命名空间)
- runtime.G.hash(执行图结构哈希)
- runtime.T_make(s),runtime.C_p(s),runtime.cp.set(节点名列表)
- runtime.queues[i].Q_max,Q_p95,drops,drop.policy
- runtime.rate.in,runtime.rate.out(item/s)
- runtime.TS.lat.p50,TS.lat.p99,TS.jitter.rms,TS.util.cpu,TS.util.mem,TS.hb.violations
- runtime.alerts[](告警时间与类型)
- 与物理量的对齐
series.* 的每个窗口 window.id 挂接 runtime.* 的同窗统计;频域派生 spectral.* 标注其生成作业 v_spectral 与其 w(v) 估计。
V. 算法与实现绑定
- I10-1 update_draw_state( state, bc:dict, dt:float ) -> StepReport
线程安全:获取输入 v_in,v_out,T_fil 的时序切片,完成 lambda,s,A,rho_L,J 更新;提交以 hb(acquire)->hb(update) 顺序标记。 - I10-2 estimate_tension( lambda:float , s:float , params:dict ) -> float
可并行批量化;若 params.model 含速率硬化项,需声明 w(v) 估计与 TS.util.cpu 上限。 - I10-3 compute_instability_metrics( state ) -> dict
异步执行;若 TS.cp.length 超阈,降采样或切换轻量指标族。 - I10-4 calibrate_kinematics( trace:any , sensors:list , timebase:dict ) -> CalReport
仅在 INIT/WARMUP 阶段上电执行;提供 alpha,beta 与 jitter_rms。 - I10-5 emit_metrics_drawing( state ) -> dict
终端节点,满足 hb(update)->hb(emit),并写入 runtime.* 度量与 TS.* 聚合。 - 新增执行接口
- I10-6 schedule_draw_graph( G , SLO:dict , resources:dict ) -> SchedPlan
- I10-7 run_event_loop( plan:SchedPlan ) -> RuntimeReport
- 伪代码(核心循环)
I10-7 run_event_loop(plan):
state <- INIT
while state != STOP:
events <- poll(plan.inputs, plan.timeout)
for e in events:
tag_hb(e, "acquire")
if backlog_high(): issue_bp(); maybe_throttle()
submit(v_update, e.payload) # I10-1
if need_spectrum(): submit(v_spectral, window_id)
if need_risk(): submit(v_instab, snapshot) # I10-3
drain_ready_tasks_by_priority() # critical-path & slack-aware
for r in ready(v_emit):
tag_hb(r, "emit")
out <- I10-5(r.state)
publish(out)
- 状态机
INIT -> WARMUP -> RUN -> DRAIN -> STOP;在 WARMUP 完成 I10-4 与资源探测,在 DRAIN 等待队列清空并确保 T_make(G) 收敛。
VI. 计量流程与运行图
- 运行图口径
- 采集节点 v_acq(编码器/张力/环境)
- 状态更新 v_update(I10-1)
- 构成估计 v_tension(I10-2)
- 频谱派生 v_spectral(第7章)
- 失稳评估 v_instab(I10-3)
- 清单汇总 v_emit(I10-5)
- 关键观测点
在每个节点出口标注 TS.lat.node、TS.queue.len、TS.cpu.slice;在作业完成时更新 TS.makespan.last 与 TS.cp.set。 - 告警与回退
当 TS.backlog.max > gate.backlog 或 TS.hb.violations > 0,触发 ALERT.PIPELINE_HB,进入降采样模式并冻结非关键派生(如高分辨率 spectral.*);当 slack_k <= 0,触发 ALERT.DEADLINE_MISS 并记录受影响窗口 window.id。
VII. 验证与测试矩阵
- 最小用例
- 恒速拉伸:验证 hb 顺序与 T_make(G) 下界 S12-19。
- 阶跃拉伸:验证 TS.jitter.rms 与背压闭环 S12-18 的稳定性。
- 斜坡拉伸:验证 v_spectral 的并发扩展与 TS.util.cpu 上限。
- 极端场景
- 传感器抖动放大与迟到包;
- 队列容量上限与强迫丢弃策略;
- 资源收缩(m 减半)下的 T_make(G) 与 SLO 保序。
- 守恒与门限
并行执行不得破坏第3章守恒校核:eps_mass、eps_norm 在并发与降采样模式下仍须通过 qc.gate.*。
VIII. 交叉引用与依赖
- 第2章:lambda,s,v,A 的定义与观测映射是 v_update 的输入出口契约。
- 第3章:rho_L,J 与连续性 S12-1 的离散残差用于并行校核。
- 第4章:T_fil 构成族影响 v_tension 的代价 w(v) 与批处理策略。
- 第7章:S_xx(f),U_w,ENBW 规定 v_spectral 的窗口与资源预算。
- 第8章:ts 对齐与 alpha,beta 由 I10-4 产出;到达时两口径的差异 delta_form 在并行报表中一并发布。
- 第9章:runtime.* 与 TS.* 字段并入清单,支持追溯与合规。
IX. 风险、限制与开放问题
- OS 调度与 GC 暂停引入长尾延迟;需在 TS.lat.p99 门限下评估容器与运行时选择。
- 多源 tau_mono 漂移在跨设备聚合中放大,必须在 timebase.* 留存校正与置信度。
- 背压策略对物理采样保真度的影响边界尚需更细的 drop.policy 与质量门耦合。
- 显存/内存互斥与 NUMA 亲和对 C_p(G) 的二阶效应需在大规模并发下评估。
X. 交付件与版本管理
- 交付件
- threads.drawing.v1.yaml(执行图、优先级与限流策略)
- threads.drawing.metrics.json(TS.* 与 runtime.* 聚合)
- threads.drawing.hbtrace(因果迹线,含 hb 标记)
- 版本与变更
- 调度策略或 bp 口径变更标记 MOD,同步更新 runtime.* 字段说明;
- 新增节点或并行分支标记 ADD,更新 G.hash 与基准作业的 T_make(G) 基线;
- 任何影响 hb 语义的改动需发布兼容旗标与回归矩阵,并在 CHANGELOG.md 记录。
版权与许可(CC BY 4.0)
版权声明:除另有说明外,《能量丝理论》(含文本、图表、插图、符号与公式)的著作权由作者(“屠广林”先生)享有。
许可方式:本作品采用 Creative Commons 署名 4.0 国际许可协议(CC BY 4.0)进行许可;在注明作者与来源的前提下,允许为商业或非商业目的进行复制、转载、节选、改编与再分发。
署名格式(建议):作者:“屠广林”;作品:《能量丝理论》;来源:energyfilament.org;许可证:CC BY 4.0。
首次发布: 2025-11-11|当前版本:v5.1
协议链接:https://creativecommons.org/licenses/by/4.0/