随着物联网 (IoT)、人工智能(AI) 、机器学习(ML)和 3-D成像等技术的发展,数据的速度、种类和数量呈爆炸式增长,企业需要处理的数据规模和数量呈指数级增长。
对许多行业来说,如体育直播赛事、新产品测试或股票趋势分析等,对实时处理数据的能力要求非常高。为了在竞争中领先一步,企业需要闪电般快速和高度可靠的IT基础架构来处理、存储和分析大量数据。这种工具就是高性能计算!
一、HPC(高性能计算)概述
1.什么是HPC(高性能计算)?
高性能计算 (High Performance Computing,又叫HPC、超级计算) 是指比传统计算机和服务器提供更高马力聚合计算能力的计算方法。与超级计算机或硬件加速机器不同,高性能计算特别强调使用分布式资源来组合存储、应用程序、计算能力和网络资源,以完成其他方式无法完成的任务。高性能计算需要处理的TB、PB、甚至ZB级别的数据,并且需要接近实时地处理,比如在几分钟或者几小时内得到结果,而不是几天或几个星期。
2.HPC为什么重要?
HPC之所以重要,是因为它能帮助我们更快地完成大型模拟和大型工作负载。
- HPC比普通PC更快更强更省力,它每秒可以执行千万亿次计算,配备3 GHz处理器的笔记本电脑或台式机每秒可以执行大约 30 亿次计算。
- HPC 通过集群/并行计算、最新的 CPU 和GPU、低延迟网络和块存储设备去实现高速处理。
- HPC系统更具可扩展性。用户可以在需要时进行纵向扩展(升级CPU、GPU、内存或其他资源)和横向扩展(将更多节点添加到集群中)。从云服务提供商 (CSP) 租用 HPC
资源可以进一步提高可扩展性并降低成本。
三种HPC解决方案:
- 本地HPC:本地的HPC就是传统的HPC数据中心,需要有高性能服务器和存储,用户自己去搭建这个HPC集群。
- HPC云:云上的高性能计算提供HPC即服务,用户使用公有云去完成计算工作。
- 混合 HPC :一个应用运行在私有云(private cloud)或数据中心(data center)中,当计算能力的需求达到顶峰时则动态地向公有云服务器请求一定量的计算(或存储)能力。当本地的工作负载积压时会立即启动云资源,把工作负载迁移到公有云上去计算,支持的云比如说谷歌云、微软云、Oracle云等。
3.HPC工作原理
HPC中处理信息的两种主要方法是:
(1)串行处理由中央处理单元 (CPU) 完成。每个 CPU 内核通常一次只处理一个任务。CPU 对于运行操作系统和基本应用程序(例如,文字处理、办公效率)等功能至关重要。
(2)可以使用多个 CPU 或图形处理单元 (GPU) 执行并行处理。GPU 最初是为专用图形开发的,可以同时跨数据矩阵(例如屏幕像素)执行多个算术运算。同时处理大量数据平面的能力使 GPU 非常适合机器学习 (ML) 应用程序任务中的并行处理,例如识别视频中的对象。
二、HPC应用场景
HPC出现在 1960 年代,用于支持政府和学术研究。HPC 在 1970 年代开始进入主要行业,以加速复杂产品的开发,例如汽车、航空航天、石油和天然气、金融服务和制药行业。在现在,各行各业都能用到,比如生命科学、天体物理学、基因组学、生物信息学、分子动力学、天气和气候预测。具体应用如图所示:
三、虹科高性能计算解决方案
1.Kubernetes上的高性能计算
Kubernetes作为目前容器管理框架的事实标准,在当下的应用十分火热。随着微服务和容器在企业中越来越流行,它们也在进军机器学习和其他类似的HPC工作。这一趋势模糊了传统HPC和容器技术之间的界限,引发了对利用 Kubernetes进行HPC的可能性的探索。
使用容器和 Kubernetes 来管理和运行 HPC 应用程序有很多好处:
- 容器化是一种强大的工具,可以打包复杂的依赖关系并提高可重复性。
- 随着企业将 Kubernetes 作为应用程序现代化的安全和多云平台,在共享环境中托管 HPC 和企业容器工作负载将简化运营并降低成本。
- Kubernetes 本质上提供了一个包含 CPU、内存和加速器的共享资源池,就像工作负载管理器一样。
更多深入阅读可以参考《kubernetes上的HPC》白皮书。
2.HK-Nimbix HPC平台
(1)什么是JARVICE XE
JARVICE XE 是世界上第一个容器原生混合/多云 HPC 平台,可在任何与 Kubernetes 兼容的基础设施上实现全球范围的横向扩展和加速 HPC 和 AI 工作流(SaaS 和 PaaS)。
- JARVICE提供加速的应用程序和工作流,这些应用程序和工作流可以利用任何基础设施,无论是裸机还是虚拟化,包括专用Kubernetes基础设施上的InfiniBand、GPU和FPGA.
- JARVICE 使客户能够轻松地从本地解决方案突发到来自 Google、AWS 和 Azure 等的公有云系统,或者将内部系统作为私有云进行管理。
(2)使用JARVICE XE在 Kubernetes上运行HPC
JARVICE XE通过两个主要改进弥补了在 Kubernetes上运行HPC代码的差距:
- 两级HPC调度器
调度器提供2个级别,一个将传统的HPC作业请求转换为一组Kubernetes Pod,一个将Pod绑定到节点的组调度器,如果请求的规模不可用,则将整个作业排队。而且组调度器提供一些重要功能去帮助pod调度.
JARVICE XE使用来自 HyperHub™目录中应用程序的元数据为最终用户定义工作流,而不是要求用户编写PBS 或Slurm脚本来启动工作。
- HPC运行时环境
它在作业启动时动态创建,可以根据来自调度程序的工作流请求的参数配置批处理运行或交互界面,可以确保工作流的有限完成,无论求解器成功还是失败,也可以让传统的HPC代码可以不加修改地在JARVICE上运行,如有需要,JARVICE XE还直接支持NFS和CephFS共享文件系统,运行时环境可以通过将主机级别的挂入点定义为机器定义的一部分来附加 Kubernetes原生不支持的存储接口,并行存储系统,例如 WekaIO2。
(3)HyperHub应用市场
Hyperhub是一个精选的点击式目录,提供HPC优化的仿真模拟、Al/ML/DL软件,比如ansys、COMSOL、西门子、Matlab、TensorFlow等等,它具有有数百个加速的高性能工作流,内置支持高性能集群的自动缩放应用程序,将HPC和超级计算应用程序作为点选式的工作流程,并且会自动更新这些软件到任何JARVICE XE部署中。
HYPERHUB与JARVICE XE相结合为nimbix cloud提供支持,使用户能够在任何基础设施上以几乎无限的超级计算能力访问整个应用程序目录,除了已有的软件,hyperhub中没有的软件支持用户自定义安装,使用Jarvice的PushToCompute Tool 可以轻松设置应用程序。JARVICE提供了一个端到端的持续集成/持续部署(CI/CD)管道,用于编译、部署、测试和维护容器化云计算应用程序。这都是该平台的PushToCompute™功能的一部分。
(4)JARVICE XE 优势
- “开箱即用”的计算能力
- JARVICE XE支持私有云、公有云、混合云和多云部署
- JARVICE XE使企业IT部门可以轻松地将HPC添加到他们的服务组合中
- JARVICE XE附带完整的 HPC 软件目录,该目录会自动更新最新版本(接管 IT 负担)
- HK-Nimbix HyperHub 应用程序目录可帮助用户定义工作流程
- 能够将 SLURM 作业转换为低级“Pod”调度程序作业
- 通过容器灵活部署可扩展的 HPC 作业
- 租户隔离,没有客户端共享相同的资源
(5)HK-Nimbix 基础设施趋势
1)计算加速器
Nimbix在公有云中提供最广泛的FPGA和GPU功能目录 → 支持高级求解器以加快计算速度并降低客户成本。
2)更高密度的节点(内存、CPU 内核)
- Nimbix计算节点具有物理内核(相对于“线程”或“VCPU”)
- Nimbix计算节点的每个内核至少有8GB的RAM
-各种可用的GB RAM节点和GPU节点
-128GB、256GB和512GB RAM节点可用于16核
-192GB、384GB和768GB RAM节点可用于20核
-通过云供应商提供的业内最快结构中扩展到数千个内核 - 额外的GPU内存因类型而异,但最高可达 24GB/GPU
3)最快的互连、
- 所有Nimbix计算节点在节点之间有56Gbps InfiniBand,在Spine上有100Gbps
- RDMA用于节点之间的MPI,系统范围内的延迟<2µs
四、案例分享
HK-Nimbix帮助IDEX Biometrics在一周内完成指纹传感器的设计:通过nimbix Cloud,IDEX可以使用相当于四个HPC工作站及其关联的并行计算能力,而无需自己维护基础设施,能够帮助IDEX公司加快新产品研发和上市的速度。