随着物联网(IoT)、人工智能(AI)、机器学习(ML)和3-D成像等技术的发展,数据的速度、种类和数量呈爆炸式增长,企业需要处理的数据规模和数量呈指数级增长。
对许多行业来说,如体育直播赛事、新产品测试或股票趋势分析等,对实时处理数据的能力要求非常高。为了在竞争中领先一步,企业需要闪电般快速和高度可靠的IT基础架构来处理、存储和分析大量数据。这种工具就是高性能计算!
一、
HPC(高性能计算)概述
1.什么是HPC(高性能计算)?
高性能计算(HighPerformanceComputing,又叫HPC、超级计算)是指比传统计算机和服务器提供更高马力聚合计算能力的计算方法。与超级计算机或硬件加速机器不同,高性能计算特别强调使用分布式资源来组合存储、应用程序、计算能力和网络资源,以完成其他方式无法完成的任务。高性能计算需要处理的TB、PB、甚至ZB级别的数据,并且需要接近实时地处理,比如在几分钟或者几小时内得到结果,而不是几天或几个星期。
2.HPC为什么重要?
HPC之所以重要,是因为它能帮助我们更快地完成大型模拟和大型工作负载。
HPC比普通PC更快更强更省力,它每秒可以执行千万亿次计算,配备3GHz处理器的笔记本电脑或台式机每秒可以执行大约30亿次计算。
HPC通过集群/并行计算、最新的CPU和GPU、低延迟网络和块存储设备去实现高速处理。
HPC系统更具可扩展性。用户可以在需要时进行纵向扩展(升级CPU、GPU、内存或其他资源)和横向扩展(将更多节点添加到集群中)。从云服务提供商(CSP)租用HPC资源可以进一步提高可扩展性并降低成本。
三种HPC解决方案:
本地HPC:本地的HPC就是传统的HPC数据中心,需要有高性能服务器和存储,用户自己去搭建这个HPC集群。
HPC云:云上的高性能计算提供HPC即服务,用户使用公有云去完成计算工作。
混合HPC:一个应用运行在私有云(privatecloud)或数据中心(datacenter)中,当计算能力的需求达到顶峰时则动态地向公有云服务器请求一定量的计算(或存储)能力。当本地的工作负载积压时会立即启动云资源,把工作负载迁移到公有云上去计算,支持的云比如说谷歌云、微软云、Oracle云等。
3.HPC工作原理
HPC中处理信息的两种主要方法是:
串行处理由中央处理单元(CPU)完成。每个CPU内核通常一次只处理一个任务。CPU对于运行操作系统和基本应用程序(例如,文字处理、办公效率)等功能至关重要。
可以使用多个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-NimbixHPC平台
(1)什么是JARVICEXE
JARVICEXE是世界上第一个容器原生混合/多云HPC平台,可在任何与Kubernetes兼容的基础设施上实现全球范围的横向扩展和加速HPC和AI工作流(SaaS和PaaS)。
JARVICE提供加速的应用程序和工作流,这些应用程序和工作流可以利用任何基础设施,无论是裸机还是虚拟化,包括专用Kubernetes基础设施上的InfiniBand、GPU和FPGA
JARVICE使客户能够轻松地从本地解决方案突发到来自Google、AWS和Azure等的公有云系统,或者将内部系统作为私有云进行管理。
(2)使用JARVICEXE在Kubernetes上运行HPC
JARVICEXE通过两个主要改进弥补了在Kubernetes上运行HPC代码的差距:
两级HPC调度器
调度器提供2个级别,一个将传统的HPC作业请求转换为一组KubernetesPod,一个将Pod绑定到节点的组调度器,如果请求的规模不可用,则将整个作业排队。而且组调度器提供一些重要功能去帮助pod调度
JARVICEXE使用来自HyperHub目录中应用程序的元数据为最终用户定义工作流,而不是要求用户编写PBS或Slurm脚本来启动工作。
HPC运行时环境
它在作业启动时动态创建,可以根据来自调度程序的工作流请求的参数配置批处理运行或交互界面,可以确保工作流的有限完成,无论求解器成功还是失败,也可以让传统的HPC代码可以不加修改地在JARVICE上运行,如有需要,JARVICEXE还直接支持NFS和CephFS共享文件系统,运行时环境可以通过将主机级别的挂入点定义为机器定义的一部分来附加Kubernetes原生不支持的存储接口,并行存储系统,例如WekaIO2。
(3)HyperHub应用市场
HYPERHUB与JARVICEXE相结合为nimbixcloud提供支持,使用户能够在任何基础设施上以几乎无限的超级计算能力访问整个应用程序目录,除了已有的软件,hyperhub中没有的软件支持用户自定义安装,使用Jarvice的PushToComputeTool可以轻松设置应用程序。JARVICE提供了一个端到端的持续集成/持续部署(CI/CD)管道,用于编译、部署、测试和维护容器化云计算应用程序。这都是该平台的PushToCompute功能的一部分。
(4)JARVICEXE优势
“开箱即用”的计算能力
JARVICEXE支持私有云、公有云、混合云和多云部署
JARVICEXE使企业IT部门可以轻松地将HPC添加到他们的服务组合中
JARVICEXE附带完整的HPC软件目录,该目录会自动更新最新版本(接管IT负担)
HK-NimbixHyperHub应用程序目录可帮助用户定义工作流程
能够将SLURM作业转换为低级“Pod”调度程序作业
通过容器灵活部署可扩展的HPC作业
租户隔离,没有客户端共享相同的资源
(5)HK-Nimbix基础设施趋势
1)计算加速器
Nimbix在公有云中提供最广泛的FPGA和GPU功能目录→支持高级求解器以加快计算速度并降低客户成本.
2)更高密度的节点(内存、CPU内核)
Nimbix计算节点具有物理内核(相对于“线程”或“VCPU”)
Nimbix计算节点的每个内核至少有8GB的RAM
>>各种可用的GBRAM节点和GPU节点
>>128GB、256GB和512GBRAM节点可用于16核
>>192GB、384GB和768GBRAM节点可用于20核
>>通过云供应商提供的业内最快结构中扩展到数千个内核
额外的GPU内存因类型而异,但最高可达24GB/GPU
3)最快的互连
所有Nimbix计算节点在节点之间有56GbpsInfiniBand,在Spine上有100Gbps
RDMA用于节点之间的MPI,系统范围内的延迟<2μs
四、
HK-Nimbix帮助IDEXBiometrics在一周内完成指纹传感器的设计:通过nimbixCloud,IDEX可以使用相当于四个HPC工作站及其关联的并行计算能力,而无需自己维护基础设施,能够帮助IDEX公司加快新产品研发和上市的速度。