62 lines
5.7 KiB
Markdown
62 lines
5.7 KiB
Markdown
# 雅可比算法正式启用与网页验收
|
||
|
||
日期:2026-09-11。用户已确认接受试验版的数值误差,并要求正式网页使用新版、清理旧算法。上一轮最大温度误差相对较严格 native 参考为 0.0468 → 0.0543 K;接受该差异不等同于新增八路 AMESim 外部曲线验收。
|
||
|
||
## 正式行为
|
||
|
||
网页/API、Python runner 和独立 C 程序统一自动选择有收益的结构着色差分。八路仍为 132 状态、27 组扰动 + 1 次 canonical 基准,沿用已验证的物理方程、普通 RHS、`rtol=1e-8`、状态 atol、采样与 Dense LU。
|
||
|
||
删除 `SIMULATION_NATIVE_JACOBIAN` 和 `--jacobian dense|auto|verify` 的生产选择入口,旧 CLI 选项会明确以 64 退出。不存在需要用户开启的试验开关。独立 C 程序保留诊断无值标志 `--verify-jacobian`,按完整矩阵核对新算法,不用于正式速度比较。
|
||
|
||
不支持结构证明、没有分组收益的模型保留必要的逐列差分;分组扰动失败、核对失配时保留 canonical 逐列恢复。它们是新算法的兼容/恢复路径,不是独立可选择的旧版本。紧凑模型、未知结构、取消、事件重启都纳入检查。
|
||
|
||
## 实现与历史对照
|
||
|
||
运行时不再保存旧算法模式;构建 manifest 直接说明默认策略。Python 不再从环境变量选择旧算法。手动性能工具默认测新算法,仅通过显式提供冻结的旧可执行文件做历史对照;正式源码不保留旧版本选择器。
|
||
|
||
原始试验数据和误差不重写,详见 [完整试验报告](雅可比结构着色试验与八路验证-2026-09-11.md)。本轮只是将用户已接受的候选设为默认并清理入口,需验证正式输出与该候选一致。
|
||
|
||
## 本轮验证记录
|
||
|
||
57 项后端与雅可比专项测试全部通过,用时 129.667 s,覆盖元件目录冻结基准、两种积分器、结构依赖、canonical 差分核对、失败恢复、事件重启、结果直传、取消及旧 CLI 选项拒绝。四路 72 条 AMESim 参考曲线沿用原门槛通过,并确认默认 `colored-difference`、15 组 + 1 次基准、无回退。
|
||
|
||
```sh
|
||
.venv/bin/python -m unittest tests.test_native_codegen tests.test_native_schedule tests.test_native_catalog tests.test_native_pipe_physics tests.test_native_only_backend tests.test_native_result_transport tests.test_generic_system_xml_simulation tests.test_native_jacobian_structure tests.test_native_jacobian_runtime -v
|
||
```
|
||
|
||
单独通过正式构建程序执行新 `--verify-jacobian` 标志,八路 0~0.0001 s 完成 16 次完整矩阵核对,零失配、零回退。它检查新诊断入口的实际 CLI 行为;完整 0~10 s 的 433 次核对已在前一轮完成,本轮不混用两个次数。
|
||
|
||
手动工具完成语法、参数、真实八路 prepare-only、隔离插桩准备与进程编排检查。它们的旧历史成本汇总重算后,除脚本 SHA 外逐字段不变,没有重写旧数据。
|
||
|
||
原始产物全部在 Git 忽略的 `test/jacobian-production-20260911/`,轻量 [正式启用摘要](assets/2026-09-11/jacobian-production-summary.json) 随文档保留,包括来源 SHA、默认策略、计数和用时。
|
||
|
||
## 正式网页验证
|
||
|
||
通过原有 `bat/start-all.sh` 重启当前正式 FastAPI 与前端。实际入口:
|
||
|
||
- [正常编辑器入口](http://127.0.0.1:5173/):经原有代理调用 8000 后端。
|
||
- [正式构建页面](http://127.0.0.1:8000/):同一后端提供现有生产静态资源。
|
||
|
||
没有另开需要指定算法环境变量的试验实例。正式页面在 8000 端口执行 1 次预热 + 3 次串行测量;5173 端口另做 1 次完整操作检查。5173 使用 Vite 开发资源,仅用于入口连通性与功能验证,不与生产资源的性能基准混合。
|
||
|
||
主模型为修正八路 `tests/data/test-mql-8-corrected.json`,输入 SHA 与前一轮一致;8000 实际加载的前端资源集合 SHA 仍为 `f089bfc67e38ab5a4a0f7649d94f711642d4ab08b690be50b8ef075d8422a1c2`。模型导入后元件参数、端口连接、仿真设置的公开导出核对通过。
|
||
|
||
| 正式页面过程 | 三次中位 |
|
||
| --- | ---: |
|
||
| C 求解 | 2.6066 s |
|
||
| 点击运行 → 结果可查看 | 3.4985 s |
|
||
| 点击运行 → 浏览器保存完成(观察值) | 3.6134 s |
|
||
| CSV 点击 → 下载保存完成 | 1.1997 s |
|
||
| 结果文件点击 → 下载保存完成 | 1.1057 s |
|
||
|
||
时间口径与试验报告一致:浏览器保存为 IndexedDB 提交/指针可见的观察时刻,含轮询与调度;文件保存包括浏览器通知和自动化本地 `saveAs`。各过程不相加,也不把新的单组样本当作再次测量旧版的配对加速比。
|
||
|
||
|
||
首次构建单次 4.2035 s,首次点击到可查看 7.6946 s;它不进入三次已命中缓存的正式中位数。
|
||
|
||
5 次完整网页运行均自动报告 `colored-difference`:`nfev=22,853`、`njev=433`、`jacobianRhsCalls=12,124`、`jacobianFallbacks=0`、接受步 6,660、拒绝步 359、事件 1、求解器启动 4,与用户已接受的候选一致。
|
||
|
||
计时后对 8000 的全部 4 次结果、最终输出、CSV 与前一轮已接受 native 候选逐数值比较;1,002 点 × 1,785 列 × 4,共 7,154,280 个 CSV 单元全部一致。5173 的单次结果/最终输出也与候选一致,CSV 与已核验正式 CSV 字节完全相同。5 次刷新恢复后的完整结果均一致,没有浏览器异常。[8000 核对记录](../../test/jacobian-production-20260911/equality-official.json)
|
||
|
||
新生成 C/头文件的数值内容和结构与已接受候选相同;生产运行时只改默认选择和诊断入口。完整来源、构建缓存、测试日志和浏览器下载保存在上述忽略目录;本轮未安装环境或更改模型、积分精度、物理方程、结果编码和前端功能。
|