HPC高性能计算解决方案
HPC高性能计算应用分类
按照应用需求对应的应用领域分为计算密集型应用(Computing-intensive): 大型科学工程计算,数值模拟等。其应用领域为石油、气象、CAE、核能、制药、环境监测分析、系统仿真等。
数据密集型应用(Data-intensive): 数字图书馆,数据仓库,数据挖掘,计算可视化等;其应用领域:图书馆、银行、证券、税务、决策支持系统等。
IO密集型应用(Network-intensive):涉及到网络、磁盘IO的任务都是IO密集型任务,这类任务的特点是CPU消耗很少,任务的大部分时间都在等待IO操作完成(因为IO的速度远远低于CPU和内存的速度),其应用领域:网站、信息中心、搜索引擎、电信、流媒体等。
不同的HPC应用对IT资源的消耗是不同的,高性能计算系统需根据其不同的应用场景来配置资源。计算密集型应用需要配置高主频CPU、数据密集型、内存约束型应用需要配置高带宽大内存、IO密集型应用需要配置高带宽大容量并行存储系统、 IB网络。同时要注意用户双精度性能的要求。
计算密集型应用
计算密集型应用(Computing-intensive): 大型科学工程计算,数值模拟等。其应用领域为石油、气象、CAE、核能、制药、环境监测分析、系统仿真等。特点:要进行大量的计算,消耗CPU资源。比如计算圆周率、对视频进行高清解码等等,全靠CPU的运算能力。
计算密集型任务虽然也可以用多任务完成,但是任务越多,花在任务切换的时间就越多,CPU执行任务的效率就越低,所以,要最高效地利用CPU,计算密集型任务同时进行的数量应当等于CPU的核心数。
计算密集型任务由于主要消耗CPU资源,因此,代码运行效率至关重要。Python这样的脚本语言运行效率很低,完全不适合计算密集型任务,对于计算密集型任务,最好用C语言编写
数据密集型应用
数据密集型应用(Data-intensive): 数字图书馆,数据仓库,数据挖掘,计算可视化等;其应用领域:图书馆、银行、证券、税务、决策支持系统等。
数据密集型应用与计算密集型应用是存在区别的,传统的计算密集型应用往往通过并行计算方式在紧耦合的超级计算机上运行少量计算作业,即一个计算作业同时占用大量计算机节点;
而数据密集型应用的特点主要是:大量独立的数据分析处理作业可以分布在松耦合的计算机集群系统的不同节点上运行;
高度密集的海量数据I/O吞吐需求;
它所处理的对象是数据,是围绕着数据而展开的计算。它需要处理的数据量非常巨大,且快速变化,它们往往是分布的、异构的。因此,传统的数据库管理系统不能满足其需要。
IO密集型应用
IO密集型应用(Network-intensive): 协同工作,网格计算,遥控和远程诊断等;其应用领域:网站、信息中心、搜索引擎、电信、流媒体等。
涉及到网络、磁盘IO的任务都是IO密集型任务。特点:CPU消耗很少,任务的大部分时间都在等待IO操作完成(因为IO的速度远远低于CPU和内存的速度)。
对于IO密集型任务,任务越多,CPU效率越高,但也有一个限度。常见的大部分任务都是IO密集型任务,比如Web应用。
IO密集型任务执行期间,99%的时间都花在IO上,花在CPU上的时间很少,因此,用运行速度极快的C语言替换用Python这样运行速度极低的脚本语言,完全无法提升运行效率。对于IO密集型任务,最合适的语言就是开发效率最高(代码量最少)的语言,脚本语言是首选,C语言最差。