 |
|
 |
| 您现在的位置: 先创网 >> 网络应用 >> 服务器技术 >> 文章正文 |
|
|
| [技术]电脑高性能计算理论基础 |
| 木棉论坛 |
| 2005-2-10 10:32:00文/佚名 |
|
|
|
|
|
二、高性能计算体系结构:
2.1.高性能计算架构
高性能计算系统一般包含如下几个层次:
2.2. 高性能计算系统的应用
高性能计算系统的目的是解决大型计算问题,在现实生活中,许多科学研究和商业企业的计算方面的问题都可以通过高性能计算系统来解决。特别是在下面的领域,高性能计算系统能够帮助开发和研究人员进行建模和模拟。同时,以最快的数度计算出模拟的结果,为下一步的开发和最终结构的确定提供依据。 天气预报气象 制药企业的药理分析 科研人员的大型科学计算问题 石油勘探中对石油储量的分析 航空航天企业的设计和模拟 化工企业中对分子结构的分析计算 制造业中的CAD/CAM系统和模拟试验分析 银行和金融业对经济情况的分析 生物/生命科学中生物分子研究和基因工程计算
同时,高性能计算系统在下列的公共部门的应用也非常广泛:
国家/政府机构 国家实验室 高等院校
2.3. 通讯库和集群控制系统
我们知道,高性能计算系统实际上是一个计算机集群系统,它需要通过通讯和集群控制软件将整个系统紧密联系在一起。同时,还要负责初始化集群节点、在所需数量的节点上安装应用程序、并监视集群节点和互连的当前运行状况。
目前在市场上有多开放源代码的集群控制系统,也有许多高性能计算的用户开发自己的控制系统来适应其特殊的应用软件的需求。
2.4. 高性能计算的互联技术
高性能计算的互联技术在整个系统中非常重要,因为一般的高性能计算系统都需要讲几十台甚至几百台的计算机系统互相连接在一起,互联系统的性能有时会直接影响整个高性能计算系统的性能。
目前,一般的大型高性能计算系统使用Myrinet*系统作为主要的数据互联系统,而使用百兆或千兆以太网进行管理与控制。而在小型的高性能计算系统中,可以用直接使用千兆甚至百兆以太网作为互联系统。
2.5. 计算节点
计算节点是高性能计算系统中的单个计算机系统,是整个高性能计算系统的基础。基于英特尔架构的服务器系统是作为高性能计算节点的最佳选择。应为大多数高性能计算需要多线程同时执行,这样基于英特尔至强?处理器的计算节点可以满足需求。另外,大多数模拟类型程序需要进行大量浮点运算(FLOPS),因而节点处理器支持大量浮点运算的能力就变得至关重要。当前的英特尔处理器(如英特尔至强?处理器)的处理速度已达到每秒二十亿次浮点运算。这意味着由1000枚处理器组成的集群的处理能力可与世界上一些功能最强大的超级计算机相媲美,而成本却低得多。
数据采掘则不同。根据数据库的体系结构,这些应用对I/O的潜在要求较高。而分布式驻留内存数据库例外。在该体系结构中,集群中的每个处理器都要参与一部分数据库处理。当一个查询请求被提交给数据库时,它同时被提交给集群中的所有处理器。由于所有处理器都只需处理一小部分数据库,因而解决查询的速度要比在传统体系结构中快得多。
三、设计高性能计算系统:
设计一个高性能计算系统是一件复杂的系统工程,涉及从软件到硬件的各个层面,而且每一个环节都相互关联。因此,设计和构建一个高性能计算系统应该使用系统的设计方法,按照一定的步骤来确定整个系统中的各个部分。
这一部分,我们按照系统的设计方法来对高性能计算的各个环节的设计和设备选型给出相应的建议。
3.1. 判断应用的特性
对于一个高性能计算的应用,我们可以从如下的几个方面来确定其类型:
3.1.1. 应用的粒度
由于高性能计算的应用需要在多个计算节点上同时运行,则在各个节点计算的同时,还需要相互间的通讯。所谓应用的粒度,是指在一个高性能计算应用中计算所花的时间与通讯所花的时间之比。这是高性能计算应用的一个重要的特征之一。
很显然,不同的应用其粒度也不一样。例如一个生成动画电影的高性能计算应用,用于每幅画面可以由任何一个计算检点独立计算生成,节点间的通讯量非常少,因此,这是一个粒度非常大的应用。反之,对于一个进行汽车模拟碰撞试验的高性能计算的应用,由于在每个节点上计算的任何部件的运动,都会对其它的部件的状态有影响,因而节点间的相互通讯会非常多,这类应用就是小粒度的应用。
应用力度的大小将直接影响对计算节点和互联设备的选择,从而影响对整个项目的投资。一般来讲,粒度大的应用可以使用相对低速互联技术(如百兆以太网),从而降低项目的费用。因而,在应用的开发和优化过程中,应该尽量加大整个应用的粒度,减少不必要的节点间相互通讯。
3.1.2. 应用的计算特性
高性能计算的应用的目的是通过计算来解决某个特定的问题,但不同的应用所需要的计算特性也不一样,一般的高性能计算系统应用的计算特性主要分为入下三种类型:
" 多媒体运算 主要使用整型和双精度运算。例如用于图形图像处理和三维图像生成的高性能计算系统就属于多媒体运算系统。在这种情况下,计算节点的多媒体计算功能非常重要。比如英特尔至强处理器所带的SSE和SSE2指令就非常适合这种应用。
" 科学计算 主要使用浮点运算功能,这也是目前高性能计算系统的最主要应用领域。像天气预报和石油勘探等高性能计算系统都属于这一类。
" 数据库应用
主要使用逻辑计算和I/O操作。现在的数据库集群系统和网格数据库系统就属于这类应用。它需要计算节点有很强的I/O处理能力,同时,整个高性能计算系统也应该具有足够的外接存储空间。
在设计高性能计算系统的过程中,根据不同的计算类型来确定相应的计算节点和系统配置,从而使系统可以满足应用的需求同时达到最佳的系统性价比。
3.1.3. 应用的时效性
一个大型问题之所以需要用高性能计算系统来解决,可能主要是因为如下两种情况:一是因为问题无法在单个节点上计算完成;另一个是因为在一个节点上无法在规定的时间内完成。这里就关系到应用的时效性了。 一般来讲,应用的时效性就是指一个高性能计算的应用需要在多长的时间内计算完成。它是确定高性能计算系统规模的重要参数之一。
我们知道,天气预报系统的计算就是一个时效性很强的高性能计算应用,因为在得到测量的数据后,我们必须在最快的时间内计算出相应的结果,以便相关人员及时发出当天的天气预报。
对于一个时效性很强的应用,在设计高性能计算系统时,一定要以满足应用的计算速度为第一目标,一定要使高性能计算系统在规定的时间内完成计算。否则,该系统就没有意义。 而对于一个时效性不强的应用,可以考虑通过延长计算时间来减少节点和互联系统的配置,但也要考虑到可以容忍的时间限度和系统的可靠性等因素。特别是随着时间的延长,整个系统中某个节点出现故障的概率会增加。
3.2. 确定系统规模
确定高性能计算系统的规模是一个复杂的过程,一般来讲,主要从以下几个方面来考虑: " 特定的目标 有些高性能计算系统在设计之初就确定了系统规模,在具体设计时,可以根据系统的配置情况来计算是否达到要求。
" 应用的要求 如上一节所讲的那样,从应用的粒度、应用的计算特点和应用对实效性的要求来确定应用的规模。
" 系统投资 从某些方面来讲,系统的投资与系统的规模成正比,也就是说系统投资决定系统规模。但为了达到最佳的投资回报比可以根据系统应用的计算特点来选择合适的计算节点和互联设备,从而在投资不变的情况下获得最佳性能。
现在,我们通常使用每秒的浮点运算次数来表示一个高性能计算系统的性能。通常,这个性能标准可以用Linpack HPC的基准测试来获得。由于在系统设计的过程中,我们根本无法测试整个系统。那么,如何来估算一个高性能计算系统的性能就显得十分重要。
从理论上讲,一个高性能的计算系统的性能在理想的状况下为系统中所有的处理器的计算能力的总和。例如一个高性能计算系统使用双路的英特尔至强处理器为节点。而单个至强处理器的Linpack值达约达到2Gflops,即每秒20亿次浮点运算。则一个有256个双路英特尔至强处理器的高性能计算系统的理论性能可以达到 256 X 2 X 2 = 1024 GFlops,也就是每秒一万亿次浮点运算。如果使用四路英特尔Itanium 2系统为计算节点,由于每个Itanium 2处理器的Linpack值达约达到3.2 Gflops,即每秒32亿次浮点运算,则在理想的情况下,80个节点就可以达到每秒一万亿次浮点运算的性能。
80 X 4 X 3.2 = 1024 GFlops
当然,以上的情况是在理想的状况下达到的。在具体实施时,需要根据互联设备的性能、应用程序的特点来集体考虑。
3.3. 硬件系统
3.3.1. 计算节点 计算节点是高性能计算系统中的单个计算机系统,是整个高性能计算系统的基础。以前,高性能计算的节点经常采用基于RISC处理器的Unix服务器。随着英特尔架构处理器性能的不断提高,越来越多的高性能计算系统使用基于英特尔架构的服务器系统是作为计算节点。由于其超强的性能和比Unix服务器低得多的价格,是整个高性能计算系统的造价大大降低,有着极高的性能价格比。
在具体选择计算节点时,还要考虑到系统的平衡性。我们知道,任何一台计算机系统都包含处理器、内存和输入/输出系统三个部分,通过芯片组将三个部分连接起来(如下图所示)。所谓系统的平衡性是指计算机系统在处理器、内存和输入/输出系统三个部分之间的通讯带宽应该大致相当。
同时,考虑到处理器和内存之间的带宽有限,一般来讲,是用双路处理器为高性能计算系统的节点时最佳的平衡点。
3.3.2. 互连方式
高性能计算系统的互联方式由很多种,在具体设计时,主要有两个因素需要考虑:延时和带宽。所谓带宽很简单,就是两个节点在进行数据通讯时,每秒钟可以传送的最大数据量;数据延时是指在高性能计算系统中,当某个节点需要向其它节点发送数据时,从其开始发送数据到目的节点开始接收数据所需要的时间。
一般来讲,互联系统的价格与延时成反比,而与带宽成正比。为了节省费用,应该针对不同的应用配置不同的互联系统。由于各种应用的需求不同,对于互连方式的延时和带宽的要求也不一样。有些高性能计算的应用需要每个节点之间非常频繁地交换数据,但每次的数据量并不很大,在设计时就需要使用低延时的互联系统,而对带宽的要求则要求不高。反之,有些应用节点之间的数据交换不是非常平凡,但每次交换的数据量非常大,则需要考虑使用高带宽的互联系统,对延时要求则不高。另外,应用的粒度可以作为选择互联系统的重要参考。大粒度的应用对互联系统的延时和带宽要求不高。这种情况性可以选择低价格的互联系统。如果应用的粒度非常小,则应该考虑使用低延时、改带宽的互联系统。
3.4. 集群控制软件
集群控制软件是整个高性能计算系统的管理者,我们知道,高性能计算系统实际上是一个计算机集群系统,它需要通过通讯和集群控制软件将整个系统紧密联系在一起。同时,还要负责初始化集群节点、在所需数量的节点上安装应用程序、并监视集群节点和互连的当前运行状况。 目前在市场上有多开放源代码的集群控制系统,也有许多高性能计算的用户开发自己的控制系统来适应其特殊的应用软件的需求。作为集群控制软件开放源代码的主要代表,OSCAR 和 Scyld 是目前流行的系统:
3.4.1. OSCAR: Open Source Cluster Application Resource
OSCAR是构建、编制和使用 Linux 集群的一种最佳方法。它由全面集成且易于安装的软件套件组成,该软件套件专门针对高性能集群计算而设计,其中包括安装、构建、维护和使用一般尺寸Linux集群所需的一切,因此您无需下载或在集群中安装任何单独的软件包。它包括如下的元件:
" LUI:基于Linux 的无头安装应用程序 " C3:集群节点管理程序 " MPI/PVM:节点信息传送接口 " PBS:负载管理程序 " OpenSSH:安全通讯协议
3.4.2. Scyld Beowulf
Beowulf 本是美国航空行天局用于支持超级计算机的一个系统,1998年由Scyld 重新设计而成为 Scyld Beowulf。它是一套标准的、面向复杂应用的集群操作系统,具有非常友好的开发界面。其主要功能有:
" 一次安装,到处运行 " 管理和使用如同单台计算机系统 " 支持动态加入计算节点 " 可以支持数百台计算机系统 " 自带基于Linux的操作系统 " 开放源代码。
上一页 [1] [2] [3] 下一页 |
|
|
|
|
|
|
 |
|
 |
|
|
|