feat(all): 源精度命名体系、工作流可观测台、节点停用管理与白名单归档
核心变更:
1. GridAxisValue 源精度命名
- 新增 GridAxisValue 类型,携带 f64 数值 + YAML 源书写文本(Deref 透明兼容算术)
- config.rs 绕过 serde_yaml 归一化,逐 token 捕获轴值原文(logg: 5.0 → g5.0)
- runner/executor/scheduler 全链路改用 DB TEXT 列权威 point_name,
修复 REAL 列回读丢精度导致的 model_name 错配
2. 工作流执行可观测台
- 新增 stats/progress/points 三组 API(进度时间序列、经验速率 ETA、
停滞预警、逐点明细分页、收敛性热力图数据)
- 新增 workflow_progress_snapshots 表 + tasks/grid_points 耗时列
- runner 携带 last_iter/worst_depth/n_depths 进 conv.json
- 前端新增 hash 路由、工作流详情页(概览/网格点/收敛分析三 Tab)、YAML 编辑器
3. 节点停用/启用管理
- 新增 disabled 状态 + disable/enable API;停用节点保持心跳但停止分发,
worker 空闲待命而非退出;移除 revoke API,token 失效统一走重发覆盖;
移除 host_name 字段
4. 白名单结果归档
- 新增 result_filter 模块,只归档有语义产物,丢弃 Tlusty 中间单元(~2MB/模型)
- executor 原子写入归档 + 200 点 LRU 上限
5. 历史数据导入
- sync_seeds 重写为 import_results:经 /admin/import_seed 标记 converged +
按新版命名迁移产物树
6. 部署与目录重规划
- data/results→seeds、data/archive→result + migrate_data_dirs.sh
- deploy.sh 增强(SSH 复用、Profile、远程 env);Dockerfile 瘦身
7. 文档同步更新 api/database/architecture/deployment
This commit is contained in:
+37
-20
@@ -12,7 +12,7 @@ DCTS 计算节点无复杂系统依赖,仅需网络能访问 Master 的 HTTP
|
||||
[ Master 服务端 ] (拥有固定 IP / 域名, 如 http://192.168.1.100:8090)
|
||||
├── dcts_server
|
||||
├── data/dcts.db & data/dcts_queue.db
|
||||
└── data/results/ 集中种子仓库与计算摘要
|
||||
└── data/seeds/ 集中种子仓库(node 上报/导入的收敛种子 .7+conv.json,供远程 node 下载热启动)
|
||||
▲
|
||||
│ HTTP / REST (8090)
|
||||
┌─────┴───────────────┬──────────────────────┐
|
||||
@@ -106,6 +106,7 @@ DCTS 运行时所依赖的物理计算底座二进制文件 `assets/tlusty_stati
|
||||
```
|
||||
|
||||
#### 关键编译选项说明:
|
||||
|
||||
- `-fno-automatic`: 禁用局部变量的自动栈分配(强制将局部变量保存在静态内存区)。这是保证传统 FORTRAN 77 程序正常运行的关键参数,防止大型局部数组造成栈溢出(Stack Overflow)或段错误(Segmentation Fault)。
|
||||
- `-O3`: 开启全量 LLVM/GCC 代码优化,极大加快完全线性化/加速 Lambda 迭代(CL/ALI)及辐射转移方程形式解的计算速度。
|
||||
- `-mcmodel=large`: 当模型数组与数据段超越 2GB 寻址限制时,允许可执行文件使用 64 位大内存寻址模式。
|
||||
@@ -118,18 +119,18 @@ DCTS 运行时所依赖的物理计算底座二进制文件 `assets/tlusty_stati
|
||||
|
||||
### 3.1 服务端环境变量表 (`server`)
|
||||
|
||||
| 环境变量名 | 默认值 | 说明 |
|
||||
| :---------------------- | :--------------------- | :--------------------------------------------------------------- |
|
||||
| `DCTS_PORT` | `8090` | 服务端 HTTP REST API 监听端口 |
|
||||
| `DCTS_DB_PATH` | `data/dcts.db` | 主 SQLite 数据库文件路径(存放节点、网格点及种子记录) |
|
||||
| `DCTS_QUEUE_DB_PATH` | `data/dcts_queue.db` | 任务队列 SQLite 数据库文件路径 |
|
||||
| `DCTS_RESULTS_DIR` | `data/results` | 集中种子仓库与计算总结保存目录 |
|
||||
| `DCTS_BACKUP_DIR` | `data/backups` | 数据库自动/手动备份输出目录 |
|
||||
| `DCTS_ADMIN_TOKEN` | *空* | 管理员控制台与敏感 API 鉴权令牌 |
|
||||
| `DCTS_AUTH_TOKEN` | *空* | 旧版全局 API 鉴权令牌(兼容 Admin 与 Enrollment 校验) |
|
||||
| `DCTS_AUTH_DISABLED` | `false` | 应急开发参数:设置为 `1` 或 `true` 时跳过鉴权 |
|
||||
| `DCTS_STALE_SEC` | `1800` | 任务运行超时重新放回队列的时间上限(秒) |
|
||||
| `DCTS_NODE_STALE_SEC` | `120` | 判定 Worker 节点离线的心跳超时时间(秒) |
|
||||
| 环境变量名 | 默认值 | 说明 |
|
||||
| :---------------------- | :--------------------- | :----------------------------------------------------- |
|
||||
| `DCTS_PORT` | `8090` | 服务端 HTTP REST API 监听端口 |
|
||||
| `DCTS_DB_PATH` | `data/dcts.db` | 主 SQLite 数据库文件路径(存放节点、网格点及种子记录) |
|
||||
| `DCTS_QUEUE_DB_PATH` | `data/dcts_queue.db` | 任务队列 SQLite 数据库文件路径 |
|
||||
| `DCTS_SEEDS_DIR` | `data/seeds` | server 端种子库目录(收敛种子 .7+conv.json,供远程 node 下载热启动,**永不清理**) |
|
||||
| `DCTS_BACKUP_DIR` | `data/backups` | 数据库自动/手动备份输出目录 |
|
||||
| `DCTS_ADMIN_TOKEN` | *空* | 管理员控制台与敏感 API 鉴权令牌 |
|
||||
| `DCTS_AUTH_TOKEN` | *空* | 旧版全局令牌(兼容回退为 Admin 凭据,建议迁移到 `DCTS_ADMIN_TOKEN`) |
|
||||
| `DCTS_AUTH_DISABLED` | `false` | 应急开发参数:设置为`1` 或 `true` 时跳过鉴权 |
|
||||
| `DCTS_STALE_SEC` | `1800` | 任务运行超时重新放回队列的时间上限(秒) |
|
||||
| `DCTS_NODE_STALE_SEC` | `120` | 判定 Worker 节点离线的心跳超时时间(秒) |
|
||||
|
||||
### 3.2 Worker 节点环境变量表 (`node`)
|
||||
|
||||
@@ -140,8 +141,16 @@ DCTS 运行时所依赖的物理计算底座二进制文件 `assets/tlusty_stati
|
||||
| `DCTS_MAX_SLOTS` | `4` | 本地 Worker 节点的并发计算 Slot 槽位数 |
|
||||
| `DCTS_RUNTIME_DIR` | `data/runtime` | 本地 TLUSTY/SYNSPEC 可执行程序及物理谱线数据存放目录 |
|
||||
| `DCTS_WORK_DIR` | `data/work` | 本地计算沙盒工作目录 |
|
||||
| `DCTS_RESULT_DIR` | `data/result` | node 端**完整计算结果归档**目录(光谱/连续谱/各阶段大气快照等全部产物)。超过 200 个网格点子目录时按 LRU 删最旧。旧名 `DCTS_ARCHIVE_DIR` 向后兼容 |
|
||||
| `DCTS_HEARTBEAT_SEC` | `15` | 向服务端发送心跳报告的时间间隔(秒) |
|
||||
| `DCTS_AUTH_TOKEN` | *空* | 匹配服务端的 API 鉴权令牌 |
|
||||
|
||||
> **两目录分工**(重要,避免混淆):
|
||||
> - **`data/seeds/`**(server 端,`DCTS_SEEDS_DIR`):**种子库**。只存最小集 `conv.json` + `<name>.7`,供 `download_seed` 端点给远程 node 热启动下载。**永不清理**(种子是 SeedStep 必需资源,删除会导致已收敛点重算)。
|
||||
> - **`data/result/`**(node 端,`DCTS_RESULT_DIR`):**完整计算结果归档**。存全部科学产物(`.spec/.cont/.iden/.7/各阶段快照/日志`),供本地留档/排错。LRU 上限 200。
|
||||
>
|
||||
> 多机部署下两者物理分离:seeds 在 server 机、result 在各 node 机。单机部署下都挂在 `./data` 下。
|
||||
|
||||
> **注**:Worker 节点**无需配置任何鉴权令牌**。节点启动后免凭据提交注册申请,由管理员在 Dashboard 审批后自动下发专属 token(持久化到 `runtime/.node_token`)。
|
||||
|
||||
---
|
||||
|
||||
@@ -190,24 +199,29 @@ DCTS 运行时所依赖的物理计算底座二进制文件 `assets/tlusty_stati
|
||||
该部署管理框架支持**互动式三步精细向导 (3-Step Wizard)** 与 **自动化长命令行快捷免打扰调度**。
|
||||
您可以根据具体场景灵活运用以下策略组:
|
||||
|
||||
| 安装环境 | 技术引擎 | 适用场景说明 | 推荐自动化直呼执行命令 |
|
||||
|---|---|---|---|
|
||||
| **本地 (Local)** | **Docker Compose** | 单机联调或微服务生态整装秒启动 | `./scripts/deploy.sh -e local -b compose -r all` |
|
||||
| **远程 (Remote)** | **Docker Compose** | 面对严苛依赖的机群打散化打包发布与全动态差分更新 | `./scripts/deploy.sh -e remote -b compose -r all` |
|
||||
| **本地 (Local)** | **Systemd 原生** | 宿主无虚拟化损耗的高并发物理机运行(具备自启提权判定) | `sudo ./scripts/deploy.sh -e local -b systemd -r all` |
|
||||
| **远程 (Remote)** | **Systemd 原生** | 主端向分站超算节点无界穿梭远抛落地与托管后台注册 | `./scripts/deploy.sh -e remote -b systemd -r node` |
|
||||
| 安装环境 | 技术引擎 | 适用场景说明 | 推荐自动化直呼执行命令 |
|
||||
| ----------------------- | ------------------------ | ------------------------------------------------------ | ------------------------------------------------------- |
|
||||
| **本地 (Local)** | **Docker Compose** | 单机联调或微服务生态整装秒启动 | `./scripts/deploy.sh -e local -b compose -r all` |
|
||||
| **远程 (Remote)** | **Docker Compose** | 面对严苛依赖的机群打散化打包发布与全动态差分更新 | `./scripts/deploy.sh -e remote -b compose -r all` |
|
||||
| **本地 (Local)** | **Systemd 原生** | 宿主无虚拟化损耗的高并发物理机运行(具备自启提权判定) | `sudo ./scripts/deploy.sh -e local -b systemd -r all` |
|
||||
| **远程 (Remote)** | **Systemd 原生** | 主端向分站超算节点无界穿梭远抛落地与托管后台注册 | `./scripts/deploy.sh -e remote -b systemd -r node` |
|
||||
|
||||
#### 1. 交互式多重导航进站直奔体验
|
||||
|
||||
在宿主机或者编译主工作区,以最简洁无参数方式执行即唤醒主线指引,全程遵循人性化三层连贯设计选项:
|
||||
|
||||
```bash
|
||||
./scripts/deploy.sh
|
||||
```
|
||||
|
||||
1. **第一步 (环境定位)**:指明需要作用于**本地主机**还是经 SSH 高速管道传输并管理**远端机房控制端**;
|
||||
2. **第二步 (底层引擎)**:指明借助 **Docker Compose 容器微服务架构**(绝佳无冲突隔离)或是注入原生主机执行的 **Systemd 系统级常驻服务**(也含双端优雅拆毁卸载/一键强停命令分支);
|
||||
3. **第三步 (目标角色)**:选定**全部服务 [All: Server + Node]**、**仅运维主控服务端 [Server]** 或 **仅挂扣物理分流算力池计算 Worker 节点 [Node]**。
|
||||
|
||||
#### 2. 系统服务与集群清收降解管理 (去除与关停)
|
||||
|
||||
无论是系统底层的 Systemd 表项或者是持续处于自运行圈范围内部的 Compose 集群容器套,随时均可指派拆除动作清除干净:
|
||||
|
||||
```bash
|
||||
# 卸载或清除对应部署架构,例如卸载本地所有的 systemd 原生守护任务链
|
||||
./scripts/deploy.sh remove -e local -b systemd -r all
|
||||
@@ -217,6 +231,7 @@ DCTS 运行时所依赖的物理计算底座二进制文件 `assets/tlusty_stati
|
||||
```
|
||||
|
||||
#### 3. 守护进程实时勘侦管控技巧 (当直接采用 Systemd 环境时)
|
||||
|
||||
```bash
|
||||
# 检查服务端 / Node 计算分核任务运行常态与生存心跳
|
||||
sudo systemctl status dcts-server
|
||||
@@ -230,10 +245,12 @@ tail -f data/logs/dcts_node.*.log
|
||||
### 4.4 方式四:Docker / Docker Compose 标准纯手工控制容器联调(可选方案)
|
||||
|
||||
系统由专门精简构筑过的 [Dockerfile.server](file:///home/fmq/program/tlusty/tl208-s54/dcts/Dockerfile.server) 和 [Dockerfile.node](file:///home/fmq/program/tlusty/tl208-s54/dcts/Dockerfile.node) 作为构建基础,默认通过只读载入 `assets` 并以多路复用方式提供极致并发计算生态体系:
|
||||
|
||||
```bash
|
||||
# 快速于本机执行容器冷启聚合与并跑
|
||||
docker compose up -d --build
|
||||
```
|
||||
|
||||
启动之后访问对口暴露监控 HTTP Dashboard 地址(常规默认指引定位至端口 `8090`),立即获尽实时拓扑状态曲线!
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user