让HPC融入学科

2011-11-09 06:42邸瑞华吕海
中国教育网络 2011年9期
关键词:数据量高性能集群

文/邸瑞华 吕海

让HPC融入学科

文/邸瑞华 吕海

为了让高性能计算与学科更好地结合,北京工业大学网格中心做了很多优化工作

高性能计算(High Performance Computing)已成为继理论研究和实验研究之后第三种认识、改造客观世界的重要手段,并在工程与非工程的各种领域得到了广泛应用。

北京工业大学(以下简称北工大)高性能计算平台的建设为北工大重点学科建设和科研起到推动和支持作用,为解决多学科、跨地域科研资源的共享与协作问题提供了基础设施。北京工业大学网格中心高性能计算平台2010年5月平台投入运行,明确提出:“服务教学科研、 开展科学研究、 支撑服务北京”的目标。 目前,在该平台上部署了多种用于大规模数据处理的商业或开源高性能计算软件,对各个学院学科老师的高性能计算软件的性能优化提供技术支持。

高性能科学计算软件性能分析

高性能计算领域里一个已经毋庸置疑的事实是高性能计算软件在各种不同体系结构的高性能计算平台下表现出的计算性能是不一样的,这样就需要在这些的高性能计算平台之中选择出最能发挥软件性能的平台。为此,必须做面向计算机体系结构的软件性能分析。

例如,北工大材料学院在进行“低维电子功能材料中尺度效应和元素特性研究”课题中,使用基于第一性原理计算的计算软件VASP对材料的物理和化学特性进行描述。在第一性原理计算过程中,涉及到大量的矩阵计算,属于计算密集型、通讯密集型应用。其中大多数并行计算采用能带分割的并行模式,同时混合了平面波系数并行模式。

为了使得VASP软件在分析计算过程中充分发挥计算平台的性能,寻找最佳的运行环境,材料学院和计算机学院的研究生一起合作,将VASP软件分别部署在高性能计算平台的三个资源池 (虚拟集群资源池、万兆网互联多核集群资源池、NUMA架构的IBM 3950资源池) 中,测试比较在不同资源池中VASP软件的运行性能。经过多次的实验,分析比较计算时间、加速比、浮点运算次数及其它与体系结构密切相关的性能参数,最终确定基于NUMA架构的IBM3950服务器运行效果最佳。

多核架构的计算平台并行程序性能优化

自2005年多核芯片逐渐普及以来,计算机科学领域正在发生着深刻的变革,软件性能提升的“免费午餐”已经结束,国外及国内各个研究团体都从各个方面进行多核芯片架构的计算平台的程序性能优化的研究。近几年,网格中心从生命、材料、结构工程等应用领域着手,开展该方向的研究,并在结构工程领域的有限元分析计算方面取得了一定的进展。

结构工程在城市基础设施建设、结构受损研究中发挥着重要的作用,通过结构工程实验人们探索结构性能的规律,为结构设计、施工和运行提供必不可缺的依据。结构工程领域中一种行之有效的仿真实验方法是利用有限元法。网格中心联合建筑工程学院进行地震工程动力仿真服务的研究,提供基于开源有限元分析软件OpenSees的高性能动力分析计算服务。

网格中心通过对OpenSees并行版本OpenSeesSP 在高性能计算平台上的性能测试和分析,找出了程序的性能瓶颈,利用MPI/OpenMP混合编程模型设计了一种适合于多核芯片架构的集群计算平台上高效求解非线性动力微分方程的求解算法,并在OpenSeesSP版本中依据这种算法是实现了一个基于混合并行编程模型的求解器。通过改进的OpenSeesSP进行测试和性能分析,优化效果比较理想。

基于x86集群的并行编程模型的实践

结构健康监测是通过对结构的物理力学性能进行无损监测,对结构的服役情况、可靠性、耐久性和承载能力进行智能评估,结构健康监测数据的规模相当大。目前已存在专门的工程数据处理软件,例如M a t l a b、Famos等,这些软件都是基于串行算法实现的,对于结构工程试验产生的大规模的海量数据进行处理时则往往效率低下。

Hadoop技术已经在互联网领域得以广泛的应用,同时也得到研究界的普遍关注,DryadLINQ已经在微软内部得到广泛应用。网格中心从结构工程领域中海量结构健康监测数据处理的应用出发,在分析Hadoop和DryadLINQ两种并行编程框架特点的基础上,搭建了两种并行编程框架的集群系统,集群使用IBM HS21刀片服务器,操作系统使用微软的Windows HPC Server 2008 R2。在集群系统中使用两种并行编程框架对大规模结构工程试验数据进行快速傅里叶变换,以测试其性能。

通过测试结果分析出不同规模数据在Hadoop集群和DryadLINQ集群上的运行时间,随着数据量的加大,运行时间在增长,但时间增大的幅度在减缓。但随着数据规模的增大DryadLINQ的运行优势越明显,例如数据量为1G的运行时间为250.03秒,而3G的数据量运行时间为310.53秒,仅为1G数据量的1.25倍,所以数据量越大越适合采用DryadLINQ的并行计算方式。对于Hadoop集群也是如此,随着数据量的不断增加,虽然执行时间继续增加,但增加的幅度变小。

应用实践表明,无论是采用基于Hadoop系统的MapReduce并行编程还是采用基于Dryad平台的DryadLINQ并行编程,对于大规模数据在处理效率上有了很大的提高。

X10是IBM 研究部门与多家学术科研机构共同开发的面向现代体系结构的并行编程语言。相比传统的并行编程语言,如MPI或者OpenMP,X10有更高的编程效率,更好的语义抽象以适应不同的体系结构和不同的数据访问方式。同时,X10也能够获得很好的并行度。网格中心阶段性参与IBM中国研究院对X10与Hadoop、Twister等编程模型对比和性能分析的研究,负责实验环境的搭建。

在实验测试和系统性能分析时,网格中心的老师和研究生与IBM研究人员一起讨论实验结果,分析出现问题的原因,提出建议和想法。

(作者单位为北京工业大学网格中心)

猜你喜欢
数据量高性能集群
基于大数据量的初至层析成像算法优化
高刷新率不容易显示器需求与接口标准带宽
宽带信号采集与大数据量传输系统设计与研究
海上小型无人机集群的反制装备需求与应对之策研究
一种无人机集群发射回收装置的控制系统设计
Python与Spark集群在收费数据分析中的应用
一款高性能BGO探测器的研发
勤快又呆萌的集群机器人
高性能砼在桥梁中的应用
SATA推出全新高性能喷枪SATAjet 5000 B