CN107563080A - 基于gpu的两相介质随机模型并行生成方法、电子设备 - Google Patents
基于gpu的两相介质随机模型并行生成方法、电子设备 Download PDFInfo
- Publication number
- CN107563080A CN107563080A CN201710813136.8A CN201710813136A CN107563080A CN 107563080 A CN107563080 A CN 107563080A CN 201710813136 A CN201710813136 A CN 201710813136A CN 107563080 A CN107563080 A CN 107563080A
- Authority
- CN
- China
- Prior art keywords
- gpu
- phase
- cpu
- phase medium
- model
- 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.)
- Granted
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于GPU的两相介质随机模型并行生成方法、电子设备;所述方法包括:使CPU读取两相介质对应的初始分布信息;使CPU定义目标两点概率函数、目标线性路径函数;使GPU生成初始随机模型;使CPU生成当前两点概率函数和当前线性路径函数,计算组合误差;使CPU判断组合误差是否小于目标值;若组合误差小于目标值,则使CPU将当前的初始随机模型绘制并保存为最终的两相介质模型;若组合误差不小于目标值,则多次执行迭代步骤,直至组合误差小于目标值,使CPU将当前的初始随机模型绘制并保存为最终的两相介质模型。本发明运算速度快、计算成本低、硬件成本低且使用简单方便。
Description
技术领域
本发明涉及计算机辅助计算技术领域,特别是指一种基于GPU的两相介质随机模型并行生成方法、电子设备。
背景技术
两相介质,例如某种悬浮液、多孔介质或者复合材料,都是由两种不同类型的离散颗粒组成。在材料学中,我们将一种类型称为一种相。两相介质材料是由一种相的颗粒随机地渗透在另一相中混合得到,通常我们将渗透颗粒的相称为第二相,将渗透目标称为基体相。实际应用中,基体相通常是一种流体、固体或者是一种间隙。这种两相介质材料的性能,如导电性、弹性模量或流体渗透性等均取决于两相之间的分布情况,通常也表征为其微结构。以两相介质的导电性的研究为例,它有着广泛的应用领域,如导电高分子新型复合材料就是在高分子聚合物基体中加入另外一种导电填料经物理或化学方法复合而成,便于其在具有类似于金属的良好导电性能的同时,兼具有优异的力学性能,在航空航天、能源、电子、生物医学等高科技领域乃至日常生活领域中都有着巨大的前景。
随着计算机技术的快速发展,目前已经可以采用计算机仿真技术完成两相介质材料模型的模拟生成,并结合优化算法根据材料的目标性能对两相分布情况进行优化设计。一般的,这种两相介质材料模型生成过程的计算机仿真主要包含两个步骤,第一步是随机生成N个随机数,其中N是指两相中的所有颗粒总数;第二步是根据随机数和参数P来产生需要的各项组分的随机模型,基中参数P是指每个相所占的体积比。并且,以上两步是一个迭代反复的过程,直到满足某种收敛条件。结合优化算法,该种随机模型生成方法可以取得让人满意的两相介质模型。但是,当计算尺度增大,两相颗粒数增加时,计算效率将成为一个应用瓶颈,如何提高两相介质随机生成的计算效率早已成为该领域内的一个研究热点。
随着计算技术的发展,并行计算方法是解决计算效率问题的有效手段,在多个领域得到了成功的应用。现有的并行计算方法,在技术层面上主要采用分布式计算、并行机或多线程等并行处理技术,采用的计算硬件主要是以CPU为主,通过各类网络将多个CPU连接形成并行计算系统。这类并行计算方式存在以下不足:一方面,对于分布式计算机的计算效率与节点或多线程之间的通讯效率相关,过大的通讯量会降低并行效率;另一方面,此类并行计算机的硬件价格昂贵,计算平台难以搭建和普及。而基于图形处理器(GPU)的通用并行计算方法则具有硬件成本低且计算效率高的特点,已然成为国内外一个新的研究热点。但在计算材料学领域,目前两相介质随机模型的随机生成仍然不能利用基于GPU的并行计算技术来提升计算效率。
发明内容
有鉴于此,本发明的目的在于提出一种运算速度快、计算成本低、硬件成本低且使用简单方便的基于GPU的两相介质随机模型并行生成方法、电子设备。
基于上述目的本发明提供的一种基于GPU的两相介质随机模型并行生成方法,包括:
使CPU读取两相介质对应的初始分布信息,并将所述初始分布信息复制到GPU;
使CPU定义目标两点概率函数、目标线性路径函数;
使GPU生成初始随机模型;
使CPU根据所述初始随机模型,绘制所述初始随机模型对应的当前两相的颗粒分布图,并生成当前两点概率函数和当前线性路径函数;计算所述当前两点概率函数与所述目标两点概率函数的函数值之差获得第一误差;计算所述当前线性路径函数与所述目标线性路径函数的函数值之差获得第二误差;
使CPU判断组合误差是否小于目标值;其中,所述组合误差为所述第一误差与所述第二误差之和;
若所述组合误差小于所述目标值,则使CPU将当前的所述初始随机模型绘制并保存为最终的两相介质模型;
若所述组合误差不小于所述目标值,则多次执行迭代步骤,直至所述组合误差小于所述目标值,使CPU将当前的所述初始随机模型绘制并保存为最终的两相介质模型;其中,所述迭代步骤包括:使GPU生成随机数将所述初始随机模型中的第二相与基体相之间的颗粒位置交换,并执行获得所述第一误差、获得所述第二误差、所述判断组合误差是否小于目标值的步骤。
在一些实施方式中,所述方法还包括:
检测计算设备是否支持GPU并行计算;若是,则进行所述计算设备的初始化,否则退出。
在一些实施方式中,所述使CPU读取两相介质对应的初始分布信息,并将所述初始分布信息复制到GPU,包括:
将所述初始分布信息首先存储至计算设备的内存,再将所述初始分布信息复制到GPU全局存储器。
在一些实施方式中,所述使CPU读取两相介质对应的初始分布信息,并将所述初始分布信息复制到GPU,包括:
使CPU读取两相介质对应的初始分布信息;根据所述初始分布信息中的两相颗粒的总数,在GPU开辟计算所需要的GPU全局内存,将所述初始分布信息复制到GPU。
在一些实施方式中,所述使CPU定义目标两点概率函数、目标线性路径函数,包括:
使GPU并行计算每个颗粒的中心点;
使CPU定义每个相的体积分数;所述每个相的体积分数为每个相的颗粒总量占总体积的比例。
在一些实施方式中,所述使GPU生成初始随机模型,包括:
使GPU随机将第二相中的颗粒分配到基体相中;
使GPU并行查找基体相的位置;
使CPU检查所有颗粒的总数,确保分配结果正确;
使CPU检查两相之间的连通性。
在一些实施方式中,所述使GPU生成随机数将所述初始随机模型中的第二相与基体相之间的颗粒位置交换,包括:
使GPU采用CURAND函数库在显存空间内生成随机数;
使GPU读取GPU全局存储器中存储的所有颗粒数据,采用线程与颗粒一一对应的执行方式交换第二相和基体相的颗粒位置;
使GPU根据约束边界条件以及最小时间步长、节点加速度采用线程与节点对应的方法计算出每个节点新的速度和位移。
在一些实施方式中,所述使GPU生成随机数将所述初始随机模型中的第二相与基体相之间的颗粒位置交换之后,包括:
使CPU将所述组合误差与一个随机数相比,若所述组合误差小于所述随机数,则撤销所述使GPU生成随机数将所述初始随机模型中的第二相与基体相之间的颗粒位置交换的步骤。
在一些实施方式中,所述多次执行迭代步骤,直至所述组合误差小于所述目标值,还包括:
判断所述多次执行迭代步骤的次数是否达到预设的总迭代次数,若是,则终止所述多次执行迭代步骤的步骤。
另一方面,本发明还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上任意一项所述的方法。
从上面所述可以看出,本发明提供的基于GPU的两相介质随机模型并行生成方法、电子设备,与现有技术相比,具有以下有益效果:
1、本发明的并行计算基于GPU通用计算平台实现,采用价格低廉的普通商业显卡作为协处理器,具有计算成本低,通用性强的优点;
2、本发明构建了以CPU进行主控和单值计算,以GPU完成主要流程并行计算的程序架构,可充分发挥GPU通用计算平台的计算能力;
3、本实施例采用Matlab进行程序开发,对特定部分采用PTX代码将Matlab与GPU计算采用的kernel函数相连接,因此,程序实现简单,对原代码的更改量较少;
4、本发明与传统并行计算方法不同,本发明无需进行分区等操作,而是采用细粒度并行计算策略通过建立颗粒与GPU线程间的一一对应关系,利用GPU提供大规模计算线程,完成随机数的生成,并由一个线程负责一个颗粒对之间位置交换,从而能够在包含成百上千个处理核心的GPU上并行、高效的实现两相介质随机模型的并行生成,具有高效、计算成本低的特点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的基于GPU的两相介质随机模型并行生成方法流程图;
图2为本发明实施例中采用ABAQUS构建的初始的两相介质模型的计算机仿真模型;
图3为本发明实施例的方法得到的两相介质模型图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
本发明实施例提供了一种基于GPU的两相介质随机模型并行生成方法。参考图1,为本发明实施例的基于GPU的两相介质随机模型并行生成方法流程图。
所述基于GPU的两相介质随机模型并行生成方法,包括以下步骤:
步骤1)使CPU读取两相介质对应的初始分布信息,并将所述初始分布信息复制到GPU;
步骤2)使CPU定义目标两点概率函数、目标线性路径函数;
步骤3)使GPU生成初始随机模型;
步骤4)使CPU根据所述初始随机模型,绘制所述初始随机模型对应的当前两相的颗粒分布图,并生成当前两点概率函数和当前线性路径函数;计算所述当前两点概率函数与所述目标两点概率函数的函数值之差获得第一误差;计算所述当前线性路径函数与所述目标线性路径函数的函数值之差获得第二误差;
步骤5)使CPU判断组合误差是否小于目标值;其中,所述组合误差为所述第一误差与所述第二误差之和;若所述组合误差小于所述目标值,则执行步骤7),若所述组合误差不小于所述目标值,则执行步骤6);
步骤6)多次执行迭代步骤,直至所述组合误差小于所述目标值,使CPU将当前的所述初始随机模型绘制并保存为最终的两相介质模型;其中,所述迭代步骤包括:使GPU生成随机数将所述初始随机模型中的第二相与基体相之间的颗粒位置交换,并执行获得所述第一误差、获得所述第二误差、所述判断组合误差是否小于目标值的步骤;
步骤7)使CPU将当前的所述初始随机模型绘制并保存为最终的两相介质模型。
在本实施例中,步骤1)具体包括:将所述初始分布信息首先存储至计算设备的内存,再将所述初始分布信息复制到GPU全局存储器。或者,步骤1)也可以具体包括:使CPU读取两相介质对应的初始分布信息;根据所述初始分布信息中的两相颗粒的总数,在GPU开辟计算所需要的GPU全局内存,将所述初始分布信息复制到GPU。其中,两相介质对应的初始分布信息可以以输入文件的形式存在,其借用有限元计算的思想,将颗粒描述为一个网格,即其包括节点信息以及单元(颗粒)构成信息。
在本实施例中,步骤2)是使CPU设定执行参数、收敛误差、体积分数及微结构大小,同时使CPU定义滚动和横向方向上的目标两点概率函数值与目标线性路径函数值,其具体包括:
步骤2.1)使GPU并行计算每个颗粒的中心点。
步骤2.2)使CPU定义每个相的体积分数;所述每个相的体积分数为每个相的颗粒总量占总体积的比例。
步骤2.3)使CPU定义目标两点概率函数;所述目标两点概率函数的定义如下:
其中,Z为相函数,j代表相号,对于两相材料j的取值为1和2。为系统中相距一定距离r的任意两点。
步骤2.4)使CPU定义目标线性路径函数。目标线性路径函数是描述多孔介质内同一相局部连通性的重要函数,定义如下:
其中,Vj为两相系统中第j相所占区域j代表相号,对于两相材料j的取值为1和2。为连接线段上的任意点。
在本实施例中,步骤3)是使GPU并行计算两相介质每个颗粒的中心点,将颗粒与微结构进行关联,随机的将第二相中的颗粒分配到基体相中,同时在CPU中找到基体相的颗粒的位置,其具体包括:
步骤3.1)使GPU随机将第二相中的颗粒分配到基体相中;
步骤3.2)使GPU并行查找基体相的位置;
步骤3.3)使CPU检查所有颗粒的总数,确保分配结果正确;
步骤3.4)使CPU检查两相之间的连通性。检查两相之间的连通性是指多相系统中两个相之间是否相连接。
在本实施例中,步骤4)是使CPU绘制当前两相的颗粒分布图,根据当前两相颗粒的分布情况,分别计算两点概率函数值以及线性路径函数值,由当前函数值与步骤2)中的目标函数值计算两点概率函数误差以及线性路径函数误差,得到组合误差。其中,CPU计算当前分布情况下两点概率函数值,及其与目标两点概率函数值之间的误差,这里的“误差”是指两个两点概率函数值之间的差值,即所述第一误差。计算当前分布情况下线性路径函数值,及其与目标线性路径函数值之间的误差,这里的“误差”是指两个目标线性路径函数值之间的差值,即所述第二误差。而所述组合误差为第一误差与第二误之和。
在本实施例中,步骤5)是使CPU判断组合误差是否小于目标值。该目标值是指人为预先指定的一个误差值,如果当前误差小于该误差值就结束计算。
在本实施例中,当所述组合误差不小于所述目标值时,则执行步骤6),次执行迭代步骤,直至所述组合误差小于所述目标值。其中,所述使GPU生成随机数将所述初始随机模型中的第二相与基体相之间的颗粒位置交换的步骤,具体包括:
步骤6.1)使GPU采用CURAND函数库在显存空间内生成随机数;
步骤6.2)使GPU读取GPU全局存储器中存储的所有颗粒数据,采用线程与颗粒一一对应的执行方式交换第二相和基体相的颗粒位置;
步骤6.3)使GPU根据约束边界条件以及最小时间步长、节点加速度采用线程与节点对应的方法计算出每个节点新的速度和位移。
步骤6.4)使CPU计算组合误差。
步骤6.5)使CPU将组合误差与一个生成的随机数相比,若组合误差小于该随机数则拒绝步骤6.2)中的位置交换。
在步骤6)中,由随机数确定是否更新方案,从而获得更多可能的随机方案,从而体现整个过程的随机性。
作为另一种实施方式,在多次执行迭代步骤时,还可以包括步骤:
判断所述多次执行迭代步骤的次数是否达到预设的总迭代次数,若是,则终止所述多次执行迭代步骤的步骤。在本实施例中,在多次执行迭代步骤时,组合误差小于目标值和多次执行迭代步骤的次数达到预设的总迭代次数均为终止迭代的判断条件,这样可以提高本实施例方法的执行效率。
在本实施例中,当所述组合误差小于所述目标值时,则执行步骤7),使CPU将当前的所述初始随机模型绘制并保存为最终的两相介质模型。具体的,绘制并保存“JPG”格式的最终的两相介质模型,同时,以“.inp”格式保存所生成的两相介质模型。本步骤中,最终的两相介质模型保存为.jpg格式的图像文件,而生成的两相介质模型最终存储为.inp格式,可以支持大部分的计算材料学和CAE分析软件的直接调用,能够应用于任何力学领域有限元问题的求解,或者是材料性能的分析计算。
下面,通过一个具体算例来进一步说明本发明的基于GPU的两相介质随机模型并行生成方法。
一个二维的两相介质模型,其初始模型数据包括219531个颗粒,在输入文件中表示为219531个四边形单元和220472个节点。针对该初始模型随机生成新两相介质模型的具体实施步骤如下:
1):采用ABAQUS软件以四边形单元构建原始的两相介质模型存储到输入文件input.inp中。双击程序图标运行程序,并在程序运行界面输入input.inp,input.inp中的数据将被程序读取到主机内存中。本实施例中以Ac表示主机内存中的原始模型数据。
2):依据Ac中的单元数目在GPU全局存储器上的分配与内存中数量和容量大小一致的存储空间Ad,将内存上的数据Ac复制到全局存储器的存储空间Ad中。本实施例的存储空间Ad,用于存储其存储空间大小为219531*sizeof(int)*4个字节的单元信息,用于存储其存储空间大小为220472*sizeof(double)*3个字节的节点信息。
3):根据模型中的颗粒数,针对线程和颗粒一一对应的计算模式设定GPU执行参数。本实施例中,GPU执行参数为<<<858,256>>>,其中858代表线程块的数目,256代表每一个线程块中所含线程的数目,两者的乘积则为大于或等于线程总数的一个正整数。
4):在GPU上计算每个颗粒的中心点。
5):在CPU中定义微结构的大小、定义两相的体积分数。
6):在GPU上并行的将颗粒与微结构进行关联。
7):在CPU上定义目标两点概率函数值与线性路径函数值。
8):在GPU上将第二相的颗粒随机分配到基体相中,同时在CPU中找到基体相的颗粒的位置。
9):绘制当前两相的颗粒分布图。
10):根据当前两相颗粒的分布情况,分别计算两点概率函数值V2pf以及线性路径函数值Vlpf。
11):由当前函数和目标函数分别计算两点概率函数误差e2pf以及线性路径函数误差elpf。
12):判断当前误差是否满足要求,如果满足则输出结果并退出,;否则继续向下执行。
13):在GPU上生成N个随机数,N为两相介质的颗粒总数,并采用GPU根据这些随机数交换第二相与基体相间的颗粒位置。
14):根据当前分布分别计算V2pf、Vlpf、e2pf、elpf,并计算组合误差e=e2pf+elpf。
15):在主机端将组合误差与一个随机数相比,如果组合误差小于该随机数则拒绝步骤13)中的位置交换。
16):在主机端判断总迭代次数是否达到设定值,或者组合误差函数值小于收敛目标值,如果是,则退出;否则返回执行步骤13)。
17):绘制并保存.jpg格式的重构后的颗粒分布图,同时,以.inp格式保存所生成的两相介质模型。
本实施例能够充分利用GPU在并行计算方面的优势,采用GPU实现两相介质随机模型生成的并行化求解,为相关领域的数值模拟提供了一个高效、简单的新途径,而且通过GPU全局存储器建立合理的存储方式,能够减少计算过程中GPU与主机间的数据交换,程序优化以达到最佳计算速度,具有运算速度快、计算成本低、硬件成本低及使用简单方便的优点。通过在初始随机分布和迭代生成部分引入了GPU计算,相比传统CPU计算方法,采用计算处理器不同,可以极大的提高计算效率。另一方面,与传统并行计算方法相比,本方法的硬件成本较低,易于在工程中推广使用。本实施例基于GPU通用计算平台的二维两相介质随机模型的生成,具有很强的易用性和经济性,同时本实施例中通过在计算流程中引入适应于GPU的颗粒与线程一一对应的并行处理方法中,将线程和颗粒进行了有机结合,能够充分利用GPU在并行计算方面的优势,具有高效、计算成本低的特点,能够应用于任何两相介质随机模型生成问题的求解,尤其适用于类似于导电高分子新型复合材料的随机模型的优化生成。
为了证明本实施例的可行性,本实施例采用名为DP590_1x1_input的计算模型进行数值验证。并且,对不同的计算模型采用不同的单元规模分在CPU和GPU计算平台上进行计算,在对比两者计算结果精度的同时,将CPU执行时间和GPU执行时间相除得到计算加速比。本实施例中采用的CPU为Intel I7,GPU为NVIDIA公司的GeForce GTX 960。
参考图2所示,其为采用ABAQUS构建的初始的两相介质模型的计算机仿真模型,包含219531个四边形单元和220472个节点,收敛误差为2.0e-4,最大迭代步为1500000。
本实施例中为了验证本实施例的计算时间,分别将本实施例的方法和现有技术采用CPU计算的方法进行实验,最终得到对应的计算时间和计算加速比如表1所示。
表1本实施例的方法和现有技术采用CPU计算的方法的计算时间和计算加速比
CPU计算时间/h | GPU计算时间/h | 加速比 |
23.1 | 1.6 | 14.4 |
其中,CPU计算时间代表现有技术采用CPU计算方法的计算时间,GPU计算时间代表采用本实施例基于GPU的并行求解仿真方法的计算时间。由上表可知,对于同一个仿真模型,本实施例的计算效率在初始模型与收敛准则一致的前提下要远高于传统CPU串行计算方法。
为了比较GPU的计算精度,参考图3所示,其给出了由GPU计算所得的两相介质模型,从而证实了本专利方法的可行性和稳定性。由以上验证算例可知本实施例可以有效解决有限元计算效率的问题,在保证计算精度的同时,明显的缩短了计算时间。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本发明难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本发明难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本发明的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本发明的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本发明。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本发明的具体实施例对本发明进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本发明的实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本发明的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于GPU的两相介质随机模型并行生成方法,其特征在于,包括:
使CPU读取两相介质对应的初始分布信息,并将所述初始分布信息复制到GPU;
使CPU定义目标两点概率函数、目标线性路径函数;
使GPU生成初始随机模型;
使CPU根据所述初始随机模型,绘制所述初始随机模型对应的当前两相的颗粒分布图,并生成当前两点概率函数和当前线性路径函数;计算所述当前两点概率函数与所述目标两点概率函数的函数值之差获得第一误差;计算所述当前线性路径函数与所述目标线性路径函数的函数值之差获得第二误差;
使CPU判断组合误差是否小于目标值;其中,所述组合误差为所述第一误差与所述第二误差之和;
若所述组合误差小于所述目标值,则使CPU将当前的所述初始随机模型绘制并保存为最终的两相介质模型;
若所述组合误差不小于所述目标值,则多次执行迭代步骤,直至所述组合误差小于所述目标值,使CPU将当前的所述初始随机模型绘制并保存为最终的两相介质模型;其中,所述迭代步骤包括:使GPU生成随机数将所述初始随机模型中的第二相与基体相之间的颗粒位置交换,并执行获得所述第一误差、获得所述第二误差、所述判断组合误差是否小于目标值的步骤。
2.根据权利要求1所述的基于GPU的两相介质随机模型并行生成方法,其特征在于,还包括:
检测计算设备是否支持GPU并行计算;若是,则进行所述计算设备的初始化,否则退出。
3.根据权利要求1所述的基于GPU的两相介质随机模型并行生成方法,其特征在于,所述使CPU读取两相介质对应的初始分布信息,并将所述初始分布信息复制到GPU,包括:
将所述初始分布信息首先存储至计算设备的内存,再将所述初始分布信息复制到GPU全局存储器。
4.根据权利要求1所述的基于GPU的两相介质随机模型并行生成方法,其特征在于,所述使CPU读取两相介质对应的初始分布信息,并将所述初始分布信息复制到GPU,包括:
使CPU读取两相介质对应的初始分布信息;根据所述初始分布信息中的两相颗粒的总数,在GPU开辟计算所需要的GPU全局内存,将所述初始分布信息复制到GPU。
5.根据权利要求1所述的基于GPU的两相介质随机模型并行生成方法,其特征在于,所述使CPU定义目标两点概率函数、目标线性路径函数,包括:
使GPU并行计算每个颗粒的中心点;
使CPU定义每个相的体积分数;所述每个相的体积分数为每个相的颗粒总量占总体积的比例。
6.根据权利要求1所述的基于GPU的两相介质随机模型并行生成方法,其特征在于,所述使GPU生成初始随机模型,包括:
使GPU随机将第二相中的颗粒分配到基体相中;
使GPU并行查找基体相的位置;
使CPU检查所有颗粒的总数,确保分配结果正确;
使CPU检查两相之间的连通性。
7.根据权利要求3所述的基于GPU的两相介质随机模型并行生成方法,其特征在于,所述使GPU生成随机数将所述初始随机模型中的第二相与基体相之间的颗粒位置交换,包括:
使GPU采用CURAND函数库在显存空间内生成随机数;
使GPU读取GPU全局存储器中存储的所有颗粒数据,采用线程与颗粒一一对应的执行方式交换第二相和基体相的颗粒位置;
使GPU根据约束边界条件以及最小时间步长、节点加速度采用线程与节点对应的方法计算出每个节点新的速度和位移。
8.根据权利要求7所述的基于GPU的两相介质随机模型并行生成方法,其特征在于,所述使GPU生成随机数将所述初始随机模型中的第二相与基体相之间的颗粒位置交换之后,包括:
使CPU将所述组合误差与一个随机数相比,若所述组合误差小于所述随机数,则撤销所述使GPU生成随机数将所述初始随机模型中的第二相与基体相之间的颗粒位置交换的步骤。
9.根据权利要求1所述的基于GPU的两相介质随机模型并行生成方法,其特征在于,所述多次执行迭代步骤,直至所述组合误差小于所述目标值,还包括:
判断所述多次执行迭代步骤的次数是否达到预设的总迭代次数,若是,则终止所述多次执行迭代步骤的步骤。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至9任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710813136.8A CN107563080B (zh) | 2017-09-11 | 2017-09-11 | 基于gpu的两相介质随机模型并行生成方法、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710813136.8A CN107563080B (zh) | 2017-09-11 | 2017-09-11 | 基于gpu的两相介质随机模型并行生成方法、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107563080A true CN107563080A (zh) | 2018-01-09 |
CN107563080B CN107563080B (zh) | 2020-06-23 |
Family
ID=60980420
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710813136.8A Active CN107563080B (zh) | 2017-09-11 | 2017-09-11 | 基于gpu的两相介质随机模型并行生成方法、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107563080B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110647723A (zh) * | 2019-08-14 | 2020-01-03 | 中国科学院计算机网络信息中心 | 基于原位可视化的粒子数据处理方法、装置和系统 |
CN113127973A (zh) * | 2021-04-16 | 2021-07-16 | 湖南大学 | 基于cae仿真技术的多材料智能选材方法、系统及电子设备 |
CN114492319A (zh) * | 2022-04-07 | 2022-05-13 | 西安芯瞳半导体技术有限公司 | 基于gpu批量生成uuid的方法、装置及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040167893A1 (en) * | 2003-02-18 | 2004-08-26 | Nec Corporation | Detection of abnormal behavior using probabilistic distribution estimation |
CN101419558A (zh) * | 2008-11-13 | 2009-04-29 | 湖南大学 | Cuda图形子系统虚拟化方法 |
CN102662641A (zh) * | 2012-04-16 | 2012-09-12 | 浙江工业大学 | 一种基于cuda的种子分布数据并行获取方法 |
CN102819454A (zh) * | 2012-07-30 | 2012-12-12 | 湖南大学 | 基于gpu的有限元显式并行求解仿真方法 |
CN103425833A (zh) * | 2013-08-07 | 2013-12-04 | 湖南大学 | 一种基于熵格子波尔兹曼模型的并行流体计算实现方法 |
CN107146279A (zh) * | 2017-04-25 | 2017-09-08 | 四川大学 | 一种基于共生相关函数的多孔介质三维建模方法 |
-
2017
- 2017-09-11 CN CN201710813136.8A patent/CN107563080B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040167893A1 (en) * | 2003-02-18 | 2004-08-26 | Nec Corporation | Detection of abnormal behavior using probabilistic distribution estimation |
CN101419558A (zh) * | 2008-11-13 | 2009-04-29 | 湖南大学 | Cuda图形子系统虚拟化方法 |
CN102662641A (zh) * | 2012-04-16 | 2012-09-12 | 浙江工业大学 | 一种基于cuda的种子分布数据并行获取方法 |
CN102819454A (zh) * | 2012-07-30 | 2012-12-12 | 湖南大学 | 基于gpu的有限元显式并行求解仿真方法 |
CN103425833A (zh) * | 2013-08-07 | 2013-12-04 | 湖南大学 | 一种基于熵格子波尔兹曼模型的并行流体计算实现方法 |
CN107146279A (zh) * | 2017-04-25 | 2017-09-08 | 四川大学 | 一种基于共生相关函数的多孔介质三维建模方法 |
Non-Patent Citations (3)
Title |
---|
LANJUN WAN 等: "Efficient CPU-GPU cooperative computing for solving the subset-sum problem", 《CONCURRENCY AND COMPUTATION: PRACTICE AND EXPERIENCE》 * |
蔡勇: "GPU通用计算平台上中心差分格式显式有限元并行计算", 《计算机研究与发展》 * |
韩琪: "基于GPU的大规模拓扑优化问题并行计算方法", 《计算机仿真》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110647723A (zh) * | 2019-08-14 | 2020-01-03 | 中国科学院计算机网络信息中心 | 基于原位可视化的粒子数据处理方法、装置和系统 |
CN110647723B (zh) * | 2019-08-14 | 2023-12-26 | 中国科学院计算机网络信息中心 | 基于原位可视化的粒子数据处理方法、装置和系统 |
CN113127973A (zh) * | 2021-04-16 | 2021-07-16 | 湖南大学 | 基于cae仿真技术的多材料智能选材方法、系统及电子设备 |
CN113127973B (zh) * | 2021-04-16 | 2022-05-10 | 湖南大学 | 基于cae仿真技术的多材料智能选材方法、系统及电子设备 |
CN114492319A (zh) * | 2022-04-07 | 2022-05-13 | 西安芯瞳半导体技术有限公司 | 基于gpu批量生成uuid的方法、装置及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107563080B (zh) | 2020-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ihmsen et al. | A parallel SPH implementation on multi‐core CPUs | |
Kampolis et al. | CFD-based analysis and two-level aerodynamic optimization on graphics processing units | |
Schive et al. | GAMER: a graphic processing unit accelerated adaptive-mesh-refinement code for astrophysics | |
Pugmire et al. | Scalable computation of streamlines on very large datasets | |
Feichtinger et al. | A flexible Patch-based lattice Boltzmann parallelization approach for heterogeneous GPU–CPU clusters | |
Gyulassy et al. | Stability of dissipation elements: A case study in combustion | |
Gu et al. | Isogeometric analysis in BIE for 3-D potential problem | |
Reboux et al. | A self-organizing Lagrangian particle method for adaptive-resolution advection–diffusion simulations | |
CN107563080A (zh) | 基于gpu的两相介质随机模型并行生成方法、电子设备 | |
CN104933225B (zh) | 实现计算流体力学大规模实时模拟的方法 | |
Liang | A simplified adaptive Cartesian grid system for solving the 2D shallow water equations | |
Lyu et al. | Fast and versatile fluid-solid coupling for turbulent flow simulation | |
Qi et al. | Implementation of the compact interpolation within the octree based Lattice Boltzmann solver Musubi | |
Geveler et al. | Efficient finite element geometric multigrid solvers for unstructured grids on GPUs | |
Liu et al. | An efficient geometry-adaptive mesh refinement framework and its application in the immersed boundary lattice Boltzmann method | |
CN102819454A (zh) | 基于gpu的有限元显式并行求解仿真方法 | |
US20190392102A1 (en) | Unified geometries for dynamic high-performance computing | |
Rivara | Lepp-bisection algorithms, applications and mathematical properties | |
Lahnert et al. | Towards lattice-Boltzmann on dynamically adaptive grids–minimally-invasive grid exchange in ESPResSo | |
Zhang et al. | Parallel computation of a dam-break flow model using OpenACC applications | |
Shivashankar et al. | Efficient software for programmable visual analysis using Morse-Smale complexes | |
Marshall et al. | Performance evaluation and enhancements of a flood simulator application for heterogeneous hpc environments | |
Luo | A finite volume method based on weno reconstruction for compressible flows on hybrid grids | |
Kumar et al. | Algebraic multiscale grid coarsening using unsupervised machine learning for subsurface flow simulation | |
Huang et al. | Parallel Performance and Optimization of the Lattice Boltzmann Method Software Palabos Using CUDA |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |