84 lines
4.2 KiB
Markdown
84 lines
4.2 KiB
Markdown
# 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. 编译系统
|
||
```bash
|
||
cd dcts
|
||
cargo build --release
|
||
```
|
||
编译产物位于 `target/release/`:
|
||
- `server`:调度与 API 主服务端
|
||
- `node`:计算节点后台进程
|
||
- `sync_seeds`:种子同步管理工具
|
||
|
||
### 2. 构建前端与启动服务端 (Master & Web Dashboard)
|
||
首先编译前端全域实时网格可视图看班:
|
||
```bash
|
||
cd dashboard && npm install && npm run build && cd ..
|
||
```
|
||
运行后端处理与管理主程序 (Master):
|
||
```bash
|
||
./target/release/server --workflow config.yaml --port 8090
|
||
```
|
||
服务端启动后将通过分级自动绑定监听:
|
||
- **开放调配 RESTful 接口** (`/api/...`): 为算力节点群与客户调控工具开放的高速接口池。
|
||
- **实时监控分析空间**: 指向 `dashboard/dist`,使用通用现代浏览器访问 `http://127.0.0.1:8090/` 即可免额外网关无障碍视见计算态势全局状态台。
|
||
|
||
### 3. 启动计算节点 (Worker)
|
||
在 Worker 节点配置 `.env` 环境变量:
|
||
```env
|
||
DCTS_NODE_ID=node-worker-01
|
||
DCTS_SERVER_URL=http://<MASTER_IP>:8090
|
||
DCTS_MAX_SLOTS=4
|
||
```
|
||
运行节点进程:
|
||
```bash
|
||
./target/release/node
|
||
```
|
||
节点会自动加载 `.env`,与服务端握手注册、下载缺失的基础原子数据与可执行程序,并开始循环 Claim 任务执行计算。
|
||
|
||
---
|
||
|
||
## 🏛️ Workspace 核心模块
|
||
|
||
| Crate / Tool | 类型 | 职责说明 | 详细文档 |
|
||
| :--- | :--- | :--- | :--- |
|
||
| [`common`](crates/common/README.md) | Library | 提供底层配置解析、输入文件构造、收敛判定、子进程调用与种子匹配引擎 | [README](crates/common/README.md) |
|
||
| [`server`](crates/server/README.md) | Binary | 基于 Axum 的中央 API 服务端,负责网格生成、节点心跳、任务调度与状态持久化 | [README](crates/server/README.md) |
|
||
| [`node`](crates/node/README.md) | Binary | Worker 节点 Daemon 进程,负责任务抢占、自适应环境预热、计算链执行与产物汇报 | [README](crates/node/README.md) |
|
||
| [`mq`](crates/mq/README.md) | Library | 基于 SQLite 构建的高可靠事务型分布式任务队列引擎 | [README](crates/mq/README.md) |
|
||
| [`dashboard`](dashboard/index.html) | Web UI | 基于 Vite 与原生高交互前端语系创写的分层式恒星网格任务可观测可视化控表空间 | [说明详情](dashboard/package.json) |
|
||
| [`sync_seeds`](tools/sync_seeds/README.md) | Tool CLI | 离线 / 增量种子数据文件(`.7`)高效率同步工具 | [README](tools/sync_seeds/README.md) |
|
||
|
||
---
|
||
|
||
## 📚 详细文档导航 (`docs/`)
|
||
|
||
系统技术细节按以下主题组织:
|
||
|
||
- 📐 **[系统架构 (Architecture)](docs/architecture.md)**:Master-Worker 拓扑结构、任务生命周期与心跳机制。
|
||
- 🔗 **[API 参考 (API Reference)](docs/api_reference.md)**:Axum RESTful 接口规格明细与鉴权方式。
|
||
- 💾 **[数据库设计 (Database)](docs/database.md)**:SQLite 数据表结构模式与队列状态机设计。
|
||
- ⚙️ **[物理链设计 (Design)](docs/design.md)**:4 阶段 TLUSTY/SYNSPEC 计算链、冷启动与种子步进(Seed Step)降级重试逻辑。
|
||
- 📦 **[部署运维指南 (Deployment)](docs/deployment.md)**:生产环境部署、Systemd 服务配置、安全令牌与日志管理。
|
||
- 🔧 **[故障排查 (Troubleshooting)](docs/troubleshooting.md)**:常见发散案例分析、僵死进程回收、节点断连恢复。
|
||
- 🤝 **[参与贡献 (Contributing)](docs/contributing.md)**:本地开发环境搭建、规范与测试说明。
|
||
|
||
---
|
||
|
||
## 📄 License & 联系方式
|
||
|
||
- **License**: MIT / Apache-2.0
|
||
- **Maintainers**: TLUSTY High-Performance Computing Workgroup
|