我们的集群是一个带有 Torque 和 Maui 的 Linux 集群。我在网上阅读教程,发现编译只在头节点上进行,通过 qsub 提交作业后,其他节点正在运行在头节点上编译的可执行文件。所以我的问题就出在这里。
一个集群有一个头节点和多个计算节点,这样对吗?用户登录并通过调度程序在头节点提交作业,这些作业是在计算节点上运行的,而不是在头节点上运行?
程序可以在头节点上编译并在其他计算节点上运行吗?如果可以,是否意味着所有计算节点和头节点必须具有相同的配置和操作系统,因此在头节点上编译的程序可以在其他节点上运行,而无需在每个其他节点上重新编译?
答案1
这取决于您谈论的是哪种类型的集群,有很多种类型。在商业 x86 软件市场中,Microsoft 拥有 MSCS 集群,它是一组(或多或少)等效配置的 Windows 服务器节点,它们彼此之间提供故障转移功能,NLB 集群提供网络负载平衡,Hyper-V 集群支持虚拟化工作负载。VMware 具有高可用性和分布式资源调度集群,同样为集群虚拟机提供各种集群级技术(例如在集群中的节点之间实时迁移正在运行的虚拟机)。Oracle 有他们的真正应用程序集群 (RAC)。
然后你就有了高性能计算集群,它允许扩展可以量化和并行运行的工作负载 - 有很多例子 -这篇维基百科文章是一个不错的探索起点。