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

2.2 当调度器找到满足条件的节点 , 就会委托 GPU Share Scheduler Extender 的 bind 方法进行节点和 Pod 的绑定 , 这里 Extender 需要做的是两件事情

  • 以 binpack 的规则找到节点中最优选择的 GPU 卡 id , 此处的最优含义是对于同一个节点不同的 GPU 卡 , 以 binpack 的原则作为判断条件 , 优先选择空闲资源满足条件但同时又是所剩资源最少的 GPU 卡 , 并且将其作为ALIYUN_COM_GPU_MEM_IDX保存到 Pod 的 annotation 中;同时也保存该 Pod 申请的 GPU Memory 作为ALIYUN_COM_GPU_MEM_PODALIYUN_COM_GPU_MEM_ASSUME_TIME保存至 Pod 的 annotation 中 , 并且在此时进行 Pod 和所选节点的绑定 。

注意:这时还会保存ALIYUN_COM_GPU_MEM_ASSIGNED的 Pod annotation , 它被初始化为“false” 。 它表示该 Pod 在调度时刻被指定到了某块 GPU 卡 , 但是并没有真正在节点上创建该 Pod 。 ALIYUN_COM_GPU_MEM_ASSUME_TIME

推荐阅读