CraneSched:高性能计算与智能计算融合的分布式智能调度系统
项目介绍
在当前计算技术飞速发展的背景下,分布式计算资源的高效管理和智能调度成为高性能计算领域的关键需求。北京大学高性能计算校级公共平台自主研发的CraneSched,正是一款满足这一需求的分布式智能调度系统。它结合了高性能计算和智能计算的作业调度场景,采用C++、Go等语言进行开发,为用户提供了强大的计算资源管理能力。
项目技术分析
技术架构
CraneSched系统分为前端和后端两部分,前端主要使用Go语言开发,后端则主要采用C++语言开发。前端负责用户交互,后端负责核心调度逻辑和资源管理。
- Cranectld:作为调度系统的“大脑”,Cranectld负责集群节点生命周期的管理、作业队列的调度及管理、节点资源管理及调度。它处理来自用户的各种指令,如作业提交、修改、查询等。
- Craned:部署在计算节点上的守护进程,用于监控节点资源及作业状态,接收用户指令并将其发送给Cranectld,同时将Cranectld的处理结果返回给用户。
资源分配策略
CraneSched在资源分配上进行了细致的设计,根据作业类型的不同,采用不同的资源管理策略:
- 高性能计算作业:通过调用Cgroup Manager组件,使用Cgroup进行资源隔离和分配。
- 智能计算作业:通过调用Container Manager组件,基于K8S进行资源分配,并对容器生命周期进行管理。
项目及技术应用场景
CraneSched适用于需要高性能计算和智能计算调度的复杂分布式计算场景。在“东数西算”的大背景下,CraneSched能够将分布在全国各地的计算资源通过网络进行高效整合,通过先进的调度算法,将用户作业提交到最“空闲”的集群上,从而充分利用各集群资源,大幅减少用户排队时间。
应用案例
- 高性能计算作业调度:对于需要大量计算资源的科学研究和工程计算任务,CraneSched能够快速匹配资源,实现高效作业调度。
- 智能计算作业调度:在机器学习、深度学习等领域,CraneSched能够通过Container Manager进行资源分配,支持模型的训练和推理。
项目特点
- 功能强大:支持高性能计算和智能计算两种作业模式,满足不同用户的需求。
- 资源高效:每秒可调度10万个以上的作业,实现作业与资源的快速匹配。
- 高度可伸缩:支持百万核心算力中心规模,适应不断增长的计算需求。
- 易使用:用户使用指令和系统管理指令简洁易用,降低用户学习成本。
- 安全:采用RBAC权限控制和通信加密,保障系统安全。
- 高度可容错:作业故障自动恢复,无单点故障,系统状态快速故障恢复。
- 完全开源:源代码完全开放,鼓励社区参与和贡献。
通过以上分析,可以看出CraneSched是一款功能全面、性能卓越的分布式智能调度系统。它的出现,为高性能计算和智能计算领域带来了新的解决方案,有望成为计算资源调度领域的新标杆。欢迎广大开发者和用户关注并使用CraneSched,共同推动计算技术的发展。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考