你必须非常努力,才能看起来毫不费力!
分类:
2008-11-25 10:51:01
描绘HPC路线图
HPC(High-Performance Computing),中文直译为,这个字眼经常出现在IT类相关的媒体中,我们的板块也针对这个领域的和应用作了非常多的报道。应该说,目前这个领域在技术创新上处于非常活跃的阶段,在应用上具有相当大的开发潜力,尤其是在企业级商业应用方面。不过在以往,我们对此类话题的报道多限于其在科学计算方面的应用。
有一种对高性能计算非常高的评价:HPC已成为继理论和实验科学之后,人类认识未知世界的第三大方法。
不错,在对高性能计算不断认知的过程中,我们看到,高性能计算不仅成为驱动经济和社会发展的一种生产力,更成为衡量一个国家核心竞争力的关键指标。在国内,高性能计算不仅在石油、气象、生物、科研、国防等科学工程计算领域扮演着重要的角色,而且在金融证券、商业、企业、政府、教育等信息服务领域也得到越来越广泛的应用。据IDC预测,到2008年,全球高性能计算机的市场容量将达到76亿美元。
虽然我们曾经对HPC作了大量的文字报道,并一直跟踪着这个领域的成长和动态。但是,那些杂乱无章的点滴文字并没能够给读者呈现出非常清晰的HPC成长轨迹。现在,我们希望能够通过这个HPC专栏,以每期半个版到一个版的篇幅,系统、全面地介绍高性能计算的过去、现在以及未来。我们将从高性能计算的发展史、高性能计算中心的挑战、国内高性能集群的现状、高性能集群的选型、高性能计算的商业应用以及业界专家对高性能计算的看法等多个方面介绍,描绘出一幅壮观的HPC路线图。
超级计算(Supercomputing)和高性能计算(High Performance Computing,HPC)都表示了能进行并行数值计算和数据处理的大规模运算。然而,我认为超级计算和高性能计算还是有一定的区别。其一,超级计算是高性能计算的一个子集;其二,高性能计算是超级计算进一步发展的结果。
超级计算vs高性能计算
关于超级计算和高性能计算的定义有很多,但到目前,没有一个被学术界、工业界和应用现实所公认。不过,它们都表示了使用当今世界上最高性能的计算机进行计算的含义。
从我个人工作中所体会到的超级计算和高性能计算含义为:
超级计算
计算速度是其追求的第一目标。最快的速度,最大的,最庞大的体积,最昂贵的价格。超级计算的名词出现于上世纪20年代,概念形成于上世纪70年代,和Cray公司同步发展。而Cray Research 的任务是制造世界上最快的计算机。因而在上世纪80~90年代,Cray成为计算机最高水平的代表。
主要用于科学计算。早期的应用仅涉及格点差分模式计算(气象预报软件MM5),有限元计算,空气动力学分析。几乎和数据处理无关。
致力于专业用户。昂贵的价格,超先进的计算机制造技术,特定的大型工程和大型企业形成了极少的用户群。也形成了相对封闭的技术时代。
超级计算中标准测试(benchmark)的重点为浮点运算速度测试,包括如下几个标准。
1976年发布的Dhrystone,主要用于测整数计算能力,计算单位是DMIPS。
1976年发布的Whetstone,主要用于测浮点计算能力,计算单位是MFLOPS。
1980发布的Linpack,为解线性方程和线性最小二乘问题的子程序包。主要用于测浮点计算能力。高性能计算
更倾向于追求综合性能。随着超级计算需求的扩大,上世纪80年代初出现了小巨机的概念;随着超级计算应用面的扩大,上世纪80年代后期开始出现高性能计算的概念,把超级计算推向了各个领域,对超级计算追求单一计算指标转变为追求高性能的综合指标。
应用于数值计算和数据处理。数据库技术的成熟,生物基因技术的发展,历史数据的几何级膨胀把超级计算推向数据处理领域。
更倾向于走产业化发展道路。用户群的扩大,价格的敏感度,PC机产品化的成熟,迫使高性能计算采用高性能的产品化部件构成高性能的产品化计算机系统,也促使高性能计算技术走向开放。
标准测试程序趋于综合性能测试。成立于1988年的SPEC,体现了软硬件平台的性能和成本指标。目前,SPEC得到了包括、HP、等主要服务器厂商的认可。而成立于1988年的TPC,是最常用的数据库服务性能测试。
软件技术阻碍全面应用
硬件技术的快速发展促进超级计算走向高端计算;软件技术的缓慢发展则阻止了高端计算走向中低端。从硬件技术上来讲,从上世纪40年代第一台计算机ENIAC的5000次/s到目前的183T次/s,速度提高了三千七百亿倍,这主要归功于硬件技术的发展。
然而,在高性能计算领域,相对于硬件,并行软件技术几十年来没有获得突破性的进展。特别是分布式计算技术,自动并行识别技术等。
并行编程要达到良好的可编程性,必须解决结构性、通用性和可移植性问题。(并行化编译器、自动并行化、用户指导和运行时间并行化)最大的难题是要解决数据依赖和控制依赖问题,几十年来始终处于研究过程中,没有达到MS-DOS到Windows量级的提高,令用户失望。
因此,即使高性能计算机的价格很低,也只能停留在高端或中端领域。
要使超级计算到桌面(低端),除价格因素外,并行编程的可编程性和用户并行编程能力的提高是走向普及的两个方面,而用户并行编程能力的提高涉及人类历史文化思维习惯的各个方面,没有几十年、上百年的培育是很难适应的。因此在可预见的时间内,如果没有很好的并行运行工具,超级计算到桌面是不可能现实的。
Nvidia公司首席科学家David Kirk日前在美国斯坦福大学举行的第十七届热门芯片(Hot Chips)研讨会上表示,业界需要加强芯片应用中识别和保存并行机制的技术研究。
在比较通用CPU和图形处理器(GPU)的未来时,Kirk指出,编程技术正面临一场危机,这不仅有可能冲击CPU市场的未来,还有可能终结图形性能领域的进展,尽管GPU一直得到改进。
HPC应用领域变迁
■HPC新应用领域
● 半导体工业:源于单芯片集成度的数量级提高所带来的复杂布线计算需求。
● 信息处理:源于海量数据的积累和数据业务的发展。
● 数据库应用:数据库技术的成熟和数据业务的发展,数据挖掘技术的业务化。
● 金融业务:源于数字化的需要。
● 电信业务:源于电信业务的快速发展。
■ 从Top 500消失的领域
● 化学领域:对计算的需求低于计算能力的增长。
● 领域:对计算的需求低于计算能力的增长。
● 空间技术领域:对计算的需求低于计算能力的增长。
■ 未来HPC应用更值得关注的领域为:
● 数据挖掘应用;
● 图像处理业务;
● 基因测序比对处理。