Skip to content

Releases: chicogong/dgpu-scheduler

v0.1.1 - Bug Fixes and Docker Improvements

23 Dec 05:05

Choose a tag to compare

What's Changed

🔧 Fixes

  • Fix all linter errors (unchecked error returns)
  • Remove deprecated rand.Seed usage (Go 1.20+)
  • Upgrade to Go 1.24
  • Fix Docker multi-architecture support
  • Fix CI Docker tag format for release events
  • Fix Windows binary builds

🔒 Security

  • Improve security scan robustness
  • Upgrade CodeQL action to v3

🐳 Docker

  • Update NVIDIA CUDA to 12.6.3
  • Multi-arch support (amd64/arm64)

✅ CI/CD

  • All tests passing
  • Multi-platform binaries

Full Changelog: v0.1.0...v0.1.1

🤖 Generated with Claude Code

🎉 DGPU Scheduler v0.1.0 - Initial Public Release

22 Dec 02:03

Choose a tag to compare

🚀 主要特性

核心调度系统

  • 微秒级调度延迟(4-17μs)- 极速响应
  • 🎯 FIFO + 优先级队列调度算法
  • 📊 配额感知资源管理 - 在线/离线工作负载隔离
  • 🔄 事件驱动 + 定期扫描混合调度模式
  • 💾 内存状态管理 + 30秒周期快照持久化

GPU 管理

  • 🖥️ 支持 NVMLnvidia-smi GPU 检测
  • 📈 实时 GPU 状态监控(利用率、显存使用)
  • 🔧 自动故障检测和恢复机制
  • 🔄 Agent 自动重连(指数退避策略)

API 接口

  • 🌐 HTTP REST API - 用户友好的外部接口
  • gRPC API - 高性能 Agent 内部通信
  • 📝 完整的任务生命周期管理
  • 📊 资源查询和动态配额管理

部署方案

  • 🐳 Docker 容器化部署(多阶段构建优化)
  • 🎼 Docker Compose 编排(支持高可用和扩展)
  • 📦 非特权容器安全运行
  • 🔒 完整的健康检查和资源限制

CI/CD 自动化

  • GitHub Actions 完整流水线
  • 🛡️ 多层安全扫描(Gosec, Trivy, CodeQL)
  • 🌍 多平台构建(linux/amd64, linux/arm64)
  • 📦 自动化发布和版本管理

📊 性能指标

指标 数值 说明
调度延迟 4-17 微秒 极速调度响应
设计吞吐量 1000 任务/秒 高并发支持
集群规模 50-200 GPU 节点 中型集群优化
算法复杂度 O(n) n = GPU 总数

📚 文档完整性

  • 双语 README(中文 + English)包含 Mermaid 架构图
  • 开发指南 (DEVELOPMENT.md) - 环境搭建、开发流程
  • 贡献指南 (CONTRIBUTING.md) - 代码规范、提交流程
  • 安全政策 (SECURITY.md) - 漏洞报告、安全最佳实践
  • 变更日志 (CHANGELOG.md) - 版本历史记录
  • API 文档 - 完整的 REST 和 gRPC 接口说明

🧪 测试状态

所有测试通过

覆盖率 状态
pkg/config 65.1% ✅ PASS
pkg/scheduler 48.3% ✅ PASS

测试内容:

  • ✅ 配置加载和验证
  • ✅ 调度算法核心逻辑
  • ✅ 配额检查机制
  • ✅ GPU 分配和释放

🎯 快速开始

Docker Compose 部署(推荐)

# 克隆仓库
git clone https://github.com/chicogong/dgpu-scheduler.git
cd dgpu-scheduler

# 基础部署(调度器 + 1个 Agent)
docker-compose up -d

# 高可用部署(主备调度器)
docker-compose --profile ha up -d

# 多节点部署(2个 Agent)
docker-compose --profile scale up -d

本地开发

# 安装依赖
make deps

# 生成 Protobuf 代码
make proto

# 构建二进制文件
make build

# 运行调度器
make run-scheduler

# 运行 Agent(另一个终端)
make run-agent

测试部署

# 提交一个测试任务
curl -X POST http://localhost:8080/api/v1/tasks \
  -H "Content-Type: application/json" \
  -d '{
    "priority": "high",
    "gpu_count": 1,
    "command": "python train.py"
  }'

# 查询任务状态
curl http://localhost:8080/api/v1/tasks/{task_id}

# 查看 GPU 资源
curl http://localhost:8080/api/v1/gpus

🔮 未来规划

v0.2.0 目标

  • 主备调度器高可用(自动故障切换)
  • Prometheus 指标暴露
  • GPU 亲和性调度策略
  • 任务优先级动态调整

v0.3.0 目标

  • Web UI 管理界面
  • 更丰富的调度策略
  • 任务依赖和工作流支持
  • 资源预留机制

🛠️ 技术栈

  • 语言: Go 1.21+
  • 通信: gRPC + HTTP REST
  • 序列化: Protocol Buffers
  • 日志: zap (结构化日志)
  • 容器: Docker + Docker Compose
  • CI/CD: GitHub Actions

🙏 致谢

感谢所有为 DGPU Scheduler 项目做出贡献的开发者!

特别感谢:

  • Go 社区提供优秀的工具链
  • gRPC 和 Protocol Buffers 团队
  • Docker 和容器化技术
  • GitHub Actions 自动化平台

📞 支持与反馈


完整变更日志: https://github.com/chicogong/dgpu-scheduler/blob/v0.1.0/CHANGELOG.md