跳转到内容

办公室负责研究的副总裁

  • 横幅图像

提高ADCIRC风暴潮模拟软件的性能

作者
尼克·韦德和蒂姆·斯蒂特

教师的导师
Jijun唐

摘要

准确预测风暴和飓风对于挽救生命和减少经济损失至关重要。因此,有必要使用最有效的软件和硬件技术,以提高这些预测数学模型的性能和保真度。十多年来,圣母大学的计算水力学实验室(CHL)一直参与开发高分辨率高级环流(ADCIRC)风暴潮模型,以预测沿海地区的风暴潮。本文报告的工作目标是将并行ADCIRC代码的一种新颖的适应移植到德克萨斯州高级计算中心(TACC)的最先进的Intel Xeon Phi协处理器系统(Stampede),并理想地演示一组基准计算的加速。移植过程是通过识别细粒度并行性和可向量化计算密集型循环来完成的,这些循环可以卸载到61核Xeon Phi协处理器,同时利用它们的512位宽矢量单元。由于传输延迟,卸载过多的代码会降低使用Xeon Phi协处理器的效率,因此最初对代码进行分析,以确定主机处理器花费大部分时间的代码热点。这一分析使我们能够将OpenMP和Xeon-Phi的工作集中在最昂贵的例程上。我们对这些例程进行了修改,以充分利用主机处理器上的全部16个线程,并最终允许我们将工作卸载到合作的Xeon-Phis上增加的线程数量。

简介

飓风对世界各地的沿海地区都是灾难性的。如果风暴很大,而为风暴做的准备很少,它们就特别危险。正因为如此,在这些风暴发生之前预测它们的行动,并评估之前风暴造成的破坏,以便为即将到来的风暴做好准备,是很重要的。风暴潮模拟的总体目标是使个人、政府和救灾机构更好地为风暴做好准备,以挽救生命和减少财产损失[1-5]。例如,2012年10月,直径820英里的飓风桑迪袭击了新泽西州,造成大约250亿美元的商业活动损失,810万户家庭断电。重要的是,居民、机构和市政当局为风暴做好准备,以最大限度地减少对沿海地区的破坏和负面影响。执行适当的计算需要大量的计算能力和时间。为了使模型有效并返回及时、准确的结果,它们需要利用超级计算机的并行计算能力。

由圣母大学计算水力学实验室(CHL)合作开发的高分辨率高级环流(ADCIRC)风暴潮模型是在高性能计算机上运行的高度并行处理代码的一个很好的例子[4-5]。ADCIRC模型一直是并将继续是美国陆军工程兵团(USACE)和联邦紧急事务管理局(FEMA)[7]使用的标准海岸模型。例如,它被用来帮助重建卡特里娜飓风后新奥尔良的堤坝,以防止未来发生这种级别的灾难[7,8]。ADCIRC代码的最新改进改变了计算结果的底层数值方法,这种新的数值方法应能提供更准确的结果和稳定的性能。然而,如果新代码没有利用这种新的数值方法中固有的并行性,那么这种增加的保真度可能以计算速度为代价。

本文报告的工作目标是将新的并行ADCIRC风暴潮代码(这里称为DGSWEM)移植到德克萨斯州高级计算中心(TACC)的最先进的Intel Xeon Phi协处理器系统(Stampede),目标是在一组基准计算上显示更高的性能。最初对代码进行概要分析是为了识别代码热点,这使我们能够将协处理器卸载集中到可以利用Xeon-Phi协处理器的并行特性的区域,从而提供最大的好处。

背景

在过去的四十年中,并行处理对于高性能计算系统的发展至关重要。最初,并行处理涉及多个处理器共享单个内存池[9]。在单个内存地址空间中协调和扩展多个处理器的问题导致了分布式内存系统的出现,其中每个处理器都有自己的本地内存。这极大地提高了性能,但导致了各个处理器-内存对之间的通信挑战。最近,已经开发了混合体系结构,其中每个节点都是与高速网络连接的多核共享内存计算机,用于消息传递。这种配置的示意图如图1a所示,其中每个节点都是一个多核共享内存计算机,节点之间有通信。这种体系结构的一个缺点是,每个核心只看到自己节点上的内存,而远程内存数据访问需要节点之间的特定消息传递,这给计算带来了显著的通信延迟和带宽开销。解决这个缺点的一个解决方案是利用本地加速器和协处理器硬件来卸载高度并行的工作负载,并避免昂贵的网络通信。英特尔最近发布了其MIC (Many Integrated Core)协处理器架构(见图1b),可以大大提高计算性能[10]。

尽管各种形式的并行处理已经取得了许多进展,但它仍然是一项艰巨的任务划分处理任务并在它们之间进行通信会引入额外的开销,如果这个时间超过了CPU加速的量,那么就没有时钟加速[11]。此外,如果模拟任务在处理器之间分配,但一个处理器不能开始它的任务,直到另一个处理器完成,那么没有实现时钟速度的净加速。因此,目标是确定多个进程可以独立运行的程序任务,同时尽量减少进程花费在通信上的时间。如果操作正确,结果代码在并行处理机上运行所需的时间可以减少几个数量级。也就是说,编写良好的并行程序应该具有很强的伸缩性,这意味着在不增加手头问题规模的情况下,可以在多处理器系统上实现加速。加速器和协处理器通过提供可以同时管理数百或数千个执行线程的多核架构,可以进一步推动并行处理。

由DGSWEM代码实现的新的数值方法提供了更准确的结果和稳定的性能。然而,如果新代码没有利用这种新的数值方法中固有的并行性,那么这种增加的保真度可能以计算速度为代价。代码将被模拟的区域划分为用户定义的单元格网格。它使用一个消息传递接口(MPI)在这些单元之间进行通信,每个单元都有一个处理器来进行计算。对于每个处理器上的每个单元,模拟方程都是独立完成的,MPI在需要时将任何必要的数据传递给邻近的单元。这就是大规模并行计算在这种模拟中如此重要的原因。

大型风暴潮模拟通常在TACC大型Stampede系统的主机处理器上运行。Stampede是一个6400个计算节点的系统,其中每个节点有两个Intel Sandy Bridge处理器和两个Intel Xeon-Phi协处理器。每个节点配置32GB内存,每个Xeon-Phi[10]上额外配置8GB内存。这台机器运行在Linux内核上,我们所有的开发都是使用Intel Compiler v14执行的。

结果与讨论

由于源代码的大小如此之大,有必要缩小哪些例程将从加速中获益最多,哪些段的执行时间足够短,可以保持原样运行。分析使我们能够评估在每个例程中花费了多少执行时间。分析是使用俄勒冈大学的调优和分析实用程序(TAU)[12]完成的,主要有两个目的。首先,我们为一组基准运行计算每个源例程所花费的时间,以确定哪些例程对总体运行时的贡献最大。其次,我们对不同处理器数量下的测试运行进行了分析,以确保当我们增加处理器数量时,这些热点仍然显著。如果情况并非如此,那么我们应该重新评估我们的改进重点,因为大多数真实的模拟都是在高处理器数量(通常是2000 - 16,000个核)上执行的。所有这些运行都仅在主机处理器上执行,并且只计算壁钟时间。

图2显示了DGSWEM代码的128个核心运行,并显示了每个核心上每个例程的独立时钟时间。我们看到程序中的一些例程比其他例程运行的时间要长得多。通过仅针对三组核(128、256和512核)重新绘制图2,可以更容易地识别运行时间最长的例程,如图3所示。

在模拟过程中运行时间最长的五个例程是INTERNAL_EDGE_HYDRO(1)、INTERNAL_EDGE_LDG_HYDRO(2)、MPI_Waitsome(3)、RHS_DG_HYDRO(4)和RHS_LDG_HYDRO(5)。MPI_Waitsome(例程3)实际上是一个用于处理处理器之间MPI的例程。虽然在这方面也可以进行改进,但这超出了本研究的范围。因此,我们将卸载工作集中在其他4个例程上。从图3中我们还可以看到,随着核心数的增加,每个例程的相对速度是恒定的。例如,在128、256和512核上,4个例程(1,2,4和5)约占总运行时间的70%。因此,加快这些例程应该会对整个运行的速度产生重大影响。该图还演示了代码的可伸缩性。我们可以看到,加倍的核心数量似乎可以将整个运行所花费的时间减少一半。这展示了代码已经为常规的主机处理器运行进行了多么好的优化,以及在我们转向DGSWEM时维持这种可伸缩性是多么重要。

图4进一步演示了现有代码的可伸缩性,以及它需要维持到什么程度。我们可以看到,增加核心数量的有效性直到大约1万个核心(对于两个较大的EC2001网格,x 4和x16)才会下降。

选择了例程后,我们开始实现OpenMP并卸载指定的部分。OpenMP是通过指定每个例程中的哪些数据值对单个线程共享或私有来实现的。这意味着对每个例程中使用的每个变量进行分类。我们前面提到过,在向量化的代码上划分任务效果最好。问题是Internal_Edge_Hydro(例程1),我们最大的例程,没有完全向量化。因为这个例程包含从多个线程读取/写入的共享数据值,所以在代码中添加语句以防止不同线程具有相同的值。

图5显示了在多个线程上实现OpenMP的代码的运行时结果。在128个处理器上,原始的非OpenMP DGSWEM比只实现了一个线程的OpenMP DGSWEM运行得更快。这是由于原子语句的开销。然而,一旦我们实现了至少2个线程,这个开销就被克服了,通过16个线程,DGSWEM比没有OpenMP的DGSWEM快4倍(即1899秒比7892秒)。这仍然比旧的ADCIRC慢

精确的数值方法,但我们可以通过利用合作的Xeon-Phis上的额外线程来突破16个主机处理器线程的限制。因此,下一步是实现Xeon-Phi卸载,以利用额外的线程。

结论

由诺特丹大学计算水力学实验室(CHL)合作开发的ADCIRC风暴潮计算机代码最初移植到德克萨斯州高级计算中心(TACC)的最先进的英特尔Xeon-Phi协处理器系统(Stampede)。通过识别和向量化要卸载到61核Xeon-Phi协处理器的计算密集型循环,尝试了移植。卸载过多的代码会降低使用Xeon Phi协处理器的效率,因此最初会对代码进行概要分析,以确定主机处理器花费大部分时间的代码段。这一分析使我们能够将OpenMP和Xeon-Phi的工作集中在最昂贵的例程上。我们确定了四个计算量大的例程,并在代码中实现了OpenMP指令。为了克服向量化问题,原子语句引入了额外的开销。一旦OpenMP实现完成并且至少使用了2个线程,这个开销就被克服了。使用16个线程,新代码在主机处理器上的运行速度比没有OpenMP时快了大约4倍。在速度方面,这与原始ADCIRC代码的性能不匹配,但通过使用Xeon-Phi卸载新的更准确的DGSWEM代码将利用Xeon-Phi上可用的额外线程,以更准确和更健壮的数值方法达到更快的运行时间。

致谢

我们要感谢圣母大学计算研究中心举办本科生研究体验项目,以及国家科学基金会为该项目提供资金。我们也要感谢圣母大学的计算液压实验室允许我们使用他们的代码,并在需要时为项目提供帮助。最后,我们要感谢南卡罗来纳大学本科生研究办公室通过麦哲伦学徒计划提供资金。bob官方体育登陆


作者简介

尼克·怀德尼克·怀德

我叫Nick Weidner,来自南卡罗来纳州哥伦比亚,是南卡罗来纳大学计算机科学与数学专业的大二学生。bob官方体育登陆我是计算机领域的威尔逊学者,也是顶点学者。我计划读计算机科学的研究生,尽管我仍在努力确定一个专业领域。为此,我在2013年夏天参加了美国国家科学基金会(NSF)赞助的圣母大学本科生研究经验(Research Experience For undergraduate, REU)项目。在圣母大学的10周时间里,我在计算研究中心的Tim Stitt博士的指导下工作。我的研究目标是采用他们计算水力学实验室在过去20年里开发的复杂风暴潮模型,并使用德克萨斯州超级计算机设施中高度并行的超级计算机提高运行时性能。这个项目让我深入了解了高性能计算(HPC)领域,也让我有机会与其他研究生和教师一起做非常重要和有趣的研究。我计划在USC计算机科学与工程系的Jijun Tang博士的指导下继续这个项目,并从Stitt博士那里获得建议。我要感谢美国国家科学基金会,圣母大学计算研究中心,斯蒂特博士,以及圣母大学计算水力学实验室的成员。这项工作在2013年8月2日的圣母大学研究研讨会上以海报的形式展示。

参考文献

  1. Westerink, J. J., R. A. luetich, A. M. Baptista, N. W. Scheffner, P. Farrar,“潮汐和风暴潮的有限元模型预测”,水利工程118 (10), 1373-1390(1992)。
  2. Bode, L.和T. A. Hardy,“风暴潮模型的进展和最新发展”,水利工程123 (4), 315-331(1994)。
  3. Hubbert, G. D.和K. L. McInnes,“海岸规划和影响研究的风暴潮淹没模型”,沿海的研究,15 (1), 168-185(1999)。
  4. Dawson, C., E. J. Kubatko, J. J. Westerink, C. Tranhan, C. Mirabito, C. Michoski, N. Panda,“飓风风暴潮建模的间断Galerkin方法,”水资源研究进展, DOI 10.1016/j.a vwaters .2010.11.004,34, 1165-1176(2011)。
  5. Tanaka, S., S. Bunya, J. J. Westerink, C. Dawson, R. A. Luettich,“基于非结构化网格连续Galerkin的飓风风暴潮模型的可伸缩性”,科学计算46, 329-358(2011)。
  6. 韦伯利,K,“飓风桑迪的数字:超级风暴的统计,一个月后,”(2012年11月26日),检索自:http://nation.time.com/2012/11/26/hurricane-sandy-one-month-later/。
  7. “洪水保险研究:路易斯安那州东南部教区,中期提交2:近海水位和波浪”,联邦应急管理局,美国陆军工程兵团,新奥尔良区,2008年7月24日。
  8. Link, L. E, J. J. Jaeger, J. Stevenson, W. Stroupe, R. L. Mosher, D. Martin, J. K. Garster, D. B. Zilkoski, B. A. Ebersole, J. J. Westerink, D. T. Resio, R. g . Dean, M. K. Sharp, R.S. Steedman, J. M. Duncan, B. L. Moentenich, B. Howard, J. Harris, S. Fitzgerald, D. Moser, P. Canning, J. Foster, B. Muller,“新奥尔良和路易斯安那州东南部飓风防护系统的性能评估”第一卷-执行摘要和概述,美国陆军工程兵团跨部门绩效工作组最终报告草案,华盛顿特区,2008年6月。
  9. 帕特森,D. A.和J. L. Hennessy,“计算机组织与设计”,第四版,爱思唯尔,2012。
  10. 德州高级计算机中心,检索自:http://www.tacc.utexas.edu/stampede/
  11. James, D.,“并行计算入门”,德克萨斯高级计算机中心,(2013年9月)检索自:http://www.tacc.utexas.edu/user-services/training/course-materials
  12. Shende S.和A. D. Malony,“TAU并行绩效系统”,Int。J.高绩效。C。20 (2), 287-331(2006)。

挑战传统。创建例外。没有限制。

©
Baidu