跨多个用户共享强大工作站资源的最佳方式?

跨多个用户共享强大工作站资源的最佳方式?

因此,我将描述设置,然后是确切的要求,然后是我尝试过的选项列表,然后我会询问他们是否是更好的方法或提到的方法中的最佳选择。

所以我们是一群机器学习研究人员,我们有一台非常强大的工作站机器,以及其他功能强大的机器,每个人都有一台。

要求 :

当所有用户同时在工作站上工作时,GPU 在任何给定时间都有效或平等地分配给所有活动用户。 (RAM 足够大,不用担心,而且我们也不介意使用普通硬盘)(某种 GPU 虚拟化?)我们正在寻找一种在 2-3 天内启动并运行的方法。

所有机器上的工作操作系统都是 Ubuntu 16

建议:

  1. 在工作站中设置多个虚拟机,每个用户一个,并通过我们当前的计算机进行 SSH。在另一个操作系统上运行虚拟机似乎是一个很大的开销,而且我们宁愿花在更多的硬件上而不是软件许可证上。 VMWare ESXI 裸机似乎是一种选择。
  2. 多座位方法,它可以同时允许多个用户,尽管每个座位需要一套键盘、鼠标和显卡,我们确实有一个非常强大的 GPU 专门用于显示,但同样它只是一个和多个座位每个席位需要一个,虽然使用单个显卡(xephyr)运行速度较慢,但​​我们仍然需要在用户之间有效地分配计算 GPU。
  3. 多个用户通过 SSH 连接到多个虚拟终端。 Unix 中的多个虚拟终端是在计算机昂贵且使用终端的不同用户之间共享一台计算机的时代创建的。我们仍然需要一种虚拟化 GPU 的方法。但是,如果一切顺利,我们仍然可以工作,因为它们有四个用户和两个计算 GPU,因此我们可以同时运行两个程序,通过代码(Tensorflow)手动将每个程序分配给一个 GPU,但如果有一种方法可以虚拟化两个物理GPU 分成 4 个虚拟 GPU 最好(Nvidia vGPU 除外)。
  4. rCUDA,已向他们发送了请求表。等待。
  5. 一些集群管理系统,例如 Apache Mesos。由于 CMS 不会介意单台或多台计算机,因此它可以在客户端之间进行虚拟化和有效分配其资源。
  6. LTSP,没仔细研究过。

现在我知道我的上述许多建议可能听起来很天真,所以请根据您的知识提出建议。如果问题中的任何内容看起来含糊不清,请指出,我会澄清。

答案1

最好和最简单的解决方法是:Jupyter Notebook(在其他机器上运行代码)+ SSH(访问+使用数据传输协议)+使用 TF 分配 GPU。

相关内容