CN107590589A - 基于gpu集群的城市一般建筑群震害分析的计算加速方法 - Google Patents

基于gpu集群的城市一般建筑群震害分析的计算加速方法 Download PDF

Info

Publication number
CN107590589A
CN107590589A CN201710740626.XA CN201710740626A CN107590589A CN 107590589 A CN107590589 A CN 107590589A CN 201710740626 A CN201710740626 A CN 201710740626A CN 107590589 A CN107590589 A CN 107590589A
Authority
CN
China
Prior art keywords
gpu
calculating
common buildings
building
seismic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201710740626.XA
Other languages
English (en)
Inventor
许镇
孙韬文
袁静雨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Science and Technology Beijing USTB
Original Assignee
University of Science and Technology Beijing USTB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by University of Science and Technology Beijing USTB filed Critical University of Science and Technology Beijing USTB
Priority to CN201710740626.XA priority Critical patent/CN107590589A/zh
Publication of CN107590589A publication Critical patent/CN107590589A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供一种基于GPU集群的城市一般建筑群震害分析的计算加速方法,属于土木工程防灾减灾技术领域。该方法包括基于单个GPU的一般建筑震害分析并行计算方法和基于GPU集群的静态负载均衡策略。在单GPU上,根据要计算的建筑数量开辟线程,每条线程对应一栋建筑,采用中心差分法求解动力方程,完成一栋建筑的震害计算。进而评估多个GPU的计算性能和可用显存,并确定每栋建筑评估所需内存,在显存允许下优先将计算任务分配给计算性能高的GPU,直到所有任务都被分配完成。本发明为大规模的城市一般建筑群震害分析提供了加速计算手段,可实现近实时的地震后城市建筑震害评估,以科学指导震后城市救援工作。

Description

基于GPU集群的城市一般建筑群震害分析的计算加速方法
技术领域
本发明涉及土木工程防灾减灾技术领域,特别是指一种基于GPU集群的城市一般建筑群震害分析的计算加速方法。
背景技术
在全国660个城市中,位于地震区的占74.5%,约有一半城市位于基本烈度7度及以上地区。城市区域中,绝大多数都是形状简单规则,结构类型明确,地震作用下行为易于预测的一般建筑。这类建筑数量巨大,震害分析的计算量异常庞大,无法满足地震震灾后的快速应急响应要求。因此,为了解决计算效率的问题,需要针对一般建筑群震害分析开发高性能的计算方法。
日本东京大学地震工程研究所的Hori和Ichimura利用超级计算机完成了东京市的震害模拟(Wijerathne M L L,Hori M,Kabeyazawa T,et al.Strengthening ofparallel computation performance of integrated earthquake simulation[J].Journal of Computing in Civil Engineering,2012,27(5):570-573.)。然而,超级计算机价格昂贵,维护成本高昂,难以得到广泛应用。
GPU(Graphic Processing Unit,图形处理单元),最早是用于计算机图形显示的处理单元。由于很好的并行计算和浮点计算能力,GPU开始走出图形计算的限制,将其强大的性能延伸到通用计算的领域。目前,全世界前100强的超级计算机均有GPU参与进行计算,我国也有类似的采用GPU作为运算核心的计算机集群。为此,清华大学韩博等人利用GPU进行城市建筑群的震害分析,并在了7000多建筑群上进行了应用(韩博,陆新征,许镇,李易.基于高性能GPU计算的城市建筑群震害模拟[J].自然灾害学报,2012,21(5):16-22.)。但是,该计算方法限于单个GPU,难以应对更大规模的建筑群。
为此,本发明在GPU加速的基础上,进一步提出基于GPU集群的解决方案,以扩大方法的适用范围,满足城市大规模建筑群的海量计算需求。
发明内容
本发明为解决城市一般建筑群震害分析的海量计算问题,提供一种基于GPU集群的城市一般建筑群震害分析的计算加速方法,实现大规模城市一般建筑震害的快速预测。
该方法包括基于单个GPU的一般建筑震害分析并行计算方法和基于GPU集群的静态负载均衡策略两部分,具体过程如下:
(1)基于单个GPU的一般建筑震害分析并行计算方法:
首先,将计算数据(地震动数据和建筑模型参数)由计算机内存复制到GPU显存中;然后,根据建筑数量开辟GPU线程,每一条线程对应一个建筑计算任务,在GPU中进行求解;最后,将每栋建筑的计算结果由显存复制到内存中。
通过GPU要计算的建筑数量和GPU中的Block数量决定开辟线程的数量。GPU的线程总数等于Block数量与每个Block容纳线程数量的乘积。由于GPU硬件限制,Block容纳线程数量是32的整数倍,一般取256。Block的个数等于要计算的建筑数量除以256后的整数部分确定,如果有余数则加1。则开辟线程的总数等于Block数量乘以256。这样情况下,开辟的线程数量将保证覆盖所有顶点。一个建筑震害分析任务由一条GPU线程负责,采用中心差分法求解动力方程,以完成一栋建筑的震害计算。
(2)基于GPU集群的静态负载均衡策略:
采用一组配有GPU的计算机搭建GPU集群,该组计算机被分为一个Host,余下的为Slaves,采用静态负载均衡策略,评估多自由度剪切层模型的计算荷载;
首先,评估Slave的计算能力,计算能力用每秒的浮点数计算量FLOPS来表示,根据FLOPS值,每个Slave将降序排列,并将它们的编号记为从1到m;
然后,确定所需要的GPU内存Mi=Si·Ms,i=1,2,3,...n,其中,Ms为每个楼层所需的GPU内存,n为建筑的数量,Si为第i个建筑对应的楼层数;
再通过监控软件测量确定可用的GPU内存大小;
最后,分配任务,将建筑分配到Slave上。任务分配规则是:a)优先给高性能GPU的Slave分配任务;b)每个GPU分配任务总大小应等于或接近GPU可用内存。
本发明的上述技术方案的有益效果如下:
上述方案中,为大规模的城市一般建筑群震害分析提供了加速计算手段,可实现近实时的地震后城市建筑震害评估,以科学指导震后城市救援工作。
附图说明
图1为本发明方法框架图;
图2为基于单个GPU的一般建筑震害分析的数据传递图;
图3为本发明单个GPU计算与CPU计算的效率对比;
图4为本发明GPU计算所取得的计算加速比曲线图;
图5为本发明静态荷载均衡策略的计算效果;
图6为10万一般建筑的震害分析结果展示。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
本发明提供一种基于GPU集群的城市一般建筑群震害分析的计算加速方法。
该方法包括基于单个GPU的一般建筑震害分析并行计算方法和基于GPU集群的静态负载均衡策略两部分(如图1),具体过程如下:
(1)基于单个GPU的一般建筑震害分析并行计算方法:
本发明将每座建筑的地震动力时程分析视为一个子任务,并且采用合适的计算模型,每一个子任务的计算量足以由单个GPU线程进行计算。由于GPU有着成百上千的计算核心,可以并发大量线程,每一个线程都用来计算一座建筑的话,就可以快速完成一座城市上千座建筑的震害模拟,因此计算效率也将会非常高。
首先,采用GPU开发平台CUDA提供的“cudaMemcpy()”函数进行CPU和GPU之间的数据拷贝,将地震动数据和建筑震害分析模型数据由内存复制到GPU显存中(见图2)。
然后,根据建筑数量开辟GPU线程,每一条线程对应一个建筑计算任务,在GPU中进行求解。通过GPU要计算的建筑数量和GPU中的Block数量决定开辟线程的数量。Block的个数等于要计算的建筑数量除以256后的整数部分确定,如果有余数则加1。则开辟线程的总数等于Block数量乘以256。这样情况下,开辟的线程数量将保证覆盖所有顶点。一个建筑震害分析任务由一条GPU线程负责,采用中心差分法求解动力方程,以完成一栋建筑的震害计算。
最后,通过“cudaMemcpy()”函数将每栋建筑的计算结果(破坏状态和结构地震响应)由显存复制到内存中(图2)。
(2)基于GPU集群的静态负载均衡策略:
本发明采用一组配有GPU的计算机搭建GPU集群。这些计算机可以被分为一个Host和若干Slaves,Host负责给每一个Slave分配计算任务,而Slave负责执行具体的计算任务。
城市一般建筑群可以由自由度剪切层模型进行震害分析。在城市一般建群震害分析中,多自由度剪切层模型的计算荷载可以被很好地评估,因此,适合选用静态荷载平衡策略。本发明荷载均衡策略有两个重要原则:a)优先给高性能GPU的Slave分配任务;b)每个GPU应该尽可能多地分配任务。建筑震害分析主要依赖GPU,GPU越强大,模拟的效率越高。另外,在不超过GPU显存容量的情况下,GPU计算效率将随着任务的数量而增加。因此,为了充分发挥GPU的计算潜能,应该在GPU显存容量可以承受的范围内,分配足够多的任务。静态荷载均衡策略包括如下4个步骤:
步骤1:评估Slave的计算能力
GPU的计算能力可以用每秒的浮点数计算量FLOPS(floating-point operationsper second)来表示,它是一种常见的硬件计算性能的度量方法。根据GPU的FLOPS值,每个Slave将降序排列,并将它们的编号记为从1到m。编号越小,说明Slave对应GPU的计算能力越强。
步骤2:确定所需要的GPU内存
在中等尺度模拟中,所有的计算都是以楼层为基本单位。既然每个楼层所需的计算变量是确定的,因此每个楼层所需的GPU内存也是确定的,记为Ms。假设建筑的数量是n,第i个建筑对应的楼层数是Si,则所需的GPU内存Mi可以由式(4)确定:
Mi=Si·Ms i=1,2,3,...n (4)
步骤3:确定可用的GPU内存大小
事实上,由于GPU内存需要存储一些必要的数据,如渲染数据等,GPU内存通常不可能全部用来模拟。可用的GPU内存大小与软件环境、GPU类型都有关系,可以用一些监控软件来测量,如RivaTuner。假设第i个GPU的内存大小和可用内存大小分别为Gi在本节中所涉及的模拟中,大约等于0.9倍的Gi
步骤4:分配任务
根据每一层所需的GPU内存Ms和第i个Slave可用的GPU内存大小第i个Slave理想荷载(楼层数)可以根据式(5)求得:
其中,表示第i个Slave被分配的理想楼层数。
被分配给不同GPU的楼层总和应该不小于总的楼层数,因此,所需要的GPU个数,记为m*,可以由公式(6)确定。
因此,编号从1到m*的Slave将参与任务分配。假设某个Slave的编号是j。当j<m*,选择一组建筑使其楼层数近似等于这组建筑将被分配到第j个Slave上。具体来说,将所有建筑按照楼层数从1到n降序排列。假设第一个Slave的理想荷载是当从第1到第n1个建筑的楼层之和接近时,则编号从第1到第n1的建筑都将分配到第一个Slave上。
相应地,当从第n1+1到第n2的建筑楼层数之和接近这些建筑将会被分配到第二个Slave上。持续上述过程,直到j=m*。此时,所有剩下的任务都将被分配给
为测试本发明的可用性,建立了具有10万栋一般建筑的虚拟城市。这个虚拟城市中的一般建筑物数量、结构类型、建造年代、层数等比例都是参考一些中国真实大城市数据生成的,其分析结果具有可信的参考价值。
通过网速100.0Mbps的局域网将一个Host和7个Slave进行连接,构成GPU集群计算平台。它们的硬件配置如下表1所示。本方法震害模拟采用PGA为400cm/s2的El-Centro地震动作为输入。
表1计算框架的硬件配置
1)单GPU震害分析
这10万栋建筑的模拟都由最强大的Slave 1来进行计算。图3显示本发明GPU计算和传统的CPU计算用时对比。如图3所示,GPU计算仅耗时731s,而CPU计算耗时39,840s(接近11h),因此,本发明GPU计算取得了54.5倍的效率提升。而且,如图4所示,本发明的GPU加速方法的计算效率随建筑数量增加而增加。因此,该方法非常适合大规模的震害模拟。
2)GPU集群震害分析
通过本发明提出的静态负载均衡策略,10万栋建筑将分配到7台具有GPU的计算机上,以通过GPU集群进一步加速计算。GPU集群计算时间如图5所示,计算时间缩短为123s,而且各个计算机的计算时间相差无几,说明本发明负载均衡策略可以很好地匹配计算任务和GPU能力。GPU集群的计算效率(123s)比在最强计算机Slave1的计算效率(731s)提高了5.9倍。如果不使用GPU加速,即使采用最强的计算机Slave1也需要39,840s(接近11h),因此,GPU集群计算比不适用GPU情况下的单机计算要提高323倍,效率显著提升。
通过本发明的GPU集群计算,10万栋一般建筑的震害分析过程仅需要约2分钟,为城市一般建筑群震害分析提供了高效的计算手段,可以满足震后城市应急救援的需求。10万栋一般建筑的震害分析结果图6所示。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (4)

1.一种基于GPU集群的城市一般建筑群震害分析的计算加速方法,其特征在于:包括基于单个GPU的一般建筑震害分析并行计算方法和基于GPU集群的静态负载均衡策略两部分,具体过程如下:
(1)基于单个GPU的一般建筑震害分析并行计算方法:
首先,将计算数据由计算机内存复制到GPU显存中,然后根据建筑数量开辟GPU线程,每一条线程对应一个建筑计算任务,在GPU中进行求解,最后,将每栋建筑的计算结果由GPU显存复制到计算机内存中;
(2)基于GPU集群的静态负载均衡策略:
采用一组配有GPU的计算机搭建GPU集群,该组计算机被分为一个Host,余下的为Slaves,采用静态负载均衡策略,将一般建筑群的震害分析任务分配到不同的Slave上。
2.根据权利要求1所述的基于GPU集群的城市一般建筑群震害分析的计算加速方法,其特征在于:所述步骤(1)中计算数据为地震动数据和建筑模型参数。
3.根据权利要求1所述的基于GPU集群的城市一般建筑群震害分析的计算加速方法,其特征在于:所述步骤(1)中基于单个GPU的一般建筑震害分析并行计算方法具体为:通过GPU要计算的建筑数量和GPU中的Block数量决定开辟线程的数量,Block的个数等于要计算的建筑数量除以256后的整数部分确定,如果有余数则加1,则开辟线程的总数等于Block数量乘以256;一个建筑震害分析任务由一条GPU线程负责,采用中心差分法求解动力方程,以完成一栋建筑的震害计算。
4.根据权利要求1所述的基于GPU集群的城市一般建筑群震害分析的计算加速方法,其特征在于:所述步骤(2)中静态负载均衡策略具体为:
首先,评估Slave的计算能力,计算能力用每秒的浮点数计算量FLOPS来表示,根据FLOPS值,每个Slave将降序排列,并将它们的编号记为从1到m;
然后,确定所需要的GPU内存Mi=Si·Ms,i=1,2,3,...n,其中,Ms为每个楼层所需的GPU内存,n为建筑的数量,Si为第i个建筑对应的楼层数;
再通过监控软件测量确定可用的GPU内存大小;
最后,分配任务,将建筑分配到Slave上;任务分配规则是:a)优先给高性能GPU的Slave分配任务;b)每个GPU分配任务总大小等于或接近GPU可用内存。
CN201710740626.XA 2017-08-25 2017-08-25 基于gpu集群的城市一般建筑群震害分析的计算加速方法 Pending CN107590589A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710740626.XA CN107590589A (zh) 2017-08-25 2017-08-25 基于gpu集群的城市一般建筑群震害分析的计算加速方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710740626.XA CN107590589A (zh) 2017-08-25 2017-08-25 基于gpu集群的城市一般建筑群震害分析的计算加速方法

Publications (1)

Publication Number Publication Date
CN107590589A true CN107590589A (zh) 2018-01-16

Family

ID=61042580

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710740626.XA Pending CN107590589A (zh) 2017-08-25 2017-08-25 基于gpu集群的城市一般建筑群震害分析的计算加速方法

Country Status (1)

Country Link
CN (1) CN107590589A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101034362A (zh) * 2007-02-05 2007-09-12 南京邮电大学 运用移动代理实现网格作业调度的方法
US20090164756A1 (en) * 2005-10-18 2009-06-25 Tor Dokken Geological Response Data Imaging With Stream Processors
CN102541640A (zh) * 2011-12-28 2012-07-04 厦门市美亚柏科信息股份有限公司 一种集群gpu资源调度系统和方法
CN103713949A (zh) * 2012-10-09 2014-04-09 鸿富锦精密工业(深圳)有限公司 动态任务分配系统及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090164756A1 (en) * 2005-10-18 2009-06-25 Tor Dokken Geological Response Data Imaging With Stream Processors
CN101034362A (zh) * 2007-02-05 2007-09-12 南京邮电大学 运用移动代理实现网格作业调度的方法
CN102541640A (zh) * 2011-12-28 2012-07-04 厦门市美亚柏科信息股份有限公司 一种集群gpu资源调度系统和方法
CN103713949A (zh) * 2012-10-09 2014-04-09 鸿富锦精密工业(深圳)有限公司 动态任务分配系统及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
韩博: "基于高性能GPU 计算的城市建筑群震害模拟", 《自然灾害学报》 *

Similar Documents

Publication Publication Date Title
Lu et al. A coarse-grained parallel approach for seismic damage simulations of urban areas based on refined models and GPU/CPU cooperative computing
Shimokawabe et al. An 80-fold speedup, 15.0 TFlops full GPU acceleration of non-hydrostatic weather model ASUCA production code
Xu et al. Collaborating CPU and GPU for large-scale high-order CFD simulations with complex grids on the TianHe-1A supercomputer
US10007742B2 (en) Particle flow simulation system and method
CN101706741B (zh) 一种基于负载平衡的cpu和gpu两级动态任务划分方法
CN103765376B (zh) 具有无阻塞并行架构的图形处理器
CN104636187B (zh) 基于负载预测的numa架构中虚拟机调度方法
Liu et al. A hybrid solution method for CFD applications on GPU-accelerated hybrid HPC platforms
CN106412124A (zh) 一种并序化云服务平台任务分配系统及任务分配方法
Li et al. A hybrid particle swarm optimization algorithm for load balancing of MDS on heterogeneous computing systems
Xu et al. A computational framework for regional seismic simulation of buildings with multiple fidelity models
CN111985629A (zh) 用于训练神经网络的并行化策略
CN110321198A (zh) 一种容器云平台计算资源与网络资源协同调度方法及系统
CN107463448A (zh) 一种深度学习权值更新方法和系统
NL2023815A (en) Numerical simulation method for unstructured grid tides and tidal currents based on gpu computation technology
Heywood et al. A data-parallel many-source shortest-path algorithm to accelerate macroscopic transport network assignment
CN110147284A (zh) 基于二维长短期记忆神经网络的超级计算机工作负载预测方法
Zhang et al. A data-oriented method for scheduling dependent tasks on high-density multi-GPU systems
Fujita et al. Scalable multicase urban earthquake simulation method for stochastic earthquake disaster estimation
CN107590589A (zh) 基于gpu集群的城市一般建筑群震害分析的计算加速方法
CN112100939B (zh) 一种基于Compute Shader的实时流体仿真方法及其系统
CN107608786A (zh) 一种基于gpu和分布式计算的高层建筑群震害分析方法
Han et al. Seismic damage simulation for urban buildings based on high-performance GPU computing
Tang et al. A job scheduling algorithm based on parallel workload prediction on computational grid
Zhang et al. Task scheduling greedy heuristics for GPU heterogeneous cluster Involving the weights of the processor

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180116