Tim*_* J. 6 gpu cluster-computing slurm kubernetes docker-datacenter
背景
最近我的实验室投资了 GPU 计算基础设施。更具体地说:两个 TitanV 安装在标准服务器机器上。目前,该机器正在运行一个根本没有配置的 Windows Server。我实验室的每个人都可以登录并做任何他们想做的事情。时不时会发生机器对其他人完全无用的情况,因为有人不小心占用了所有可用内存。
由于机器学习在这里增长。我正在寻找一种更好的方式来利用我们的基础设施。
要求
到目前为止我尝试过的
我有一个小型测试设置(带有 GTX 1070 的消费类 PC)用于实验。我的互联网研究将我指向了 SLURM 和 Kubernetes。
首先,我喜欢集群管理系统的想法,因为它提供了未来扩展基础设施的选项。
SLURM 设置起来相当容易,但我无法设置诸如远程提交或时间片调度之类的东西。
与此同时,我也尝试使用 Kubernetes。对我来说,它提供了更多有趣的功能,尤其是容器化。但是,所有这些功能都使设置和理解变得更加复杂。我再次无法构建像远程提交这样的东西。
我的问题
有没有人遇到过同样的问题,可以报告他/她的解决方案吗?我有一种感觉,Kubernetes 为未来做好了更好的准备。
如果您需要更多信息,请告诉我。
谢谢蒂姆!
据我所知,Kubernetes不支持GPU共享,这是这里询问的。
目前正在讨论将 GPU 共享给多个容器是否可行?#52757
我找到了一个 docker 镜像,其中包含“支持非官方共享 GPU”的示例,可在此处cvaldit/nvidia-k8s-device-plugin找到。
这可以通过以下方式使用:
apiVersion: v1
kind: Pod
metadata:
name: gpu-pod
spec:
containers:
- name: cuda-container
image: nvidia/cuda:9.0-devel
resources:
limits:
nvidia.com/gpu: 2 # requesting 2 GPUs
- name: digits-container
image: nvidia/digits:6.0
resources:
limits:
nvidia.com/gpu: 2 # requesting 2 GPUs
这将暴露容器内的 2 个 GPU 来运行您的作业,同时锁定这 2 个 GPU,使其无法进一步使用,直到作业结束。
我不确定如何为多个用户扩展这些,或者以其他方式限制每个作业使用的 GPU 的最大数量。
您还可以阅读有关Schedule GPU 的信息,该信息仍处于实验阶段。
归档时间: |
|
查看次数: |
875 次 |
最近记录: |