可以将 3 台独立的计算机合并为一台 运行 吗?
Can slurm run 3 seperate computers as one "node"?
我是一名实习生,负责在三个计算单元 运行ning ubuntu 上安装 slurm。现在的工作方式是人们通过 ssh 进入其中一个计算单元,然后 运行 在那里工作,因为所有三个单元都通过 nfs 挂载共享内存。否则它们是单独的机器。
我的问题是,根据我在文档中阅读的内容,似乎在安装 slurm 时我会将这些计算单元中的每一个指定为一个完全独立的节点,以及我想要的任何作业 运行 使用多核的系统仍然会受到单个节点上可用核数的限制。然而,我的主管告诉我,这三个单元应该作为一个节点安装,当一个作业需要的内核多于单个计算单元上可用的内核时,slurm 应该只使用所有内核。目的是我们不会改变我们执行作业的方式(如并行化 R 脚本),只是 "wrapping" 在将它们发送到 slurm 进行调度和执行之前在 sbatch 脚本中。
那么我的主管是否正确,slurm 可用于 运行 我们的并行化脚本不变,内核比单台机器上可用的内核多?
运行 内核多于可用的脚本是无稽之谈。它没有提供任何性能提升,而是相反,因为必须管理更多的线程,但计算能力是相同的。
但从某种意义上说,他是对的,您可以包装当前脚本并将其发送到 SLURM 以使用整个节点执行。但是这三台机器将是三个节点。它们不能作为单个节点工作,因为它们不是单个 node/machine。它们既不共享内存也不共享总线,也不共享外围设备...它们只是通过网络共享一些磁盘。
你这么说
any jobs I'd like to run that use multiple cores would still be limited by how many cores are available on the individual node
但这就是 SSH 的现状。使用 SLURM 管理资源不会有任何损失。事实上,SLURM 将负责为每个作业提供适当的资源并避免其他用户干扰您的计算。
你最好的选择:像往常一样创建一个由三个节点组成的集群,让人们发送他们的工作,要求在不超过可用资源的情况下请求尽可能多的资源。
我是一名实习生,负责在三个计算单元 运行ning ubuntu 上安装 slurm。现在的工作方式是人们通过 ssh 进入其中一个计算单元,然后 运行 在那里工作,因为所有三个单元都通过 nfs 挂载共享内存。否则它们是单独的机器。
我的问题是,根据我在文档中阅读的内容,似乎在安装 slurm 时我会将这些计算单元中的每一个指定为一个完全独立的节点,以及我想要的任何作业 运行 使用多核的系统仍然会受到单个节点上可用核数的限制。然而,我的主管告诉我,这三个单元应该作为一个节点安装,当一个作业需要的内核多于单个计算单元上可用的内核时,slurm 应该只使用所有内核。目的是我们不会改变我们执行作业的方式(如并行化 R 脚本),只是 "wrapping" 在将它们发送到 slurm 进行调度和执行之前在 sbatch 脚本中。
那么我的主管是否正确,slurm 可用于 运行 我们的并行化脚本不变,内核比单台机器上可用的内核多?
运行 内核多于可用的脚本是无稽之谈。它没有提供任何性能提升,而是相反,因为必须管理更多的线程,但计算能力是相同的。
但从某种意义上说,他是对的,您可以包装当前脚本并将其发送到 SLURM 以使用整个节点执行。但是这三台机器将是三个节点。它们不能作为单个节点工作,因为它们不是单个 node/machine。它们既不共享内存也不共享总线,也不共享外围设备...它们只是通过网络共享一些磁盘。
你这么说
any jobs I'd like to run that use multiple cores would still be limited by how many cores are available on the individual node
但这就是 SSH 的现状。使用 SLURM 管理资源不会有任何损失。事实上,SLURM 将负责为每个作业提供适当的资源并避免其他用户干扰您的计算。
你最好的选择:像往常一样创建一个由三个节点组成的集群,让人们发送他们的工作,要求在不超过可用资源的情况下请求尽可能多的资源。