我们最近有一台超级计算机(我将其称为“集群”,它有 4 个 GPU 和 12 核处理器以及一些不错的存储空间和 RAM)用于我们的实验室进行机器学习研究。机器上将安装一个 Linux 发行版(很可能是 CentOS 或 Ubuntu,当然取决于您的建议)。我们希望以具有以下用户层次结构的方式设计远程访问:
- 管理员(1 人,教授):这将是集群的唯一超级用户。
- 特权用户(约 3 人,博士生):这些人将是实验室中更精通技术或长期研究人员,他们将在集群中为自己定义一个用户。他们应该能够设置自己的环境(通过 docker 或 conda),远程开发他们的项目并自由地将文件传入和传出集群。
- 普通用户(约 3 人,硕士生):我们希望这类用户只与集群交互,因为它的计算能力和存储的数据。他们不应该在集群中拥有自己的用户。如果他们只能使用 Jupyter Notebooks 就可以了。他们应该能够访问集群中的只读数据,因为我们正在处理的数据太多,他们无法在本地下载。但是,他们应该无法更改集群中的任何内容,并且只能将他们的笔记本和一些输出文件放在那里,他们应该能够在必要时将其下载到本地系统以进行报告。
我们还希望只为类型 3 用户分配我们计算能力的一部分。其他人应该能够在需要时访问所有功能。
对于所有用户来说,应该很容易从他们个人计算机上的任何操作系统访问集群。对于类型 1 和 2,我认为用于远程开发 .py 文件和为 jupyter 笔记本建立隧道的 PyCharm 是最佳选择。
我对此进行了大量研究,但由于我没有 IT 背景,我无法确定以下方法是否可行。
- 为类型 3 用户设置 JupyterHub。这样我们就不必让这些人在集群中拥有用户。但是,我不确定 GPU 对此的支持。根据这里,我们只能限制每个用户的 CPU。此外,当我们设置集线器时,他们是否能够访问管理员主目录下的数据,或者我们是否必须为此复制数据?我们只希望他们能够访问数据的特定部分(与他们正在从事的任何项目相关的数据,因为他们只对那个项目签署了保密协议)。这对 JuptyterHub 可行吗?
- 其余的(类型 1 和类型 2)将在集群中拥有他们的(sudo 或非)用户。对于这种情况,是否有 UI 可以解决,以便用户可以更轻松地将文件从集群传输到集群(他们不必使用 scp)?例如,FileZilla 是一个选项吗?
- 最后,如果类型 2 用户可以解决类型 3 用户的问题,那么他们就不必每次遇到问题时都请教教授。但是 afaik,您必须是超级用户才能控制 JupyterHub 的内容。
如果有人必须在自己的实验室中设置这种环境并分享他们的经验,我将不胜感激。