Volcano v1.4.0-Beta发布,支持NUMA-Aware等多个重要特性

本文2021年9月6日首发于容器魔方微信公众号,原文链接Volcano v1.4.0-Beta发布,支持NUMA-Aware等多个重要特性

北京时间9月4日,CNCF首个批量计算项目Volcano发布v1.4.0-Beta版本。该版本发布了“支持GPU节点多维度资源比例分片”、“支持NUMA-Aware”、“支持多调度器混合部署”等多个重要特性,并在稳定性方面具有显著提升。

支持GPU节点多维度资源比例分片

“支持GPU节点多维度资源比例分片”是该版本具有重大意义的特性之一,主要用于解决GPU节点因CPU等其他维度资源过度使用引起GPU作业饥饿但GPU资源空闲浪费的问题。该特性由Volcano社区合作伙伴中科类脑贡献。在传统调度器中,GPU等稀缺资源在进行分配时与CPU等资源离散考虑,即CPU型作业可直接分配到GPU节点而不会考虑GPU作业的CPU、内存需求,不会为其预留资源。在该特性中,允许用户设置一个主导型资源(通常设置为GPU),并可为它配置配套资源维度的预留比例(如GPU:CPU:Memory=1:4:32)。调度器在工作时将会时刻保持GPU节点上GPU、CPU、Memory的空闲资源比例不低于该设定值,因此任何时刻符合该比例需求的GPU作业均可调度到该节点,而不会引起GPU浪费。这一方法较业界其他解决方案,如GPU节点分配独立调度器、CPU型作业强制不允许调度到GPU节点等,更有利于提高节点资源利用率,使用也更加灵活。

特性设计和使用方式请参考:https://github.com/volcano-sh/volcano/blob/master/docs/design/proportional.md

支持CPU NUMA-Aware

“支持CPU NUMA-Aware”是该版本的另一个重大特性。对于AI、大数据等计算密集型作业来说,启用NUMA特性将显著提升运算效率。该特性实现了CPU NUMA感知调度。用户可通过配置NUMA策略决定是否为工作负载启用NUMA。调度器将根据诉求选择满足NUMA要求的节点。

特性设计和使用方式请参考:https://github.com/volcano-sh/volcano/blob/master/docs/design/numa-aware.md

支持多调度器混合部署

“支持多调度器混合部署”特性允许用户在Kubernetes集群中同时部署不同类型的调度器,并合理进行调度分工。最常见的工作方式为default-scheduler和Volcano混合部署。用户可以将Kubernetes原生资源类型,如deployment、statefulset等,分配给default-scheduler进行调度;将Volcano Job、TF Job、Spark Job等高性能计算负载分配给Volcano进行调度。该方案不仅能充分发挥各调度器的优势,也能很好的降低单调度器的并发压力。

特性设计和使用方式请参考:https://github.com/volcano-sh/volcano/blob/master/docs/design/multi-scheduler.md

除上述特性,v1.4.0-Beta还新增了压力测试自动化框架,并修复了因资源比较函数鲁棒性引入的多个bug等。社区正在进行v1.5的路标特性征集,已征集到的特性包括集群资源监控、支持层级队列、Spark集成能力增强、支持Task依赖等,欢迎有兴趣的开发者issue反馈。