生命的奥秘是无穷的,在探索生命的过程中,强大的高性能计算机(HPC)也是必不可少的。随着基于基因、蛋白质和DNA的微观生命科学研究越深入、应用面越广,计算机和信息技术的作用也越大,许多最大规模的超级计算机和集群系统都应用于这一领域。从亲子鉴定到药物筛选再到H1N1流感疫苗研制等等,都离不开生命科学和背后的超 级计算机。
据统计,生命科学领域的数据量平均每12个月就增加一倍,比摩尔定律,即计算性能每18个月增长一倍,还要快很多,这些数据量动辄都以TB来衡 量。要处理如此海量的数据,往往需要动用每秒10万亿次乃至百万亿次的超级计算机集群,以及几十TB、甚至上千TB的存储系统。
更具挑战性的是,和天气预报、石油勘探等只有几种软件不同,生命科学的计算软件非常多,以中科院北京基因 组研究所为例,就拥有100多种软件,这些软件对于计算机系统的要求各不相同,有的属于计算密集型、有的需要大内存,有的则需要进行频繁的磁盘读写或网络IO通信。用户又不可能为每一种软件去定制一套集群系统,现实情况 往往要求集群系统可以同时能够支持多种计算软件。
生命科学计算独特的应用需求决定了,在该领域用户在进行高性能计算集群方案选型与测试、系统扩展、海量数据存储管理、大规模系统和作业管理、应用优化等方面面临诸多挑 战。
挑战1:应用繁杂多样 哪种系统最适用?
由于软件众多,应用不一,因此需要根据用户主流应用软件的特征进行量身定制高性能计算系统架构和配置,而不是简单地采用通用的集群系统。中科院北 京基因组研究所胡松年博士谈到,选择高性能计算机其实比选基因测序仪要复杂得多。北京基因组研究所每月单纯的数据产量会超过1TB,目前还无法保存图像文 件,海量数据存储一直是难题,而且是软件多达100多种,加上很多用户自编的程序,对存储、IO、内存、并行化等方面都有不同的要求。
为了帮助高性能计算 用户方案选型,英特尔和浪潮一起花了大半年时间进行典型应用的性能特征分析,对包括BLAST、VASP、Gaussian 03、CPMD、Amber 10、Gromacs 4.0、Wien2k、Espresso等十几种软件,从影响节点内扩展性的“每核内存使用率和带宽”、影响节点间扩展性的磁盘IO和网络消息传递,影响 软件优化潜力空间的CPU向量化、CPI等指标进行测试比较,以此来了解不同应用的关键特性。然后分析CPU、内存、磁盘、网络等硬件本身的特性,如在每 核内存带宽上限方面,至强5400是1GB/s、至强5500则是4.5GB/s。再通过对软件应用特性和硬件特性进行对比,基本能确定适用的配置标准。 比如BLAST软件对系统的IO要求很高,需要大内存,而Gromacs则MPI通信频繁,浮点运算量也大,但对内存的要求较小,又如基因拼接往往需要大 内存的胖节点等等。
基因组测序的复杂计算即便中科院超算中心、上海超算中心以及IBM、HP等国内的工程师都没有相关的经验,浪潮的前 期扎实的测试为方案选型提供了很好的帮助。
挑战2:数据爆炸增长 系统未来如何扩展?
虽然目前我国在生物信息学研究、DNA测序能力方面已处于世界前列,但与国际上相比,对基因组数据的分析处理和利 用能力,包括计算能力则存在较大差距。目前,国外分析生命科学的海量数据普遍会使用数百万亿次规模的超级计算机,而我国的许多科研机构的高性能计算规模一 般为几万亿次。同时,为了满足未来数据量的爆炸增长,及随之而来的大规模处理能力和存储容量,要求系统有较高的可扩展性。
现在基因组研究所10万亿次的计算机规模还远远不够,因为做一对染色体的基因测序,就需要十几天时间,会大大影响科研项目的进展。在存 储方面,目前还只能保存测序文件,无法保证更大的图像文件。除了未来对现在系统进一步扩容之外,研究所也在尝试其他各种办法,比如,在浪潮的帮助下,将 BLAST计算迁移至GPU平台上去;进行软件算法的优化,提高现有资源的利用率; 加入中科院超级计算网格环境,从中科院超算中心租用计算存储资源,但又面临 性能不够、作业协调管理、系统不匹配、TB级大数据量网络传输可靠性无法保证等现实难题;另外也关注云计算、网格等,但这些虚拟、远程计算在网络传输、资源 管理、平台适应性方面也同样困难重重。
存储文件系统的选择。一种是简单易用、稳定可靠的NFS,但却在多用户集群环境下性能会下降,而且无法实现存储共享,OPS也较 低,在使用IPoverIB时会损失较大性能;另一种则是IO带宽很高的并行文件系统,却面临商用软件价格高昂,开源软件可靠性没保证的尴尬。很多用户往 往不得已而使用前者。为此,浪潮推荐用户使用万兆集群存储系统,可以将管理便利性与高性能结合起来,方便未来系统的扩展。
挑战3:面对 海量数据 存、管如何两不误?
对生命科学计算而言,数据存储是关键,但不仅要满足海量数据的存取,还要方便对数据进行高效管理。生命科 学研究所涉及的数据量极为庞大。以大熊猫为例,大熊猫共有21对染色体,基因组大小与人类相似约为30亿个碱基对,包含2-3万个基因。如果将大熊猫基因 组序列写成一本书,其厚度相当于384 米高的大厦。同时,基因数据库容量以每6-8月翻一番的速度增长,这一增长速度甚至超过了计算机运算能力的增长。
对此,浪潮的建议是,推荐用户采用三级分层存储的方式,即一级的高速SAS或FC在线存储系统,二级的大容量SATA近线存储,这两级都采用集群存储方 式,分别满足性能和容量的需求,三级的虚拟带库备份系统,避免数据丢失。
挑战4:系统规模大、作业任务多,如何智?能管理
由于集群系统规模较大,加上软件众多,需要对系统、作业提供柔性、智能化的管理工具。胡松年谈到,现在北京基因组研究所的客户端数量很多,往往有几百个 任务的并行请求,为避免塞车,需要对作业任务的优先级进行科学管理。
在集群管理和作业调度软件上,浪潮开发了TSMM2.0 监控管理软件,可以实现系统管理、监控、报警等一系列智能化的功能,同时作业管理软件也已经成为大型高性能计算的重要组成部分,能够实现多用户、多作业的 管理,包括资源管理、系统管理、作业管理、策略管理、记帐管理、应用软件管理等。
挑战5:软件、人才滞后 系统应用如何优化?
由于在算法、算例、编译等方面的开发力量不足,加上缺乏既懂生命科学,又懂计算 机的“双栖”人才,导致在生命科学领域,国内很大一部分应用使用的都是国外的软件,而且应用效率低下,科研进度缓慢。为了提高软件算法的效率,真正帮助用 户用好HPC,往往需要厂商和用户单位联合进行应用开发,需要IT厂商的高性能计算工程师和生物专家进行长期、紧密的搭挡合作。
比如中 科院北京基因组研究所的BLAST软件原来已经无法承担数据高速增长带来的挑战,测序结果往往要两个星期才能出来,难以满足科研项目的要求。为此,浪潮和 用户联手进行了向GPU+CPU混合并行计算平台的移植方案,经过两个月时间完成了核心算法加速,结果比传统CPU集群快上了30倍。
虽然GPU并行计算目前还处于发展初期,软件编程比较麻烦,但其性能上几十倍、上百倍的提升对一些用户来说却是非常有吸引力的。而且,目前除了 许多高校科研用户开始试用GPU计算之外,一些商业软件也开始对GPU进行优化,主要集中在军工、互联网、图像处理等领域。
在性能调优 方面,根据投入产业比的规则,要按“系统级最先、应用级次之、微架构最后”的顺序进行。在系统级,可以对CPU、内 存、IO、网络等硬件进行优化,比如至强5500有三大法宝:NUMA、SMT、Turbo,对VASP应用来说,NUMA开关一定要打开,Turbo打 开也能提升性能,但SMT超线程必须关闭,打开反而会降低性能;在某些情况下,解决了网络IO问题,总体性能可能会有上百倍的提升;在应用级,比如解决了 多线程死锁/同步问题,可能也会有十几倍的性能升;只有在进行了系统级和应用级调优之后,最后才建议考虑进行微架构的调优,通过使用英特尔的编译器、 Vtune、数学库优化工具,一般可以实现几倍的性能提升。而且,系统规模越大,系统级和应用级优化的性能提升效果会比微架构更明显。