为了在一个架构中提供最多的功能,SLURM 开源作业调度程序(由中国天河-IA ">超级计算机以及即将推出的 IBM® Sequoia 超级计算机采用)优化了资源分配和监视。本文将了解 SLURM 及其平行集群内的工作负载的方式。
超级计算机是军备竞赛的一个典型示例。随着现代超级计算机不断增强的性能扩展到新的问题领域,这些巨大的系统也在提供解决新问题的平台。超级计算机是国家和企业荣誉感的来源,因为公司和国家都致力于提高 LINPACK 的成绩。图 1 展示了过去五年间超级计算机军备竞赛的情况,同时 IBM Sequoia 超级计算机目前被预测为 2012 年内的领军者。如图所示,IBM Roadrunner 是第一台打破一直不变的千万亿次障碍的超级计算机(而 IBM Blue Gene®/L 则自 2004 年至 2008 年一直位居榜首)。
图 1. 超级计算机性能:2008-2012
早期的超级计算机目的在于为核武器建模。如今,它们的应用更为广泛,可处理气候研究、分子建模、大型物理模拟甚至强力的密码破译等领域内的大量计算问题。
1964 年至今
何为 LINPACK 基准?
为了对比互相竞争的超级计算机的性能,就创建了 LINPACK 性能基准。LINPACK 度量的是浮点运算的执行速度。具体而言,LINPACK 是一组用来解决密集的线性方程系统的程序。
通常认为,第一台超级计算机是 1964 年发布的(由 Seymour Cray 设计)Control Data Corporation (CDC) 6600。6600 使用硬件、Freon 冷却系统和能完成每秒浮点操作数为 3 百万的单个 CPU 填充了四个机柜。虽然并不缺少美感,但它的机柜却明显可见很多用于将外围单元处理器连接到单个 CPU 上以使其尽量繁忙的彩色电线。
快速发展至今,目前的超级计算机的领先者是日本的 Kei 计算机(由 Fujitsu 构建)。此系统注重于蛮力计算功能,使用了超过 88,000 个 SPARC64 处理器,占用了 864 个机柜。Kei 超级计算机的一个显著特点是突破了 10 千万亿次的障碍。与 CDC 6600 类似,Kei 使用的是水冷加气冷。
什么是超级计算机?
超级计算机不是关于任何特定的架构,它只是处在计算性能尖端的一种设计。如今,这意味着如果以 LINPACK 基准度量,该系统能够在千万亿次(或百万之四次方的 FLOPS)的性能范围内运行。
无论超级计算机如何实现这些 FLOPS,任何超级计算机架构的一个低层目标都是在有工作可做时最佳地保持计算资源忙碌。与 CDC 6600 用来保持其单个 CPC 忙碌的外围处理器类似,现代的超级计算机需要同样的基本性能。让我们来看这样一个计算节点资源管理的实现,其名为 Simple Linux® Utility for Resource Management (SLURM)。
SLURM 简介
SLURM 是一种可用于大型计算节点集群的高度可伸缩和容错的集群管理器和作业调度系统。SLURM 维护着一个待处理工作的队列并管理此工作的整体资源利用。它还以一种排他或非排他的方式管理可用的计算节点(取决于资源的需求)。最后,SLURM 将作业分发给一组已分配的节点来执行工作并监视平行作业至其完成。
本质上,SLURM 是一个强健的集群管理器(更关注于对功能丰富性的需求方面),它高度可移植、可伸缩至大型节点集群、容错好,而且更重要的是它是开源的。SLURM 最早是一个开源的资源管理器,由几家公司(包括 Lawrence Livermore National Laboratory)协作开发。如今,SLURM 已经成为了很多最强大的超级计算机上使用的领先资源管理器。