2. 中国科学院射电天文重点实验室, 江苏 南京 210008;
3. 中国科学院国家天文台, 北京 100101;
4. 中国科学院大学, 北京 100049
2. Key Laboratory of Radio Astronomy, Chinese Academy of Sciences, Nanjing 210008, China;
3. National Astronomical Observatories, Chinese Academy of Sciences, Beijing 100101, China;
4. University of Chinese Academy of Sciences, Beijing 100049, China
天文学是一门基于观测和模拟的数据密集型科学, 暗能量、暗物质、黑洞、宇宙起源、天体起源、生命起源等是天文学研究的前沿重大基础科学问题, 解决这些问题的首要方法是观测, 其次是利用高性能计算系统对海量真实或仿真数据进行建模和模拟分析, 从而进一步揭示宇宙的奥秘。信息技术、高性能计算技术等的高速发展使得用计算机实现理论和实验研究成为可能, 在这样的背景下, 天文学家通过高性能计算系统进行科学研究成为必然趋势[1]。中国科学院新疆天文台几十年来致力于天文观测和理论研究, 科研内容包括:脉冲星、恒星形成、活动星系核、射电及光学望远镜技术等, 为提高数据处理和仿真分析的研究效率, 结合自身科学研究需求搭建了高性能计算系统, 命名为Taurus①。
近些年基于图形处理器(Graphic Processing Unit, GPU)的并行计算技术已经成为高性能计算领域的研究热点, 利用图形处理器可以大大加速科学分析、仿真等方面应用程序的运行速度[2]。图形处理器加速计算技术早在2007年由NVIDIA公司推出[3], 将计算密集型的任务提交图形处理器处理, 同时中央处理器依然处理其余任务, 可以有效提升数据处理的速度。在天文领域, 图形处理器计算框架非常适合天文图像处理、宇宙学大尺度数值模拟、空间目标轨道模拟等, 图形处理器计算框架已经在天文学研究中得到广泛的应用。
高性能计算系统的计算性能来自于多节点的并行计算, 节点之间的数据传输、通讯是系统建设的关键[4]。Taurus高性能计算系统的建立使得新疆天文台在高性能计算支持上实现了零的突破, 在未来的工作中Taurus高性能计算系统将助力于新疆天文台在天体演化模型研究、射电天文多相滤波器、相干及非相干消色散、数值模拟等多方面的科研工作。
1 Taurus高性能计算系统 1.1 系统拓扑Taurus高性能计算系统采用CPU + GPU混合架构, 目前整个系统由1个登陆节点、1个管理节点、16个计算节点、2个I/O节点、100 TB高速存储组成。每个计算节点配备了2颗12核心Intel Xeon E5-2692 v2 CPU, 主频为2.20 GHz, 64 GB内存, 1个Nvidia Tesla K20 m GPU。计算与I/O节点之间通过56 Gb Infiniband交换机互联, 以实现调整数据或消息传递。千兆以太网及智能平台管理接口(Intelligent Platform Management Interface, IPMI)网络用于集群系统管理, Taurus高性能计算系统拓扑结构如图 1。
1.2 计算性能测试Linpack[5]是国际上最流行的用于测试高性能计算机系统浮点性能的基准程序, 也是世界排名TOP500超级计算机的标准测试软件。性能测试由多个64位双精度浮点运算组成, 测试一个计算系统每秒可以进行的乘加计算次数(flops)。Linpack有3种基准测试, 分别为Linpack 100、Linpack 1 000以及HPLinpack[6]。前两种基准测试不适合测试并行计算机集群, 本文采用HPLinpack对Taurus高性能计算系统进行测试。
1.2.1 中央处理器性能测试Taurus高性能计算系统共有16个计算节点, 单个计算节点配置如表 1。E5-2692v2每时钟周期可进行8次运算, Taurus高性能计算系统中央处理器双精度浮点理论计算能力为2.2 × 8 × 24 × 16= 6 758.4 Gflops。
名称 | 类别 | 数量 | 备注 |
CPU | E5-2692v2 | 2 | 单CPU核数12个、24线程, 30 MB缓存 |
GPU | Tesla K20M | 1 | 核心数2 496 |
内存 | 8 G DDR3 | 8 | 单节点64 GB内存 |
网络 | 56 Gb Infiniband Gigabit | Infiniband用于数据传输, 千兆以太网用于管理 | |
存储1 | 300 GB | 2 | 本地存储, SAS接口, 10 000转/分 |
存储2 | 200 GB | 1 | 挂载的管理节点opt, 用于软件同步 |
存储3 | 100 TB | 1 | 挂载的集中式Lustre文件系统 |
HPLinpack是针对现代并行计算机提出的测试方法, 其核心是利用高斯消元法求解一元N次幂稠密线性代数方程组, 测试和评价高性能计算系统的浮点运算性能。Linpack的HPL.dat文件配置如表 2, 16节点中央处理器测试结果如表 3。
HPLinpack benchmark input file Innovative Computing Laboratory, University of Tennessee |
|||
HPL.out | output file name (if any) | 1 | # of panels in recursion |
6 | device out (6=stdout, 7=stderr, file) | 2 | NDIVs |
1 | # of problems sizes (N) | 1 | # of recursive panel fact |
341 760 | Ns | 1 | RFACTs (0=left, 1=Crout, 2=Right) |
1 | # of NBs | 1 | # of broadcast |
208 | NBs | 3 | BCASTs (0=1rg, 1=1rM, 2=2rg, 3=2rM, |
1 | PMAP process mapping (0=Row-, | 4=Lng, 5=LnM) | |
1=Column-major) | 1 | # of lookahead depth | |
1 | # of process grids (P x Q) | 2 | DEPTHs (>=0) |
16 | Ps | 2 | SWAP (0=bin-exch, 1=long, 2=mix) |
24 | Qs | 64 | swapping threshold |
16.0 | Threshold | 0 | L1 in (0=transposed, 1=no-transposed) form |
1 | # of panel fact | 0 | U in (0=transposed, 1=no-transposed) form |
1 | PFACTs (0=left, 1=Crout, 2=Right) | 1 | Equilibration (0=no, 1=yes) |
1 | # of recursive stopping criterium | 8 | memory alignment in double (>0) |
1 | NBMINs (>=1) |
最终测试结果表明, Taurus高性能计算系统中央处理器双精度浮点实际计算能力为6.289 Tflops, 计算效率为6.289/6.758 4=93.06%。
1.2.2 图形处理器性能测试Taurus高性能计算系统每个节点配备一块Nvidia Tesla K20m GPU, Tesla K20m是Nvidia推出的Kepler架构图形处理器, 该图形处理器拥有2 496个CUDA核心, 核心频率为706 MHz, 存储器带宽为208 GB/s, Taurus高性能计算系统16节点图形处理器双精度浮点数理论计算能力为16 × 1.17e + 03Gflops=18.72 Tflops。
本文使用HPLinpack对单个节点图形处理器计算性能进行了测试, Linpack的HPL.dat文件配置如表 4, 单个Tesla K20m GPU不同Ns值测试结果如表 5。
HPLinpack benchmark input file Innovative Computing Laboratory, University of Tennessee |
|||
HPL.out | output file name (if any) | 1 | # of recursive stopping criterium |
6 | device out (6=stdout, 7=stderr, file) | 2 8 | NBMINs (>=1) |
5 | # of problems sizes (N) | 1 | # of panels in recursion |
82 544 | Ns | 2 | NDIVs |
82 897 | Ns | 1 | # of recursive panel fact |
87 936 | Ns | 0 1 2 | RFACTs (0=left, 1=Crout, 2=Right) |
88 192 | Ns | 1 | # of broadcast |
88 448 | Ns | 0 2 | BCASTs (0=1rg, 1=1rM, 2=2rg, 3=2rM, |
1 | # of NBs | 4=Lng, 5=LnM) | |
1 024 | NBs | 1 | # of lookahead depth |
0 | PMAP process mapping (0=Row-, | 1 0 | DEPTHs (>=0) |
1=Column-major) | 1 | SWAP (0=bin-exch, 1=long, 2=mix) | |
1 | # of process grids (P x Q) | 192 | swapping threshold |
1 | Ps | 1 | L1 in (0=transposed, 1=no-transposed) form |
1 | Qs | 1 | U in (0=transposed, 1=no-transposed) form |
16.0 | Threshold | 1 | Equilibration (0=no, 1=yes) |
1 | # of panel fact | 8 | memory alignment in double (>0) |
0 1 2 | PFACTs (0=left, 1=Crout, 2=Right) |
Ns Value | Tesla K20M Calculation Value (Gflops) |
82 544 | 1.034e + 03 |
82 897 | 1.057e + 03 |
87 936 | 1.069e + 03 |
88 192 | 1.065e + 03 |
88 448 | 9.063e + 02 |
通过多次测试得到了Ns值的经验公式, 如计算节点的总内存为M, 节点的个数为N, 系数为R, 则:
$ {N_{\rm{s}}} = {\rm{ROUND}}\left( {{\rm{SQRT}}\left( {{\rm{M}}*{\rm{N}}*1{\rm{ }}024*1{\rm{ }}024*{\rm{R}}/8} \right)/128, 0} \right)*128 $ |
当R值在0.8到0.9之间时图形处理器集群可以得到最高测试结果。测试中Taurus高性能计算系统16个图形处理器节点最高计算峰值为14.882 Tflops, 实际计算效率为14.882/18.72=79.5%。
1.3 存储系统性能测试Taurus采用了Lustre[7]文件系统作为存储系统, 存储容量为100 TB。存储架构为一个存储节点与两个扩展盘柜, 扩展盘柜和中央存储节点直接使用SAS接口连接, 使用回环模式。Lustre文件系统是一个开源的、基于对象存储技术的集群并行文件系统, 可为Taurus提供可靠、安全、易用且可扩展的存储环境[8]。Lustre文件系统的架构图如图 2。
Taurus存储使用集中管理方式, 所有计算节点加载同一套存储系统。为了解决故障及I/O瓶颈问题[9], 存储控制器上两个独立的控制卡分别通过光纤和两个互为冗余的I/O节点连接, 当其中一个I/O节点发生故障, 另一个I/O节点立刻接管, 保证了存储的稳定性。其次I/O节点和服务器之间采用56 Gb Infiniband[10]连接, 支持多并发连接转换技术, 具备高速数据传输能力。
通过文件系统基准测试工具IOZone对Taurus的文件系统进行了写入、读取、重读、重写、反向读、跨越式读、从文件中读、往文件中写、随机读取、预读取、内存映射文件I/O、异步I/O读取、异步I/O写入等测试[11]。测试中指定生成的测试文件应小于实际内存容量, 否则影响测试结果。Taurus高性能计算系统多节点最高读取速度达到6 GB/s左右; 写入速度如图 3, 当文件大小为256 MB且分块大小为16 MB时达到最快的写入速度650 MB/s。
1.4 软件环境Taurus高性能计算系统采用PBS (Portable Batch System)集群调度器进行硬件资源的管理和分配, 用户可以通过PBS提交作业脚本、查询作业状态信息、作业队列管理等操作。Taurus采用module管理软件版本及库函数版本等, 方便用户配置环境变量。用户可以直接使用module切换python版本、MPI并行环境及编程模型等。图形处理器编程方面, 每个计算节点支持CUDA运算架构, 可以直接通过PBS提交数据密集型作业给图形处理器进行运算。
2 高性能计算系统应用Taurus高性能计算系统建成后, 30余名科研人员使用Taurus开展科研相关计算工作。
2.1 蒙特卡罗模拟分子云中的化学演化天体化学是一门模拟各种各样分子在分子云中合成的学科, 蒙特卡罗模拟是天体化学的一种常见模拟方法[12]。蒙特卡罗模拟方法是一种随机过程, 用来模拟一个反应网络中某一个化学反应的发生。新疆天文台的天体化学课题组使用Taurus模拟在一个有尺度分布的系统中各种分子的化学演化, 取分子云中的一个很小的体积作为一个系统, 里面包含一个尘埃以及它周围的气体。这个系统中包含多种化学反应, 可以通过计算系统对这些化学反应进行模拟, 同时考虑多个尘埃时需并行共同演化, 当达到一定条件后再对各个子系统进行混合处理, 保证整个大系统处于一种均匀状态。
蒙特卡罗方法的缺点之一是耗时太长, 在普通单机计算机上进行模拟二十万年演化时间尺度就需要数十天时间。而通过使用Taurus高性能计算系统, 目前模拟二十万年演化时间尺度的时间约为7天。新疆天文台天体化学课题组使用Taurus高性能计算系统对不同分子演化使用蒙特卡罗方法模拟结果如图 4。
2.2 多相滤波及消干扰图形处理器加速射频干扰(Radio Frequency Interference, RFI)的识别及消除的研究方面, 如何快速准确地找出射频干扰, 防止把真实信号误判为干扰是一项急需解决的技术难点。由于大口径望远镜数据的计算量非常大、射频干扰环境复杂, 对射频干扰实时处理技术提出很大的挑战。新疆天文台研究人员正在实验使用CUDA加速消除射频干扰, 目前已初步实现基于Taurus GPU的自适应射频干扰处理方法, 并得到良好的效果, 射频干扰处理结果如图 5。使用Taurus高性能计算系统能够有效减少干扰处理消耗时间, 为相干消色散实现提供了硬件平台。
2.3 Taurus高性能计算系统使用申请Taurus高性能计算系统采用开放式管理, 接受相关领域研究人员的申请, 可将具体需求发送到zhanghailong@ xao.ac.cn。Taurus平台详细使用说明及示例程序参见网站:http://taurus.xao.ac.cn。
3 结论根据新疆天文台科研计算需求建设了16节点的高性能计算系统。经过测试, 所建设的超算系统中央处理器性能为理论值的93%, 图形处理器性能为理论值的80%。Lustre存储系统多节点在分块大小为16 MB、分块文件大于256 M时取得较理想的写入速度, 如果文件过小影响整个存储系统的性能。目前30余位用户在使用Taurus超算系统进行科学计算工作, 在蒙特卡罗模拟分子云中的化学演化、多相滤波器组算法图形处理器加速等相关领域得到了较好的计算结果。
[1] |
杨哲睿, 高娜, 刘梁. 大规模天文数据分析及多维信息可视化平台的建设和管理[J]. 科研信息化技术与应用, 2015, 6(5): 73–83 Yang Zherui, Gao Na, Liu Liang. Construction and management of large scale astronomical data analysis and multi-dimensional information visualization platform[J]. E-science Technology & Application, 2015, 6(5): 73–83. |
[2] | Fan Z, Qiu F, Kaufman A, et al. GPU cluster for high performance computing[C]//Proceedings of the ACM/IEEE SC2004 Conference. 2004: 47-47. |
[3] | Kirk D. NVIDIA CUDA software and GPU parallel computing architecture[C]//Proceedings of the 6th international symposium on Memory management. 2007: 103-104. |
[4] | Chervenak A, Foster I, Kesselman C, et al. The data grid:towards an architecture for the distributed management and analysis of large scientific datasets[J]. Journal of Network and Computer Applications, 2000, 23(3): 187–200. DOI: 10.1006/jnca.2000.0110 |
[5] | Dongarra J J, Luszczek P, Petitet A. The LINPACK benchmark:past, present and future[J]. Concurrency and Computation:Practice and Experience, 2003, 15(9): 803–820. DOI: 10.1002/(ISSN)1532-0634 |
[6] | Barrett R F, Chan T H F, D'Azevedo E F, et al. Complex version of high performance computing LINPACK benchmark (HPL)[J]. Concurrency and Computation:Practice and Experience, 2010, 22(5): 573–587. |
[7] | Zhao T, March V, Dong S, et al. Evaluation of a performance model of lustre file system[C]//2010 Fifth Annual ChinaGrid Conference. 2010: 191-196. |
[8] | Kosta L, Hunter H, George G, et al. Measuring I/O Performance of Lustre and the Temporary File System for Tradespace Applications on HPC Systems[C]//Proceedings of the SouthEast Conference. 2017: 187-190. |
[9] | Yildiz O, Dorier M, Ibrahim S, et al. On the root causes of cross-application I/O interference in HPC storage systems[C]//2016 IEEE International Parallel and Distributed Processing Symposium. 2016: 750-759. |
[10] | Pfister G F. An introduction to the infiniband architecture[M]//High Performance Mass Storage and Parallel I/O: Technologies and Applications. 2001: 617-632. |
[11] |
张春明, 芮建武, 何婷婷. 一种Hadoop小文件存储和读取的方法[J]. 计算机应用与软件, 2012, 29(11): 95–100 Zhang Chunming, Rui Jianwu, He Tingting. An approach for storing and accessing small files on Hadoop[J]. Computer Applications and Software, 2012, 29(11): 95–100. |
[12] | Lamberts T, Cuppen H M, Ioppolo S, et al. Water formation at low temperatures by surface O 2 hydrogenation Ⅲ:Monte Carlo simulation[J]. Physical Chemistry Chemical Physics, 2013, 15(21): 8287–8302. DOI: 10.1039/c3cp00106g |