HPC集群平台搭建概念

  在本文之前,我建议先看完这篇文章:Linux高性能计算集群 – Beowulf集群  

一、搭建集群中可能会遇到的问题

1.集群设计/布局的一大难点就是网络,各家有各家的策略,一般围绕Beowulf变型。
2.软件的部署缺乏实操调试,也不能断定这样部署是否成功以及是否优越。
3.操作系统的选型以及安装系统、所需软件(包括集群管理工具、驱动软件、能耗监控软件等)的整个流程的手动/自动化部署。
4.每个提供硬件的对应公司几乎都推出他们自己的集群管理软件,浪潮好像没有,在HPC方面浪潮好像没有相应的开发社区,DELL和IBM这些大公司都有。
5.能耗的衡量,具体的优化方向和策略。

二、HPC概览

①总体构成

Outside Network: 外部网络
Master Node: 主节点
Compute Nodes: 计算节点
Storage: 存储器
Computational Network: 计算网络
Management Network: 管理网络

②大多数 HPCC 系统配有两个网络

  1. 基于TCP的管理网络
  2. 计算网络,可以是基于 TCP 或其它协议的,通常是 InfiniBand 或 Myrinet 10G 之 类的高速网络

③拓扑图

网上找的普遍认可的:
HPC集群平台搭建概念_第1张图片
HPC集群平台搭建概念_第2张图片


这个是自己根据实际情况“臆想”的:
HPC集群平台搭建概念_第3张图片

④所需软件组件(按安装顺序):

1、对于安装系统:

  集群中的每个节点(HPCC 节点文章链接)、主节点、登录节点和计算节点都需要有操作系统。操作系统可以安装在节点的硬盘驱动器上,甚至可以安装在ramdisk 上,这有时被称为“无盘”或“无状态”节点。一般说来,主节点创建所谓的“映像”,然后将其发送到计算节点上进行安装(硬盘驱动器或 ramdisk 上)。
  系统装在内存会更快,但断电后要采取将系统拷贝到硬盘的方法重新存储起来,比较麻烦。
  
  几种安装工具的特点:
  HPC集群平台搭建概念_第4张图片

  但是,比较有名有Rocks(比xCat安装简单)、xCat。
  xCAT:
a、支持自己系统独立,可以自己选择基于RHEL的最新版本系统;
b、命令行安装,需要人工编辑配置文件,安装一台之后再利用脚本进行网络安装裸机节点;
c、xCat在安装起来像一个个独立软件,如其他并行计算需要的相关软件可以通过xCat命令安装;
  Rocks:
a、ROCKS 基于 Red Hat 发行版,这对于大多数人是合适的,但是对于使用 SUSE 或者希望使用在 RH 6.2 发行版上创建的映像的人就不合适了,里面的软件可以选择性安装。另外,ROCKS 不是克隆解决方案;
b、之前需刻录CD,GUI界面部署,之后人工进行节点命名和节点ip的配置,安装时一台一台进行;
c、Rocks则像一个集成的包,包含工具与软件;
Rocks = CentOS + Rolls
Roll软件包包括:

  • base:基本的Rocks Cluster管理工具
  • SGE:SUN Grid Engine,集群下作业调度
  • HPC:为集群上的并行应用提供运行环境(MPI,PVM)
  • area51:分析集群上文件和内核的完整性
  • Ganglia:集群监控软件(主流hpc cluster基本都有这个)
  • Bio:集群的生物信息学工具

一般而言,这两种方法只有适用性与便捷性的差异。
有一个视频课程 http://edu.51cto.com/course/course_id-507.html

  对于操作系统的选择,调研了很多,一般用Red Hat,Centos居多,一方面是社区活跃,一方面是源码开发,资源兼容较多。
(MIC开发上基本采用Red Hat,Centos,SUSE,windows也开始有了)

2、安装驱动和开发工具。

包括IB驱动、编译器、编辑器、调试器、库等。

并行计算开发环境:

  • 安装英特尔众核平台软件堆栈(MPSS),包含各种驱动。
    https://software.intel.com/en-us/articles/intel-manycore-platform-software-stack-mpss#lx34rel
  • 假如用intel的编译器的话(我们应该是用intel的):
    下载安装intel parallel studio xe 2015,包含有性能分析工具、编译器、高性能库、并行编程工具等,对Xeon Phi进行相应的优化和升级。 Cilk Plus,OpenMP,TBB多线程编程技术和向量化技术在Xeon & Xeon Phi上都已实现了,软件开发者无需额外的移植成本。(试用30天)
    https://software.intel.com/en-us/intel-parallel-studio-xe/try-buy
  • xeon phi与第三方工具是否available,参考Intel FAQ:
    https://software.intel.com/en-us/articles/intel-and-third-party-tools-and-libraries-available-with-support-for-intelr-xeon-phitm

3、配置节点信息存储系统

安装NFS、PVFS、Lustre 、Luster、GPFS、SNFS等,一般大型的HPC集群用Lustre能获得更好的性能,但不太适合小集群,小集群可以考虑用NFS和PVFS,但NFS并不是面向并行计算的,推荐用PVFS好一点。

关于Lustre:
  一个Lustre文件系统主要包括以下四个组件:管理服务器Management Server(mgs), 元数据服务器Meta Data Target(mdt), 对象存储服务器Object Storge Target(ost) ,客户端Lustre clients(lc)。
  它主要包括三个部分:元数据服务器MDS (Metadata Server)、对象存储服务器OSS (Object Storage Server)和客户端Client。
  正常的启动顺序是:OST -> MDS -> CLIENT

  甲骨文产品管理负责人Bob Thome表示:“云文件系统并不是甲骨文首个基于集群文件系统的产品。甲骨文管理着Lustre项目,Lustre更适合于拥有上千台服务器的大规模HPC(高性能计算)部署。云文件系统则更适合于25个节点数左右的小规模部署,尽管Lustre已经通过了多达100个节点的测试。Lustre也可以实现很多相同的功能,但使用门槛较高,安装和配置较为繁琐,并不适合于小规模部署。”
  关于Lustre的博文:http://www.cnblogs.com/jpa2/category/384788.html

PVFS存在以下不足:
1)单一管理节点。上面说到过PVFS中只有一个管理节点来管理元数据,当集群系统达到一定的规模之后,管理节点将可能出现过度繁忙的情况,这时管理节点将成为系统瓶颈。
2)对数据的存储缺乏容错机制。当某一I/O节点无法工作时,上面的数据将出现不可用的情况。
3)静态配置。对PVFS的配置只能在启动前进行,一旦系统运行则不可再更改原先的配置。

4、集群管理工具(考虑是否集成了一些组件)

  集群管理工具 (CMT),它的职能是管理集群。它有多个功能,有的是可选功能。而必须具备的功能包括:

  • 维护计算节点清单(即集群中包括的节点)。只需通过简单如 /etc/hosts 的,就能复制或通过本地 DNS 发送至每个计算节点
  • 创建、管理映像或安装在计算节点上的数据包集
  • 发送映像或数据包到计算节点(一般通过 PXE )
  • 执行对计算节点的基本监控(例如,节点工作情况?什么节点发生起落?)
  • 计算节点电源控制(不是硬性要求,但是强烈推荐)。即远程开启/关闭节点,此功能可以通过各种方法实现,有的方法需要使用增加其他硬件。

虽然这个功能清单对于有集群经验的人来说显得太简短,但清单所载功能是 CMT真正的核心。具备其他功能也不错,但对集群来说并不是必不可少的。

  CMT 包括 Platform OCS、Clustercorp ROCKS+、Microsoft Windows CCS 和平台管理器 (Platform Manager) 、Mon等。

5、可选组件:

  集群所需的工具并不多,但有了这些就能实现集群的基本运行。不过,它只能满足 1 个用户或 2 至 3 个用户的需要,此外,要实现全面控制和掌握集群的运行情况。要安装一些可选组件,从技术上虽然是可选项,但是没有这些工具,集群就不具备生产能力。
有一些组件可以添加到 CMT 或 CMI 上层。一个有数年管理多个集群经验的人说的,强烈建议您郑重考虑使用以下附加组件:

  • 更加广泛的监控工具,包括集群状态图形视图,例如Ganglia(链接- http://ganglia.info/)、Cacti(链接 - http://www.cacti.net/)和 Nagios(链接 -http://www.nagios.org/)
  • 报告工具,允许您创建关于集群运行情况的报告
  • 用户帐户管理工具(允许您在整个集群上创建用户帐号、允许用户设置密码,然后将其传播到集群的所有节点上,允许无密码登录节点,这对于运行 MPI 应用程序是必需的)

另一个理论上可选,但值得强烈推荐的组件——任务调度器(也被称为资源管理器)任务调度器是一个允许用户提交执行任务、但不参与任务运行的排队系统。任务调度器把提交的任务排成队列,等到资源(即节点)可用时,就开始运行。任务调度器包括:Platform LSF、PBS-Pro 和 MOAB 等。

6、测试

三、参考链接:

http://www.ibm.com/developerworks/cn/linux/l-cluster1/
http://zh.community.dell.com/techcenter/w/techcenter_wiki/50
http://www.hpcblog.com.cn/


附上一张高清MIC图:


HPC集群平台搭建概念_第5张图片

你可能感兴趣的:(HPC)