docker - 使用 docker swarm 使用 GPU 内存作为约束来调度容器

标签 docker gpu nvidia docker-swarm

是否可以使用 docker swarm 将容器调度到具有一定 GPU 内存的节点上?

例如,如果我需要调度一个具有 5GB GPU 内存的容器,如何让 swarm 不调度该容器,直到有足够 GPU 内存的节点可用为止。

最佳答案

从 1.12.x 开始,使用 Docker Swarm - 我能想到完成类似任务的唯一方法如下:

  • 从管理节点,通过 docker node update 命令标记满足您要求的所有节点:
    • docker 节点更新 --label-add gpu-5g node-1
  • 然后,当您创建服务时,使用约束参数来限制服务在目标计算机上运行
    • docker service create ...--constraint 'node.labels == gpu-5g'

如果您需要运行时剩余可用内存,那么可能需要组合容器来协调标签的设置。一个在所有 GPU 计算机上运行的服务容器,报告当前可用内存,另一个在管理器节点上运行,用于设置标签。

我会关注这个问题,因为这是一个有趣的问题。了解您最终如何解决这个问题将会很有趣。

关于docker - 使用 docker swarm 使用 GPU 内存作为约束来调度容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40172594/

相关文章:

linux - 操作系统和内核是不同的东西吗?

python-3.x - 如何从Colaboratory下载大文件(例如模型的权重)?

c - 当在一个循环中启动大量内核时,OpenCL 程序会卡住

c++ - 你如何计算 nvidia(支持 cuda)的 gpu 卡上的负载?

windows - 如何在 Windows 上运行 nvidia-smi?

Docker - 在源文件中构建 Arg

amazon-web-services - 将AWS Lambda函数转换为容器

dockerhub 自动构建 - 需要广泛的 github 权限?

c++ - 以GPU(OpenGL)为目标的Halide-基准测试并使用HalideRuntimeOpenGL.h

c++ - 在 C++ 中支持 cuda 的错误 opencv