CN107590589A - 基于gpu集群的城市一般建筑群震害分析的计算加速方法 - Google Patents
基于gpu集群的城市一般建筑群震害分析的计算加速方法 Download PDFInfo
- 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
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供一种基于GPU集群的城市一般建筑群震害分析的计算加速方法,属于土木工程防灾减灾技术领域。该方法包括基于单个GPU的一般建筑震害分析并行计算方法和基于GPU集群的静态负载均衡策略。在单GPU上,根据要计算的建筑数量开辟线程,每条线程对应一栋建筑,采用中心差分法求解动力方程,完成一栋建筑的震害计算。进而评估多个GPU的计算性能和可用显存,并确定每栋建筑评估所需内存,在显存允许下优先将计算任务分配给计算性能高的GPU,直到所有任务都被分配完成。本发明为大规模的城市一般建筑群震害分析提供了加速计算手段,可实现近实时的地震后城市建筑震害评估,以科学指导震后城市救援工作。
Description
技术领域
本发明涉及土木工程防灾减灾技术领域,特别是指一种基于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可用内存。
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)
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 | 鸿富锦精密工业(深圳)有限公司 | 动态任务分配系统及方法 |
-
2017
- 2017-08-25 CN CN201710740626.XA patent/CN107590589A/zh active Pending
Patent Citations (4)
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)
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 |