我可以访问一组通过 1Gb LAN 连接的服务器,每个服务器都有 40 多个核心和 Ubuntu 操作系统。它们都有一个共同的 NAS。我在其中几个服务器上安装了 SLURM,并将其配置为每个服务器既是控制节点又是计算节点,并且服务器之间没有连接。所需的分析是生物信息学的,受 CPU 限制,但文件大小为 GB。我的问题如下:
- 这不是计算集群,对吗?将这些服务器连接到单个集群需要什么?
- 在此配置下使用 Slurm 等 HPC 管理器是否有效?数据将如何共享?他们确实有一个通用的 NAS,但与本地文件相比,直接在 NAS 上运行任何计算都非常慢。
我的理想解决方案是将文件拉到本地机器(理想情况下无论它们位于何处,但 NAS 可以作为公共集线器)执行计算并可能返回输出文件。这是一个不合理的要求还是一个已解决的问题?
提前致谢!
答案1
是的,这是一个计算集群。我对此有一个广义的定义,即多个计算节点承担相同的工作负载。大型构建场具有多个运行计算工作器的主机,符合条件。TOP500 列表中的庞大系统也符合条件。
更重要的是,利用 slurm 管理多个节点的能力。否则,一个控制器只管理自己会相当复杂,因为与更简单的系统相比,它的功能并不多。添加所有节点,并将它们分成多个分区。
请求多个节点的作业要求程序能够感知多个节点,就像 MPI 一样。对于常规的不感知程序,只需将请求保留到一个节点即可。
存储,您需要设计一些东西来将文件传输到节点。通常选项包括:
- 将文件复制到每个节点的本地存储。(slurm sbcast)
- 将分布式存储分布到多个节点的磁盘上。(Lustre、Ceph)
- 每个节点上都安装了高性能文件共享。(所有闪存阵列都服务于 NFS)