助力深度学习!阿里开源可插拔 GPU 共享调度工具( 十 )

代表了指定时间 。

如果此时发现分配节点上没有 GPU 资源符合条件 , 此时不进行绑定 , 直接不报错退出 , 默认调度器会在 assume 超时后重新调度 。

  • 调用 Kubernetes API 执行节点和 Pod 的绑定

以下图为例 , 当 GPU Share Scheduler Extender 要把 gpu-mem:8138 的 Pod 和经过筛选出来的节点 N1 绑定 , 首先会比较不同 GPU 的可用资源 , 分别为 GPU0(12207)GPU1(8138)GPU2(4069)GPU3(16276)其中 GPU2 所剩资源不满足需求 , 被舍弃掉;而另外三个满足条件的 GPU 中 GPU1 恰恰是符合空闲资源满足条件但同时又是所剩资源最少的 GPU 卡 , 因此 GPU1 被选出 。

3. 节点上运行

当 Pod 和节点绑定的事件被 Kubelet 接收到后 , Kubelet 就会在节点上创建真正的 Pod 实体 , 在这个过程中 Kubelet 会调用 GPU Share Device Plugin 的Allocate方法 Allocate方法的参数是 Pod 申请的 gpu-mem 。 而在

推荐阅读