Skip to content

Releases: open-intelligence/OpenI-Octopus

Octopus v2.0

25 Aug 08:25
Compare
Choose a tag to compare

新特性

  • 支持基于kube-batch任务调度;

  • 新增任务支持集成InfiniBand设备的功能;

  • 新增主干子任务功能,主干子任务最终状态为任务最终状态;

  • 新增对ELK日志系统的支持,可收集业务模块日志及任务日志;

  • 新增docker commit功能,用户可将镜像打包并推送到系统镜像仓库;

  • 新增Pipeline组件,支持对任务通过插件化定制;

  • 新增Pipeline插件通用实现;

  • 新增TaskSet任务模板,新增tasksetcontroller组件;

  • 插件化service,并定义统一的service服务入口,通过ingress代理各种service,如jupyterlab、日志代理等。

  • 新增集群安装脚本

优化

  • 优化文档说明;

  • 优化接口格式,输出OpenAPI2.0格式文档;

  • 优化服务容器未设置时区问题;

Octopus v3.0

02 Nov 10:25
38528f7
Compare
Choose a tag to compare
Octopus v3.0 Pre-release
Pre-release

test

v2.0

29 Sep 11:09
Compare
Choose a tag to compare
v2.0 Pre-release
Pre-release

1、修复了一些bug;
2、抽离了PCL部分业务逻辑;
3、完善了部署文档等。

Octopus K8S scheduler version

30 Jun 08:28
Compare
Choose a tag to compare
Pre-release

1、支持K8S调度;
2、增加对ELK日志系统的支持,可收集业务模块日志及任务日志;
3、支持docker commit功能,用户可将镜像打包并推送到系统镜像仓库;
4、集成NPU插件,可调度寒武纪NPU;
5、插件化service,并定义统一的service服务入口,通过ingress代理各种service,如jupyterlab、日志代理等。

Octopus v1.0

30 Dec 14:58
Compare
Choose a tag to compare

重构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服务,将带来主要以下几点的增强:
  1. 基于主从模块的进程服务集群调度方案,提供稳定的服务高可用能力;
  2. 从底层基本上提供的安全防御能力了,保证更专注于业务能力的扩展;
  3. 插件式开发,解耦功能模块,更好的团队技术沉淀能力
  • 代码升级
    针对代码进行部分的翻新升级,实施原则为:
  1. 业务代码与功能代码分离解耦;
  2. 基于async/await新语法执行函数调用,保持精简;
  3. 使用强声明变量,防止作用域污染

OpenI

15 Dec 16:30
Compare
Choose a tag to compare

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支持。