“HPC云”:传承中创新云和虚拟化

2010-10-14    来源:CNW.com.cn    编辑:周源
摘要:尽管一朵又一朵HPC云已经在我们身边冉冉升起,但是依旧有不少声音质疑:用云计算的方式打造HPC平台,是赶云计算的时髦,还是真需要? 也许是受经济高速发展驱动,许多新兴

  摘要:尽管一朵又一朵“HPC云”已经在我们身边冉冉升起,但是依旧有不少声音质疑:用云计算的方式打造HPC平台,是赶云计算的时髦,还是真需要?

  也许是受经济高速发展驱动,许多新兴或高端技术,例如云计算、HPC(高性能计算)、物联网等,在中国的发展势头都大有后来者居上的意味。如今,我们已经看到,在国外还只是较小规模的实验性质的“HPC云”(采用云架构打造的HPC平台,对外提供按需HPC服务),在中国已经花开数朵。例如,去年成都建成了国内第一家商用的高性能计算云中心,北京工业大学的“科教云”和北京计算中心的“工业云”均可定义为“HPC云”。

  赶时髦还是真需要?

  尽管一朵又一朵“HPC云”已经在我们身边冉冉升起,但是依旧有不少声音质疑:用云计算的方式打造HPC平台,是赶云计算的时髦,还是真需要?例如,英特尔服务器产品经理张振宇就表示:“目前在高性能计算中引入云计算的需求不大。”中科院计算所常务副所长孙凝晖也认为并非所有的计算中心都需要向云计算靠拢,他说:“云计算模式的前提是看服务的用户数够不够多,能不能提供解决方案式的服务。除了象北京计算中心需要面向大量用户提供超算服务的之外,一般的超算中心就百八十个用户,单纯提供机时,没有必要。”

  不过,赞同的声音也不少。在IBM大中华区云计算中心总经理朱近之看来,超算中心引入云计算有两大好处,一是能提高超算资源利用率,服务的客户数量和种类更多,例如,可以用于一些商业计算,而不仅局限于传统的科学计算;二是能提供给用户更好的服务。而曙光公司产品副总经理王璟则相信:“超算中心采用云运营方式将是一次服务质量提升的变革,未来的超算中心建设中都会考虑到其对未来云系统的支持。”北京计算中心主任曾宇更是有一种使命感和紧迫感,他认为,云计算服务市场应该定位于对大规模计算服务能力和海量数据处理能力需求旺盛的个人及企业用户市场,这一市场正伴随信息技术的发展和产业结构的调整而日益庞大,并最终会分化为工业云计算领域、生物云计算领域、政务云计算领域等许多垂直细分的领域。因此,“北京市计算中心在未来发展中尚有5年的发展机遇期,”曾宇说,“我们必须集中优势资源,在狭窄的云计算垂直细分领域建立起强势的核心竞争优势和知名度。”

  为什么人们偏偏在“HPC云”上会有较大的意见分歧?这些赞成或质疑的声音是否有道理?弄清这些问题,应该从HPC、虚拟化、云计算之间的复杂关系说起。

  令HPC“爱恨交加”的虚拟化

  在很多人的理解中,虚拟化和云计算简直如“连体婴儿”一样密不可分,以为任何一朵私有云或公有云都必须在硬件资源层实施虚拟化技术。关于这个认识的正确与否,我们暂且不表(后文还将详细叙述),因为现实中确实很多“云”都利用到了虚拟化技术,而且我们所提到的北京工业大学的“科教云”、成都超算中心的HPC云都对一部分底层硬件资源进行了虚拟化,这符合不少人对“云”的理解,即底层一定实施了虚拟化技术。而社会上恰恰又存在一种看法,即HPC与虚拟化的关系是“水火不相容”,人们自然难免质疑,这种造“HPC云”的行为是否只是赶时髦呢?

  其实,如果深入分析HPC与虚拟化的关系,HPC与虚拟化并非“水火不相容”,HPC对虚拟化那是“爱恨交加”。

  众所周知,PC服务器虚拟化技术之所以被市场迅速认可,有两个重要优点。第一个优点就是能大幅提高服务器CPU、内存等资源的利用率。然而,HPC主要集中执行并行高密度高负载任务,对CPU的利用率几乎能达到100%,因此虚拟化技术的这一优点对HPC可以说“无用武之地”,并且“HPC应用跑在虚拟的资源层上,性能肯定是会受影响的。”北京工业大学计算机学院教授邸瑞华坦诚地告诉记者。

  那么,影响程度究竟有多大?邸瑞华说:“影响的程度主要视HPC应用类型而定。如果是计算密集型的HPC应用,影响不是很大,大概在5%~10%左右,但如果是I/O密集型应用,这个影响就可能比较大。”

  “5%~10%”这个数值貌似完全可接受,不过,对性能分外计较的HPC应用来说,这个数字已经不小了。例如,长年战斗在高性能计算第一线的王璟亦承认:“对我们而言,1%的影响就觉得难以忍受了。”这也是为什么会有观点认为HPC与虚拟化“水火不相容”了。尽管如此,王璟还是坚持“构建‘HPC云’能够发挥超算中心的全方位应用能力,因为虚拟化对于超算应用的影响虽然是负面的,但是对非超算应用的影响是正面的。”

  此外,邸瑞华表示还应从另一个角度看待这个问题,她说:“业界有个比较统一的看法,也就是说一台超级计算机能否发挥作用,主要还是看HPC应用的并行度是不是足够好。如果一个任务HPC不能被有效分解,或者分解后不能与系统充分匹配,把它拿到超级计算机上运行可能和拿到一台PC上运行的执行速度是一样的。因此,比起过度地关注虚拟化对HPC的影响,着力于优化HPC应用程序本身可能来得更实际有效。”

接下来让我们看虚拟化技术的另一个关键优点:虚拟化技术改变了原有计算体系架构,以及原有计算层次结构关系,它将不同的资源和逻辑单元剥离,让上层应用程序与底层硬件资源之间形成“松耦合”关系。因此,清华大学计算机系副主任陈文光指出:“虚拟化使得在某一个计算节点上执行用户自行选定的分配任务变得灵活可行,尤其是像异构环境下的计算任务等。”

  陈文光解释说,传统的HPC接口实际上是一个调度器接口,用户提交一个任务,调度器就返回一个结果,用户没有可选择的余地,实际上这种接口并不友好。例如,假设当前任务需要Linux平台,而下一个任务需要Windows平台,在传统模式下,只能卸载当前系统重新部署所需平台,非常麻烦,费时费力。又例如,HPC用户经常面临的HPC应用开发环境和执行环境不同的问题,“我们在一台小机器上开发的软件,到另外一台上执行错了,很麻烦。要重新配置环境,优化HPC应用,导致开发效率很低”。

  而虚拟化却为此提供了一种可能。“当用户向调度器提交任务时,可以自行指定希望在任务中使用的操作系统或中间件等组件。在任务执行过程中,调度器会通知计算节点运行所需的软件,并将相应软件安装在虚拟机(VM)内。接下来,任务会在虚拟机上运行,处理完毕后,虚拟机被关闭,节点继续执行下一任务。”陈文光说道。

  邸瑞华也表示,当初北京工业大学之所以选择采用云架构搭建HPC平台,也是看重了云计算“允许用户对各自的虚拟计算资源进行个性化配置,支持对用户对CPU、内存、存储等虚拟计算资源的扩展,以及集群中节点的增加。”

  此外,HPC对虚拟化技术的“爱”的理由不仅于此。在陈文光看来,虚拟化技术对提高HPC的可用性更为有益。HPC规模大了以后,最大的挑战便是可用性。现在国内的百万亿次计算机,平均故障时间大概在10~100小时之间,这对于跑上一周的作业应用就具有很大的挑战。怎么办?陈文光告诉记者,解决此类问题通常要做CheckPoint(检查点),把中间结果存下来,然后在从最近一个检查点重新启动应用。而检查点传统的做法是需要用户自己写程序,这种做法要求比较高,因为会涉及到众多边界问题,具有相当的难度。“而虚拟机却为我们提供了这样一种可能,虚拟机能够提供一个很干净的边界,我们可以把这个状态很好地保存下来”。

  不过,陈文光同时表示,由于HPC应用和CheckPoint的复杂性,到今天为止,清华大学对此仍在进一步研究当中,目前还没有一个非常完善的解决方案。“尽管如此,‘虚拟机+CheckPoint’仍为提供HPC程序可用性提供了可能”。

  对“HPC云”似乎不是那么支持的张振宇提出了些自己的见解。他认为,尽管虚拟化技术致力于“去耦合”,但HPC应用比较特别,HPC应用与底层平台之间其实是非常紧密的“紧耦合”关系,不同的HPC应用对底层的要求有较大的差别。例如,石油行业HPC应用对网络延迟的要求不高,而对带宽要求很高,因为它是对地震波反射的方式来收集海量数据进行分析,数据载入时间往往大于数据处理时间。相比之下,模拟汽车碰撞试验的HPC应用就对网络延迟的要求很高。这就意味着,适合跑石油业HPC应用的HPC平台,很可能就不适合跑汽车模拟碰撞试验的HPC应用。因此,虚拟化技术‘去耦合’的这一优点,在HPC应用上似乎体现不出什么优势,这大概也是张振宇认为目前将云计算引入HPC的需求不是很大的理由之一。总之,张振宇表示超算中心在建超算平台的时候,无论是沿用传统方式,还是采用云计算方式,都不要指望建一个HPC平台就“通吃”各种HPC应用。这一点上,张振宇是赞同曾宇的关于超算服务终将形成垂直细分领域的观点。

  “谁说云计算一定要虚拟化?”

  其实,在记者最初开始试图理清虚拟化、云计算和HPC的关系的时候,朱近之即微笑地反问记者:“谁说云计算一定要虚拟化?在资源共享这个大范围内,虚拟化只是模式的一种,还有很多其它的模式。”

  事实上,无论“科教云”还是成都高性能计算云中心都仅将部分资源实施了虚拟化。例如,“科教云”为A、B、C、D四个区,每个区八十多个计算节点,其中仅A区利用虚拟化技术建立资源共享平台。而IBM当时负责该“科教云”项目的项目经理岳爽告诉记者,之所以只对一个区部署虚拟化技术,是因为有些HPC用户提出来,由于应用的特殊性或出于安全的考虑,不希望将应用跑在虚拟的资源层。不过,这四个区都是受IBM的“蓝云”管理平台统一进行资源调度,对外提供超级计算的按需服务。换句话说,无论用户想要获取虚拟的还是非虚拟的计算资源,“蓝云”管理平台都能统一调度、分配和管理。

  张振宇表示,对这个问题的理解应该追本溯源,去深入理解云计算的内涵。他认为,可以从两个维度来理解云计算:从服务提供商的角度,云计算其是一种“管理的方法论,能实现对资源更好地管理”;从用户的感受来看,云计算是按需获取服务。用户根本无需在意服务提供方究竟采用了什么技术。因此,“‘HPC云’准确地说是‘HPCAsService’,”张振宇如此说道。

  理想与现实的距离

  前景虽然美好,但现实往往是曲折的。在搭建“工业云”的过程中,曾宇坦言也遇到了令其头疼的问题,即工业PaaS(平台即服务)的构建。曾宇说:“我们希望通过云主机、云存储、弹性计算平台为工业用户提供开发平台服务,缩短企业从创意到实践的过程。然而工业范畴太大,如何提供透明的工业PaaS设计平台,这个问题到现在也没解决。”

  邸瑞华也曾表示,无论是他们自己,还是他们的用户,对安全都还是有一些担忧和顾虑。张振宇表示,现有的网络带宽环境还不行,那种理想的情况,即HPC用户通过网络上传HPC应用实现起来恐怕够呛。而孙凝晖则认为,不仅是“HPC云”,对整个云计算而言,认为现在的各种软硬件产品和技术“只能说是凑合用!”

  孙凝晖解释说,云计算其实对整个计算机系统都提出很多新的挑战。例如,云计算对服务器I/O吞吐量、计算访存比的要求就很高。孙凝晖拿城市交通举例说明:“设想一下,如果城市交通全靠火车,是不是灵活性就很欠缺?是不是还需要汽车这种灵活的交通工具?火车是沿着固定轨道,把一大群人一下子运送到某个地方,而汽车,两三个人想去哪里就哪里。火车这种运输方式就好像高性能计算,一次完成大量的计算任务,而汽车这种方式,就类似高通量计算(中科院提出的新型计算系统)。云计算不仅需要‘火车’(高性能计算),也需要‘汽车’(高通量计算)。”其次,云计算对互联网服务软件的要求也比较高,要求有“强动态性”,因为互联网上的请求数量都是忽高忽低的,难以预测的。

  “作为科学家,我们关注的是更具有前瞻性的任务,”孙凝晖说道,“云计算作为互联网的新的模式,在未来十年是主流,我们将要研发更适合云计算的计算系统。”

  除了学术界,许多IT厂商们也在致力于为云计算的成熟营造技术基础。例如,英特尔一直研究硬件辅助虚拟化技术,“我们希望将Hypervisor(虚拟机管理程序)变得越来越薄,甚至完全消失掉,从而最大程度地减轻虚拟机的开销。”张振宇说道。此外,英特尔还将推出集成众核(MIC)架构的芯片产品,旨在帮助加速特定的高度并行化的应用。而曙光已经在高性能计算机产品本身开始逐渐融入云计算的技术需求,例如曙光开发的云存储、并行存储、并行数据库、云管理等软件,并且在构建更加符合云计算需求的服务器平台。相信随着各项技术的逐渐成熟,我们的IT天空终究会漂浮起一朵朵美丽而强大的“云”。

  编看编想“HPC云”:小荷才露尖尖角

  尽管由于HPC应用的特殊性,国内一些在建或待建的HPC平台仍旧采用一些传统的方式。但是我们依旧认为,以云计算的方式打造HPC平台,是一种难能可贵的探索。而且,在采访中我们也看到,“HPC云”对不少HPC用户来讲,还是有比较强烈的吸引力。

  以北京工业大学的“科教云”为例,它向用户提供一个Web页面的自助服务窗口,用户自行选用所需的各种软硬件计算资源即可,系统自动生成电子合同,自动分发和回收资源。因此,用户不仅享受到更便捷的服务,也减少了HPC服务提供方的管理成本。当然,“HPC云”这个新生事物的优点不仅如此,它在资源的利用、在服务质量和服务数量上都有较强的优势。因此,我们有理由相信,随着虚拟化、云计算等相关技术的进一步完善,“HPC云”会日益显露越来越多的优点,也会有越来越多HPC披上“云”的外衣。

1
3