Releases: open-intelligence/OpenI-Octopus
Octopus v2.0
新特性
-
支持基于kube-batch任务调度;
-
新增任务支持集成InfiniBand设备的功能;
-
新增主干子任务功能,主干子任务最终状态为任务最终状态;
-
新增对ELK日志系统的支持,可收集业务模块日志及任务日志;
-
新增docker commit功能,用户可将镜像打包并推送到系统镜像仓库;
-
新增Pipeline组件,支持对任务通过插件化定制;
-
新增TaskSet任务模板,新增tasksetcontroller组件;
-
插件化service,并定义统一的service服务入口,通过ingress代理各种service,如jupyterlab、日志代理等。
-
新增集群安装脚本
优化
-
优化文档说明;
-
优化接口格式,输出OpenAPI2.0格式文档;
-
优化服务容器未设置时区问题;
Octopus v3.0
test
v2.0
Octopus K8S scheduler version
1、支持K8S调度;
2、增加对ELK日志系统的支持,可收集业务模块日志及任务日志;
3、支持docker commit功能,用户可将镜像打包并推送到系统镜像仓库;
4、集成NPU插件,可调度寒武纪NPU;
5、插件化service,并定义统一的service服务入口,通过ingress代理各种service,如jupyterlab、日志代理等。
Octopus v1.0
重构model-hub、rest-server
model-hub
- 自研gbeta2框架,提供中间件 ,子路由功能
借助gbeta2提供的带作用域的中间件功能 可以在任何一段API路径前添加前置处理,比如前置的鉴权,或者是参数解析,减少大量的重复代码。
gbeta2 定义在/lib/gbeta2 下 ,是在轻量级的http框架httprouter上做的功能扩展,提供较低级别的 API 接口,无过度的包装,参考了node.js 的express框架的设计。 - 错误处理
简化了错误处理,所有出现的错误即异常,全部return 出来,在最外围的一个方法里统一处理(打错误日志,http返回500)等。 - 替换日志框架
采用了uber开源的zap作为日志框架 - 改写了异步合并文件块的逻辑
原始的文件块合并, 合并成功一个文件块会同时把被合并的原始文件块删除掉,假如之后的合并出现异常,需要重新合并的时,就得要求 客户端重传被删除的文件块,虽然是小概率事件,但仍不合理。
修改为只有合并出一个完整的文件时,才删除那些隶属于它的文件块,减少客户端重传的数据量。 - 改写上传任务死亡判断条件
原始的上传逻辑中在内存中会存放一个记录用来跟踪一次上传任务,每当客户端开始上传一个文件块 会刷新 该任务的last_active_time(上次活跃时间),
model-hub 里面有一个无限循环专门检测已死亡的上传任务,并会做一些清理工作。 但是当网速过慢时,势必会延迟last_active_time的刷新时间,model-hub 可能会误判成超时。
改写之后model-hub 会为每个上传任务加一个写计数,只有当last_active_time 超时并且写计数为0时 才认为上传任务已经死掉。
Rest-server
- 运行时升级
Nodejs运行时至版本升级至Node10.15.0.LTS版本 - 框架升级
阿里巴巴开源的egg企业级NodeJs框架是一款遵循【约定大于配置】原则的web框架,基于egg框架搭建Rest-Server服务,将带来主要以下几点的增强:
- 代码升级
针对代码进行部分的翻新升级,实施原则为:
- 业务代码与功能代码分离解耦;
- 基于async/await新语法执行函数调用,保持精简;
- 使用强声明变量,防止作用域污染
OpenI
OPENI是一个集群管理工具和资源调度平台,最初由 微软研究院(MSR),微软搜索技术中心(STC),北京大学,西安交通大学,浙江大学, 和中国科学技术大学 联合设计并开发, 由 鹏城实验室、北京大学 、中国科学技术大学和 AITISA 进行维护。
OPENI支持在GPU集群中运行AI任务作业(如深度学习任务作业),并提供了一系列接口,支持主流的深度学习框架,如 pytorch、tensorflow、pandle pandle、mxnet、caffe、cntk等。
OPENI v0.9版本发布,包括以下功能:
1、通过Hadoop YARN和GPU强化进行调度和管理,实现底层GPU、CPU、内存等硬件资源的自动调度;
2、通过Kubernetes 来部署和管理系统中的静态组件,并实现集群管理功能;
3、提供模型仓库功能,用于模型的管理,同时通过模型仓库客户端可方便的完成pytorch、keras、mxnet模型与IR之间的互转;
4、集成Prometheus 和Grafana,可提供任务及集群监控功能,方便的查看运行的AI任务及集群的资源使用情况,进行AI作业分析;
5、支持HDFS存储;
6、集成高性能智能计算引擎,其基于张量数据格式,分别封装基础数学操作,常用机器学习算法,卷积操作等,对外提供C++操作接口,并针对大规模计算,提供GPU支持。