f2700031cee6b932a218e8617692068fae77a04c
收敛攻坚(81/400 失败点根因与实测,见 docs/failed81_cno_seed_popzer_dpsilg_2026_08_18.md): - runner: 新增 seed_step_stab 策略链——同物理族(同 Teff/logg/logHe)CNO 邻居种子 + DPSILG=3.0 λ 算子欠松弛 + POPZER=1E-10 微布居置零(联动 POPZR2/RADZER 同值 + NITZER=1),针对 20kK He 富大气 He I/II 电离前沿布居极限环 - runner: 三级链内延拓回退(主链与 nl_direct 全败后自动触发): · 固定 ladder 步进——plan_ladder_steps 按归一化间隔选轴,Δlogg≤0.25/ΔTeff≤2.5kK,≤4 步 · 自适应 Teff 延拓——步长 1250K 起、成功 ×1.5 恢复、失败二分至 25K 折叠墙,≤48 步 · C/N 丰度轴延拓——高温域(Teff>30kK)专用,严格同族种子沿 C(优先)/N 轴 0.2 dex 起步 延拓阶段 NITER 下限提至 300(慢收敛 waypoint 迭代饥饿误判修复) - runner: 稳定化多档回退(DPSILG/POPZER 三档互补,联合回收 41/65); 域门控 Teff≤30kK——高温高金属域实测旋钮致散(17 拍爆至 4e16),域外跳过 - 梯级种子持久化: 收敛中间模型登记 ladder_seeds 随上报落 server seeds 表 (任务失败也上传,合成名 _ladder 与真实网格点零冲突),簇内相邻失败点自动复用 调度与执行: - scheduler: 策略解析新增 seed_step_stab 臂——find_exact_family_seed_from_db 严格 同物理族判定(不做 global 退化,防 ladder 中间种子 ΔTeff≤5000K 误命中), 排除本点历史已用种子实现重试轮换;链在 stab 耗尽时轮换未试过同族邻居重派 - executor: seed_step_stab 补种子下载(漏列曾致 78 任务假失败,seed_nc 无 fort.8 崩溃); Teff>30kK 域外自动降级普通种子链 收敛判据: - conv_check: 热启动豁免——首拍 max_relc<1(种子已近解)时首末比 1e3 判据数学上 不可达,豁免后交五重物理硬门槛裁决(修复 nl_ladder 0.038→6e-4 物理全过被误杀); 冷启动仍受判据门控 workflow 生命周期: - workflows/tasks: 完成 flip 增加「未消费回退链」阻塞子句——failed 点策略链未耗尽 或链尾 seed_step_stab 尚有未试过同族种子时不得置 completed(修复最后活跃点 cold 失败上报抢先 flip、still_running 守卫拦截后续策略永不派发);按 failed_stage 归因 (synspec 失败行只看 synspec 链,防 stale 审计副本永久卡死)+ json_valid 脏行防护 统计与前端: - 统计新增权威口径 tlusty_converged(不按策略拆)与 seed_step_stab_converged 分项, 前端详情页色带/概览卡消费权威总数并新增稳定化青色段(修复 stab 收敛点漏计, 生产 9137/9216 差额);M14 迁移回填历史 completed 点的 tlusty_status 文档: - 新增 failed81 POPZER/DPSILG 制胜配方根因分析、Windows 节点经跳板 RDP 运维手册; failed400 增补 ladder 生产化实现与第二轮 121 残点实测矩阵
DCTS (Distributed Computing TLUSTY/SYNSPEC)
基于 Rust 构建的高性能分布式恒星大气模型(TLUSTY)与合成光谱(SYNSPEC)网格计算调度系统。
💡 项目简介
DCTS 是专为恒星光谱计算设计的分布式计算控制系统。通过将多维度参数网格(如 Teff, log g, log He, log C, log N, log O)离散化为独立计算点,DCTS 能够在 Master 服务端统一管理任务队列与计算状态,由分布在不同物理节点上的 Worker 离散执行 4 阶段物理收敛链,实现自动化调度、种子传递、发散回退与高吞吐并行计算。
🚀 快速开始 (Quickstart)
1. 编译系统
cd dcts
cargo build --release
编译产物位于 target/release/:
server:调度与 API 主服务端node:计算节点后台进程
2. 构建前端与启动服务端 (Master & Web Dashboard)
首先编译前端全域实时网格可视图看班:
cd dashboard && npm install && npm run build && cd ..
运行后端处理与管理主程序 (Master):
./target/release/server --workflow config.yaml --port 8090
服务端启动后将通过分级自动绑定监听:
- 开放调配 RESTful 接口 (
/api/...): 为算力节点群与客户调控工具开放的高速接口池。 - 实时监控分析空间: 指向
dashboard/dist,使用通用现代浏览器访问http://127.0.0.1:8090/即可免额外网关无障碍视见计算态势全局状态台。
3. 启动计算节点 (Worker)
在 Worker 节点配置 .env 环境变量:
DCTS_NODE_ID=node-worker-01
DCTS_SERVER_URL=http://<MASTER_IP>:8090
DCTS_MAX_SLOTS=4
运行节点进程:
./target/release/node
节点会自动加载 .env,与服务端握手注册、下载缺失的基础原子数据与可执行程序,并开始循环 Claim 任务执行计算。
🔐 安全与鉴权 (Security & Auth)
DCTS 采用分层鉴权模型,公网部署务必按下表配置凭据。
鉴权主体
| 主体 | 环境变量 | 用途 | 持有方式 |
|---|---|---|---|
| Admin | DCTS_ADMIN_TOKEN |
Dashboard 登录、工作流 CRUD、起停计算、节点审批授权 | 人工,Dashboard 输入 |
| Node | (服务端审批后自动颁发) | 心跳、领任务、上报、下载数据 | 节点本地 .node_token 文件(权限 600) |
兼容:旧变量
DCTS_AUTH_TOKEN仍有效,自动回退用作 Admin 凭据(建议迁移到DCTS_ADMIN_TOKEN)。
节点注册流程(免凭据申请 + 管理员审批)
- 节点启动时优先读取本地
runtime/.node_token;不存在则免凭据向/api/node/register提交注册申请,进入pending_approval待审批状态。 - 管理员在 Dashboard「节点管理」面板点击【同意接入】后,服务端颁发该节点专属 token(仅返回一次,DB 只存 SHA-256 hash)。
- 节点轮询
/api/node/check_status取回专属 token 并持久化到.node_token(权限 600)。 - 后续所有请求携带专属 token;服务端按 token 反查
node_id鉴权。 - 重发/停用:通过 Dashboard「节点凭据管理」面板或下方管理 API 操作。
节点凭据管理 API(Admin 角色)
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/admin/nodes |
列出全部节点及凭据状态(在线/token 有效/颁发时间) |
| POST | /api/admin/nodes/:node_id/approve |
同意待审批节点的接入申请并颁发 token |
| POST | /api/admin/nodes/:node_id/reject |
拒绝待审批节点的接入申请 |
| POST | /api/admin/nodes/:node_id/reissue |
重新颁发 token,返回新明文(旧 token 立即失效) |
| POST | /api/admin/nodes/:node_id/disable |
停用节点(保持在线但不再分发任务,可恢复) |
| POST | /api/admin/nodes/:node_id/enable |
重新启用被停用的节点 |
所有端点要求 Admin token(Authorization: Bearer <DCTS_ADMIN_TOKEN>)。被攻陷节点持有的 node token 无权访问这些端点,因此重发/停用始终是管理员主动行为。
公网部署清单
# .env(服务端配置;计算节点无需任何凭据,免凭据申请后由管理员审批授权)
DCTS_ADMIN_TOKEN=<强随机值>
TLS/HTTPS:请在容器外部自行配置反向代理(如 Nginx / Caddy / 云负载均衡)终止 TLS, 再将流量转发到本服务的 8090 端口。本服务默认仅监听 HTTP。
默认安全策略
- CORS:仅允许同源或本地 Origin(localhost / 127.0.0.1 / [::1])。
- 请求体限制:普通 API 10MB,任务上报 256MB。
- 安全响应头:CSP /
X-Content-Type-Options/X-Frame-Options/Referrer-Policy默认开启。 - 审计日志:所有写操作(POST/PUT/DELETE)记录
subject + method + path(不记请求体)。 - 应急调试:
DCTS_AUTH_DISABLE=1跳过全部鉴权(仅本地,切勿生产)。
🏛️ Workspace 核心模块
| Crate / Tool | 类型 | 职责说明 | 详细文档 |
|---|---|---|---|
common |
Library | 提供底层配置解析、输入文件构造、收敛判定、子进程调用与种子匹配引擎 | README |
server |
Binary | 基于 Axum 的中央 API 服务端,负责网格生成、节点心跳、任务调度与状态持久化 | README |
node |
Binary | Worker 节点 Daemon 进程,负责任务抢占、自适应环境预热、计算链执行与产物汇报 | README |
mq |
Library | 基于 SQLite 构建的高可靠事务型分布式任务队列引擎 | README |
dashboard |
Web UI | 基于 Vite 与原生高交互前端语系创写的分层式恒星网格任务可观测可视化控表空间 | 说明详情 |
import_db |
Tool CLI | 离线 DB 导入工具(扫结果目录 conv.json → 直写本地 db 文件) | README |
📚 详细文档导航 (docs/)
系统技术细节按以下主题组织:
- 📐 系统架构 (Architecture):Master-Worker 拓扑结构、任务生命周期与心跳机制。
- 🔗 API 参考 (API Reference):Axum RESTful 接口规格明细与鉴权方式。
- 💾 数据库设计 (Database):SQLite 数据表结构模式与队列状态机设计。
- ⚙️ 物理链设计 (Design):4 阶段 TLUSTY/SYNSPEC 计算链、冷启动与种子步进(Seed Step)降级重试逻辑。
- 📦 部署运维指南 (Deployment):生产环境部署、Systemd 服务配置、安全令牌与日志管理。
- 🔧 故障排查 (Troubleshooting):常见发散案例分析、僵死进程回收、节点断连恢复。
- 🤝 参与贡献 (Contributing):本地开发环境搭建、规范与测试说明。
📄 License & 联系方式
- License: MIT / Apache-2.0
- Maintainers: TLUSTY High-Performance Computing Workgroup
Languages
Rust
73.3%
JavaScript
15.2%
Shell
4.8%
CSS
3.9%
Python
1.7%
Other
1.1%