高性能计算初步调研
目前数据中心不再是单纯地增加服务器的数量和扩展机房的面积以满足业务应用,而是逐步升级到对数据中心整体规划和计算能力、效率的提升层面上来。数据中心需要强大计算能力作为支撑,这样才能满足日益快速发展的业务需求。        高性能计算机集(HPC:High Performance Computing)在计算领域中得到了普遍应用。高性能计算(HPC)实际上就是集计算,集计算是多台计算机的合作,并且并行工作,计算速度比一台计算机的计算速度快的多。集计算机连在一起,可以提供如下功能:可扩展性、冗余性、成本考虑。由于HPC系统能够快速准确计算出结果,有助于解决商业和科学研究中面临的问题,所以,HPC系统正在被越来越多的数据中心所采用。        值得注意的是,一个集中需要支持多种类型的数据流,在同一集中可同时采用不同类型的互联网络,而这些网络又拥有各自的网络协议,也就意味着,网络性能和特性会有不同。目前,集计算、存储区域网、网格、内部处理器通信等高端领域对高带宽、高扩展性、高QoS以及高RAS(Reliability、Availability and Serviceability)等有迫切需求,人们对互连技术的兴趣开始恢复,并且非常希望通过更迅速的互连技术,帮助数据中心降低总体运营成本,以实现高性能计算。    为了满足高性能计算需求,各种高速I/O标准相继登场,Infiniband也凭借其特有的优势在市场中逐渐崭露头角。 Infiniband技术是一种开放
标准的高速网络互联技术,Infiniband产品也是目前主流的高性能计算机互连设备之一。事实上,Infiniband是一种新型的总线结构,它可以消除目前阻碍服务器和存储系统的瓶颈问题,是一种将服务器、网络设备和存储设备连接在一起的交换结构的I/O技术。
一.高性能计算与云计算
  “云计算是一种计算模式,在这种模式下,任务被分配给可通过网络获得的连接、软件和服务。这种服务器与连接的网络统称为"云"。云规模的计算能赋予用户超级计算机级别的能力。”
  “云计算支持应用在"云"中某处运行,可以是您的电脑、公司或家庭网络,甚或互联网本身,但实际上用户无需了解、也不用担心应用运行的具体位置。”
许多人称云计算是HPCC的未来,究其原因,自然是因为它用途广泛、易于使用以及成本低廉(在大多数情况下),同时它还能为用户带来超级计算机级别的性能。在核实云计算是否能带给用户超级计算机级别的性能之前,让我们首先查看"应用纲要",即应用成功运行所需的资源集。
  云计算应用纲要
  a确保云计算成功执行的一大要素是应用纲要,即应用运行所需的资源和作用方式。在广义上,当前云计算应用具备下列纲要:
  b应用不会出现任何程度的并行,也未进行线程化。
  c几乎所有应用都不需要过多的内存带宽和高CPU使用率。
  d应用很少执行与其计算相关的IO,但也会存在例外,如实际上并未在“云”上运行的数据库。
  e应用可进行自我修复。也就是说,一旦应用因故出现故障,它能轻松重启或恢复,而不会对用户的工作造成太大的中断。
  大多数日常应用(如制作演示幻灯、撰写文档和电子表单、畅玩游戏等)都是串行应用,许多功能往往都放置在了桌面上(很可能采用AJAX)。Google等公司开发出了针对云计算的存储系统,但这些文件系统主要面向具备上述纲要的应用(例如hadoop)。由于您必须使
用MapReduce来访问和使用这些文件系统,因而它们在传统HPC应用上的适用性会受到限制。
 上述应用特征同样适用于许多企业应用。换而言之,它们是IO量极少的串行应用。当然也存在IO密集型企业应用,如数据库等,但它们通常不会在总体应用排名中占据优势。
  HPCC计算应用纲要
  HPCC应用具备各种应用纲要。典型应用涉及并行计算,可能含有大量的IO。同时,串行(单节点)HPCC应用可能执行许多IO任务。因此,HPCC应用的纲要范围十分广。下面简要列出了HPCC应用的几项要素。
  * 许多应用为串行应用,其中各种进程之间存在一些数据通信。
  * 有时进程间的数据传输量很少。例如:某CFD代码
  * 有时进程间的数据传输量很大。例如:WRF
  * 有些应用为串行应用或线程化应用,运行于单个节点上。例如:BLAST
  * 有些串行或并行应用执行许多IO任务。例如:Ansys、Abaqus或Nastran等FEA代码
  * 有些串行或并行应用不执行许多IO任务。
  * 有些应用能够生成一个检查点,即一份计算进程的快照。
  * 一旦系统因故出现故障,它能够从上一个检查点重新启动,而无需从一开始重启。并非所有应用都具备这一功能。
  只需查看应用纲要即可了解HPCC应用之间的巨大差异。显然,HPCC应用具备与当前的云计算应用不同的应用纲要。正因为存在这个差异,一些 HPCC应用能够适用于云计算模式,而有些却不适用。在下一章节,我们将探讨哪些HPCC应用能够在云计算模式下运行良好,哪些不适用于云计算模式且不可能适用于这一模式。
  云计算中的HPCC应用
  从目前来看,云计算应用和HPCC应用似乎有很大不同,但仔细分析后不难发现,两者之间仍然存在着一些共同点。某些HPCC应用并不依赖于节点间的通信,也不需要太多的IO(如
BLAST)。这些特定应用的应用纲要能够很好地与云计算能力相契合。那么,这样的应用有哪些呢?事实上,现在还很难到此类具体应用,因为并行应用完全能在单个节点上正常运行。只要数据集能在无需交换的情况下置入节点,应用就可以在云计算环境中运行。下面是一份有关HPCC 应用需求的速列清单,明确列出了在云计算环境下应用和数据集之间应如何配合才能确保两者的正常运行。
进程间通信实验总结
  a应用必须运行于单个节点。数据集必须位于单个节点。
  b非IO密集型应用。
  c应用需快速运行,或创建一个检查点(自我检查点)。
  因此,适合云计算环境的HPCC应用的应用纲要还是比较有限(但绝非完全没有)。
  另一类能够正常运行于云计算环境的应用是大型搜索应用。目前Google已经掌握了云计算技术,但其它领域也同样存在着搜索应用。例如,BLAST可用于搜索和比较生物序列信息。因此在搜索大型序列信息数据库时,会生成和执行大量的搜索。而每次搜索都能在单一节点中执行(尽管已经出现并行版本的BLAST)。
  在云计算环境中运行必须考虑的最后一个问题是数据安全性。企业和实验室一般利用HPCC应用来创造新产品或开展新研究,这无疑是一项优势。但企业必须要确保数据的安全。如果您是在云计算环境中运行专属应用,就必须考虑数据安全性问题。到目前为止,业界尚未对云计算数据安全问题进行真正意义上的讨论或关注。
  云计算=网格计算?
  如果您在几年前接触过高性能计算(HPC),那么您一定听说过网格计算。由于网格计算和云计算都能够将位于不同位置的不同资源集中在一个系统中,因此两者在理念上十分类似。网格计算能够将不同任务提交至集中任务调度器进行分配,决定在何处运行应用,以达到在网格中运行HPC代码的目的。应用既可以在本地运行,也可能在相距数千英里的其它系统上运行。这样看来,网格计算和云计算似乎并无区别。但实际上,两者之间有本质的不同。
  首先,网格计算能够运行任何HPC代码,即使其中包含大量的进程间通信或IO,而云计算就无法做到这一点。前者的优势在于您能够在网格中运行MPI 代码,将位于不同地方的系统集中在一个系统中。但实际上,由于带宽有限、系统间的延迟过高,应用并不能以这种方式
运行。当前的网格更像是采取了元调度(meta-scheduling)的运行方式,即将任务提交至集中调度点进行分配,让它决定应用运行的系统。因此,应用不会在多个系统上运行,而是在网格内的单一系统上运行。
  网格计算和云计算之间存在一个非常重要的差异:在云计算环境下,应用中不能出现跨节点的进程间通信,IO量也不能太多;而网格计算则允许应用中包含大量的跨节点进程间通信,以及单一系统所能容纳的IO量。
  * 云计算需使用串行应用(运行于单枚内核或单一节点),拥有限于单一节点的数据集,只进行少量IO操作,且无需数据保护。
  * 运行HPCC应用需满足一系列条件,如运行于单一节点(如BLAST)或运行于多个并行节点。此外,它们还可能产生大量IO,同时还必须考虑数据安全性问题。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。