返回 登录
0

高性能集群解决方案系列(一)之问题初探

阅读7459

随着科技与技术的进步,越来越多的生产或研发企业在产品设计与仿真工作上的投入与日剧增,这些投入不仅包括软件也包含硬件,他们的工作方式也从在单机上完成一个产品的设计过度到了同时使用多台机器协同工作来完成工作,在这种工作环境下设计人员在工作中的效率会更多的依赖多机器的协同调度效率和计算速度,那么企业内部的IT管理员为设计人员提供一整套运算速度快、调度效率高、稳定、安全可靠的企业级的高性能集群将成为必然。以此来帮助设计人员提高设计工作效率,加快产品设计的迭代速度,同时也为企业的发展助力。

作为高性能集群管理员来说,要成功搭建一套适合自身企业发展的高性能集群需要了解很多知识,从硬件到软件再到调度系统,无一不具有挑战。因此在搭建之初需要充分了解未来可能会遇到的问题,并对这些问题做全面的分析、预见、总结,以为将来选择合适的解决方案提供帮助。

下面就对高性能集群问题做一下基础性的总结分析:

1. 什么是高性能集群?

高性能集群是用于完成高性能计算(High performance computing, 缩写HPC),而将计算所需要的各种资源进行统一协调调度管理,并整合而成为一套对外提供高速计算服务的软硬件集合,它具有运算速度快、多任务、兼容性强、资源利用率高、使用简单等众多特点。

2. 高性能集群的常用术语有哪些?

术语 解释
作业 通常指在高性能集群中用于完成某一计算任务的单元,用户可以在此计算任务完成后得到想要的结果,并在需要时可以监控任务的计算过程。
集群 高性能集群用于提供作业运行的环境,应该包含完成作业运行所需要的所有条件。
并行计算 一般代表作业在计算运行的过程中,并非只存在一个序列化的计算过程,而是可以将其分成若干个子任务并同时运行在多个CPU上的计算方式。
计算时间 用于表示一个作业从开始计算任务到成功结束或出错退出所消耗的时间。
LINPACK值 用于反映一个集群环境搭建完成后的性能指标,通常使用专用工具进行测试。
计算节点 在集群中主要用于完成用户提交的计算任务的计算服务器。
SMP节点 提供作业运行所需要的大量资源的一种计算节点。此种节点服务于一类特殊的作业,此类作业需要大量的计算机资源象内存、 CPU等存在于一台计算机中。

表1

3. 哪些企业工作需要高性能集群,哪类人员会用到?

高性能集群一般用于完成人力无法实现或需要难以想象的工作量才能实现的工作。

  • 很多企业用于产品零部件设计的仿真以避免实验生产带来的巨大投入,用计算作业即可以验证设计是否正确或达到预想的设计目标,从而使用高性能集群来缩短设计周期,当然在有些情况这类仿真的工作只能用计算机来完成,靠人力是无法实现的。
  • 还有用于电子芯片设计或电路板设计,通过高性能集群来完成大量复杂的设计工作,这些工作的进行也必须依靠计算机辅助来完成,并通过高性能集群来获得稳定可靠的计算能力及时间要求。
  • 在业务模型分析计算的场景中,高性能集群同样也有它的用武之地,通常这些模型所需要的数据量和产生的数据量都是巨大的,需要计算机来帮助进行数据处理,并计算在不同条件下业务模型所产生的结果是否完善,从而借以帮助指导生产。
  • 在学校的教学科研中同样也发挥着很大作用,以辅助教师的教学和课题研究工作。

高性能集群所应用的行业广泛,像航空、航天,军工制造、电子电路、天气气象、生物工程……等等,同时涉及到计算机辅助设计与制造、数据统计分析等各行业工作都有可能需要高性能集群来帮助完成。

4. 高性能集群需要哪些资源?

通常来说高性能集群内的资源主要包含(但不限于)以下所列内容:

  • 硬件资源:
    主要指进行任务计算的计算机服务器,包含 CPU、内存、GPU、本地硬盘等可参与任务计算的物理设备,以组成可进行运算的物理机器。
  • 网络资源:
    通常情况下为了达到高效的数据传输和保证计算速度,会将网络分为高性能集群自身管理所需要的网络,通常使用千兆或万兆网络用于集群自身的管理需要和数据收集,再使用另外一种更高速的网络(像IB网络)用于任务计算时进行数据交换,将管理网络与计算网络分开有助于提高集群的使用效率,不致于任务计算中产生的大量数据传输影响了集群管理和使用。
  • 应用软件资源:
    应用软件是基于整个高性能集群之上用于用户作业计算所使用的第三方专业的与行业相关的软件,像Fluent、Dyna、Start-ccm、workbench等商业软件都是属于此类。高性能集群会提供这些软件所需要的运行环境,并对这些软件计算任务进行调度管理。
  • 许可证资源:
    这是通常所说的应用软件的license资源,许可证资源也同样需要进行调度管理,因为在真实的运行环境下许可证的数量一定是有数量限制的。
  • 存储资源:
    高性能集群中产生的数据一般都会存储在单独的存储空间中。数据如何存放及管理是高性能集群建设之初需要考虑的一个重点,需要做好未来长期使用的规划,因为数据如何存放不仅会影响到高性能集群自身的后期使用,也会对未来与其它系统整合时产生重要作用。

5. 高性能集群是非独立存在,并与其它系统存在交互吗?

在企业的IT构架中,高性能集群本身主要是用于完成任务计算,与其它系统自然会存在或多或少的交互,这其中既包括与其它系统的相互调用,也包括进行数据传递交互。与作业前后处理系统进行数据交互,与企业内部门户系统进行登录交互,与数据管理系统进行存储交互……等。

企业的集群管理员需要考虑与已有系统和未来要建设的系统存在哪些业务整合要求,为更好的无缝集成使用做好准备。

6. 如何选择计算服务器的类型和操作系统?

目前流行的服务器种类很多,在选择上主要是要考虑到自身企业的业务需求、使用限制条件、计算应用对硬件的依赖等,最后还要考虑到自身的特殊需求及未来业务发展需要。

  • 如无特殊需要,同时自身作业无苛刻的运行条件,那么可以选择通用性强的x86架构服务器,它成本底、易于维护、相关资料非常多。
  • 当x86服务器不能满足你的任务计算需要,那么可以选择关键应用领域常用的小机型系列,在很多行业像电信、银行、金融也会在特殊要求的前提下选择小机型以满足业务运行要求。
  • 对于在性能方面要求非常高的业务来说,还可以选择大型机来做为基础硬件。
  • 操作系统主要可从Linux、Windows、AIX三种来考虑,首先应考虑的是在Linux平台上创建高性能系统,因为高性能平台的设计大都是基于Linux平台。
  • 对于有些应用软件厂商并不提供基于Linux的使用环境,所以需要选择Windows平台。
  • 对于两者都支持的条件下,企业又无使用特殊限制,那么可使用Linux做集群的操作系统平台。

7. 什么样的调度系统适合自身企业?

调度系统作为高性能集群中的一个重要组件不可或缺,主要用于完成集群中的计算任务的收集与分配工作,并对集群内的资源使用情况进行监控管理。调度系统需要能对集群内的所有可用资源进行调度,并提供相关的分配策略以满足企业计算作业需要。

集群管理首先要明确计算任务的业务模型、计算方法、计算条件、依赖资源等,并在此基础上制定未来作业的调度方式与规则。一个调度策略丰富的调度系统是满足业务使用、发展的必要条件。

8. 集群用户如何管理?

用户在高性能集群中是一个计算任务运行的基本身份,这些用户也是集群中各主机操作系统用户,这些用户在集群内所有主机上应该保持一致以保证任务的顺利分配并完成。
所有的权限、数据、文件、环境相关功能都会对应到具体的用户个体上,原则上只要保证这些用户在所有主机上保持一致即可,但在实际应用中为了管理维护的方便,要对用户进行统一的管理与身份认证,所以会使用一套用户集中管理系统像NIS、LDAP、WindowAD等来实现。

9. 哪种文件系统适合企业自身的业务?

文件系统用于存储高性能集群任务运行所产生的临时数据和最终计算结果,磁盘的IO效率也会做为一个影响因素作用到任务本身,并进而影响任务的运行时间,使用机器cpu越多、文件系统读写越快自然就会让任务的计算速度越高。现在并行文件系统在高性能集群中应用越来越广泛,就是因为它在读写速度、数据保存方式上都有很大的优势,同时并行文件系统在节省网络带宽方面也有帮助。

传统的以I/O节点为接入方式的存储系统已经逐步被替代,这种方式带来很多问题像读写速度慢、单点故障等问题,当然在你的环境中用于存储不常用的数据或作为备份系统还是可以使用的,毕竟使用更低的成本可以换取更大的存储空间。

10. 高性能集群的数据如何存储管理?

数据如何存储会影响到集群使用的方便性及与其它系统进行数据交换的可能性。

首先数据包括高性能集群计算任务的输入和输出及运行中产生的临时文件,这些文件要在集群内各个主机上共享访问,同时还要能方便的输出传递给第三方系统,输入文件也可能是来自第三方系统。其次集群内主机的不同操作系统,也要能够同时访问到这些文件。那么数据就需要一个独产的存储空间进行共享存储,同时还要能保证它对所有相关对象的可访问性,合理的考虑存储空间的大小及相关的权限分配要提前做好规划。

11. 高性能集群应该具备哪些基本功能及要求?

  • 具有资源管理和许可证管理功能
  • 安全管理模块
  • 丰富的调度策略
  • 支持多种硬件结构及操作系统
  • 快速I/O及网络性能
  • 统一的管理入口及简单易用
  • 容错性、高可用性、可配置性
  • 第三方集成接口及二次开发接口

12. 是否可以选择开源软件?

普通用户及使用人员做为学习、研究、试验的目的而使用开源软件是可以选择,同时你需要撑握很多的知识以满足使用它的需要,开源软件有主要解决问题的方向能不能满足需求需要管理员进行深入的调研。

做为一个产品而产生的高性能软件一定会在提供符合企业需求的基础上,还在帮助企业减少管理成本等很多角度来提供服务,那么对于企业管理员来说,就需要评估自身的软硬件条件、人员技术水平差异、未来的特殊需求等众多因素,最终才能作出合适的解决方案。

作者:王海辉(haihwang@cn.ibm.com)
责编:周建丁

评论