CN112948643B - 一种基于线程并行的结构化网格流线积分方法 - Google Patents

一种基于线程并行的结构化网格流线积分方法 Download PDF

Info

Publication number
CN112948643B
CN112948643B CN202110520617.6A CN202110520617A CN112948643B CN 112948643 B CN112948643 B CN 112948643B CN 202110520617 A CN202110520617 A CN 202110520617A CN 112948643 B CN112948643 B CN 112948643B
Authority
CN
China
Prior art keywords
data
parallel
streamline
thread
nodes
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.)
Active
Application number
CN202110520617.6A
Other languages
English (en)
Other versions
CN112948643A (zh
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.)
Computational Aerodynamics Institute of China Aerodynamics Research and Development Center
Original Assignee
Computational Aerodynamics Institute of China Aerodynamics Research and Development Center
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 Computational Aerodynamics Institute of China Aerodynamics Research and Development Center filed Critical Computational Aerodynamics Institute of China Aerodynamics Research and Development Center
Priority to CN202110520617.6A priority Critical patent/CN112948643B/zh
Publication of CN112948643A publication Critical patent/CN112948643A/zh
Application granted granted Critical
Publication of CN112948643B publication Critical patent/CN112948643B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/904Browsing; Visualisation therefor

Abstract

本发明提供一种基于线程并行的结构化网格流线积分方法,包括:步骤1、对多块结构化网格进行数据块的重划分;步骤2、对于重划分后的每一个数据块,计算其属性数据的类型和数目;步骤3、反馈步骤2的计算结果,把数据块中的每一种类型的属性数据提取出来单独存储;步骤4、在进行三维矢量场流线可视化过程中,将需要的属性数据使用多线程进行并行读取;步骤5、使用读取的属性数据构建动态搜索树;步骤6、读取动态搜索树中计算种子点数,根据计算种子点的任务规模进行动态分组,再将分组后的计算种子点数分配给多线程并行积分计算;步骤7、将计算结果用于后续的可视化工作。本发明能够提高多核处理器利用率、加速科学可视化中流线积分。

Description

一种基于线程并行的结构化网格流线积分方法
技术领域
本发明涉及科学计算可视化技术领域,具体而言,涉及一种基于线程并行的结构化网格流线积分方法。
背景技术
在流体力学与空气动力学等领域,为了对流体的运动状况进行分析,需要运用可视化技术对流场进行处理,将不可见的流场运动转化为可见的流场图像信息。流场可视化技术发展到现在,已经提出了许多方法,如几何形状可视化、纹理可视化、体可视化和特征可视化等。
就流场而言,流线积分是常用的可视化方法之一,因为流线能较好揭示流场走向,是实现流带、流管、流面等方法及粒子动画的基础。传统的串行流线可视化流程如图1所示,其主要性能瓶颈在于网格遍历和步长积分。
随着计算机硬件与计算方法的发展,数值模拟产生的数据集规模日趋变大,串行的流线可视化算法逐渐不能满足需求。硬件的发展导致多核、众核CPU成为当前计算机的主流配置,串行的流线可视化算法会造成严重的资源浪费,也不能满足在流线绘制过程中实时交互的需求。因此,开展并行流线积分工作是必须的也是必要的。
针对以上问题,国内外学者提出了许多并行流线积分方法。其中比较典型的有:Peteka等人采用多线程并行粒子追踪对定场流场和非定场流场进行可视化(参见PeterkaT and Nouanesengsy B,A Study of Parallel Particle Tracing for Steady-Stateand Time-Varying Flow Fields.Parallel & Distributed ProcessingSymposium.IEEE,2011:580-591),Nouanesengsy等人使用多线程并行执行流线积分,实现节点间负载均衡(参见Nouanesengsy B and Lee T Y.Load-Balanced ParallelStreamline Generation on Large Scale Vector Fields,IEEE EdccationalActivities Department,2011:1785-1794),张文耀等人提出了中适用于二维了流场的并行流线放置方法(张文耀,一种适用于二维流场的并行流线放置方法,中国专利,CN102521854A),郭雨蒙等人提出了并行流线种子点放置策略(郭雨蒙,基于特征的流线种子点分布并行算法研究与实现[D]. 2014.),吕天耀等人提出了任务均等划分与冗余任务再划分的并行任务划分方法(吕天耀,基于流线相似性的流场并行可视化方法研究[D].2018.)
上述这些方法,在技术上各有特色,都能较快较好的产生流线可视化结果。但是这行方法是针对特定的情况构建的并行模型,且并行代码覆盖率不高。为了提高流线可视化算法效率,需要提高并行代码覆盖率,充分利用多线程进行并行处理。同时,随着数据规模变大,搜索树的构建也在发生变化,为了达到想要的细分粒度,大规模的数据需要进行更多次的划分,导致生成的搜索树深度较大且体积庞大,在后续的深度信息和维度信息处理上也会变得困难。
综上所述,使用多线程并行技术,对流线可视化算法的数据传输,网格单元定位以及种子点任务划分进行优化,可以提高流线可视化算法效率,满足科研人员实时交互的需求。
发明内容
本发明旨在提供一种基于线程并行的结构化网格流线积分方法,通过多线程并行的快速流线可视化算法实现并行流线积分,以达到提高多核处理器利用率、加速科学可视化中流线积分的目的。
本发明提供的一种基于线程并行的结构化网格流线积分方法,包括以下步骤:
步骤1、对给定的多块结构化网格进行数据块的重划分;
步骤2、对于重划分后的每一个数据块,计算其属性数据的类型和数目;
步骤3、反馈步骤2的计算结果,把数据块中的每一种类型的属性数据提取出来单独存储;
步骤4、在进行三维矢量场流线可视化过程中,将需要的属性数据使用多线程进行并行读取;
步骤5、使用读取的属性数据构建动态搜索树;
步骤6、读取动态搜索树中计算种子点数,根据计算种子点的任务规模进行动态分组,再将分组后的计算种子点数分配给多线程并行积分计算;
步骤7、将计算结果保存用于后续的可视化工作,完成所有流线可视化工作。
进一步的,步骤1中所述对给定的多块结构化网格进行数据块的重划分的方法为:以给定的多块结构化网格为数据集,对数据集的多块结构化网格中各个数据块进行序号标记,对不同数据块使用边界信息合并到一起从而完成重划分,使重划分后的数据块的规模均衡。
进一步的,步骤4中所述将需要的属性数据使用多线程进行并行读取的方法为:对各数据块进行标记,将标记好的数据块按照设置的偏移值分配给各个线程并行读取。
进一步的,步骤5中所述构建动态搜索树的过程包括两个阶段:
第一阶段为粗粒度划分操作:首先根据坐标系统计算出数据集中数据块的尺寸,然后通过数据集中网格单元的总数N确定粗划分的粒度density1;再根据网格单元的总数N和粗划分的粒度density1将数据集划分为以父节点为单元的数据集;最后对父节点进行粗定位操作,初步实现各父节点的定位;
第二阶段为细粒度划分操作:首先计算划分为以父节点为单元的数据集中父节点的个数n,然后设置细划分的粒度density2,细划分的粒度density2<粗划分的粒度density1;再根据父节点的个数n和细划分的粒度density2将父节点细化分为以叶节点为单元的父节点;最后再对叶节点进行细定位操作,实现父节点中每一个叶节点的定位。
进一步的,所述第一阶段中划分为以父节点为单元的数据集的维度D如下:
Figure 853461DEST_PATH_IMAGE001
式中,中间参数r为:
Figure 846825DEST_PATH_IMAGE002
式中,density1表示粗划分的粒度,size[0]、size[1]、size[2]分别表示划分为以父节点为单元的数据集在X、Y、Z维度上的尺寸;每一个父节点在X、Y、Z维度上所占的尺寸bs为:
Figure DEST_PATH_IMAGE003
式中,D[0]、D[1]、D[2]分别表示划分为以父节点为单元的数据集在X、Y、Z维度上所占维度。
进一步的,所述计算划分为以父节点为单元的数据集中父节点的个数n的公式为:n=D[0]×D[1]×D[2]。
进一步的,所述第一阶段中,最后再对父节点进行粗定位操作的方法为:采用多线程并行的方法对每一个父节点进行处理,通过扫描、单元格排序、按关键字约减的操作实现各父节点的定位;所述按关键字约减的操作是指将具有相同关键字的网格单元整合到同一个父节点下。
进一步的,所述第二阶段中,最后再对叶节点进行细定位操作的方法为:采用多线程并行的方法对每一个叶节点进行处理,通过扫描、单元格排序、按关键字约减的操作实现各叶节点的定位;所述按关键字约减的操作是指将具有相同关键字的网格单元整合到同一个叶节点下。
作为优选,所述动态搜索树的深度为3。
进一步的,步骤6中所述根据计算种子点的任务规模进行动态分组的方法为:设置不同的阈值,每个阈值对应不同的任务规模,根据读取的种子点数目对任务规模进行分类。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
(1)数据属性提取与并行读取:对于多块结构化网格数据,数据块与数据块之间的规模不一,导致在数据I/O阶段容易负载失衡,随着数据规模变大,这种现象愈加明显。因此,本发明在数据读入内存之前对数据进行预处理,将数据块进行重划分,使每个数据块的规模均衡,再将每个数据块的属性数据进行拆分提取存储,用于后期对属性数据的并行读取。这样将整个数据集一次读取分解到算法运行的各个阶段,多线程并行对需要的属性数据进行读取。这样将一次读取的等待时间细分到为不同的时间段,而且通过只读取需要的属性数据,可以有效减少计算机内存占用,实现各个I/O节点的负载均衡。
(2)动态搜索树构建:为了快速实现网格单元定位,进行流线积分计算。本发明使用多线程并行构建动态搜索树,即将数据集构建成深度为3的树形结构(根节点、父节点、叶节点)。父节点和叶节点的规模是通过提前设置的阈值密度进行划分的,通过递归、排序和约减等操作逐步细化,以实现对每一个网格单元的定位。动态搜索树结构的深度固定为3,而数据块的规模是不同的,所以父节点和叶节点的节点数是根据数据规模动态变化的,这样降低了动态搜索树深度信息的复杂性。在处理大规模的三维数据时,使用多线程循环嵌套的方法加速维度信息处理,充分利用多核处理器计算资源,加快搜索树构建算法的效率。
(3)动态任务划分:基于任务划分的流线可视化算法,以种子点为任务划分对象。不同数据块的特征不同,其放置的计算种子点数目也不同,不能一贯处理。本发明提出了动态任务划分并行处理的方法,即获取计算种子点数目并根据提前设置的阈值进行规模判定,在根据不同的规模将计算种子点任务分组分配给多线程并行积分计算。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例基于线程并行的结构化网格流线积分方法的流程图。
图2为本发明实施例步骤1~步骤4进行数据划分与并行读取的流程图。
图3a本发明实施例步骤5构建动态搜索树的过程示意图。
图3b为与图3a对应的本发明实施例步骤5构建动态搜索树的流程框图。
图4为本发明实施例步骤6计算种子点的任务规模进行动态分组的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例
如图1所示,本实施例提出一种基于线程并行的结构化网格流线积分方法,包括以下步骤:
步骤1、对给定的多块结构化网格进行数据块的重划分。重划分操作需要研究人员对数据集具有一定的认知,知道块与块之间的联系便于重组拆分;以给定的多块结构化网格为数据集,对数据集的多块结构化网格中各个数据块进行序号标记,对不同数据块使用边界信息合并到一起从而完成重划分,使重划分后的数据块的规模均衡。
步骤2、对于重划分后的每一个数据块,计算其属性数据的类型和数目;数值模拟产生的数据集往往具有多种属性,如包含温度、压强、速度分量等属性,不同的属性数据可用于不同的可视化操作;
步骤3、反馈步骤2的计算结果,把数据块中的每一种类型的属性数据提取出来单独存储;即重划分后仍有较多的数据块,再将数据块按属性类型进一步拆分存储,对属性数据进一步细化,使得重划分后的每个数据块中只包含一种类型的属性数据。
步骤4、在进行三维矢量场流线可视化过程中,将需要的属性数据使用多线程进行并行读取;经过步骤2和步骤3的操作,数据块的同一属性数据也被分成了若干组,对各数据块进行标记,将标记好的数据块按照设置的偏移值分配给各个线程并行读取。数据块与线程数的关系对读取任务的均衡性有一定的影响。
前4个步骤的具体实现流程如图2所示,对应的伪代码如下所示:
Input:dataset指要处理的数据集
block[i]表示数据集中的第i个数据块
data[n]表示数据块中的第n个属性数据
thread[i]表示当前第i号线程
1:function ExtractionParallel(dataset)
2:a<-numAttribute(block[i]) 计算数据集中的属性数目
3:getName(block[i]) 获取数据属性名
4:#pragma omp parallel for
5:for each block m in dataset do
6:data[n]<-divided<-block[m] n属于a
7:attributeName[n]<- saveAs <-data[n] 数据块拆分后以属性类型命名存储
8:end for
9:particle advection need vector attribute
10:#pragma omp parallel for
11:for each attributeName j in data[] do
12: thread 0<-atributeName[0,0+k,0+2k,….]
13: thread 1<-atributeName[1,1+k,1+2k,….]
14:………….
15:input<-thread[i] 对属性数据进行多线程并行读取
16:end for
17:return “read success”
18:end function
上述伪代码说明:将数据集中的数据块按属性类型拆分存储,在可视化过程中将需要的属性数据根据偏移值平均分配给各个线程,以实现对属性数据的并行读取。
步骤5、使用读取的属性数据构建动态搜索树,以实现网格单元的定位。如图3a和图3b所示,该步骤5中构建动态搜索树的过程分为两个阶段:
第一阶段为粗粒度划分操作:以数据集(根节点)为操作对象,将其粗粒度划分到父节点中,各个父节点数据的总和仍为总体数据集。具体地:
首先根据坐标系统计算出数据集中数据块的尺寸(size),再通过数据集中网格单元的总数N确定粗划分的粒度density1;根据粗划分的粒度density1将数据集划分为以父节点为单元的数据集,这时划分为以父节点为单元的数据集的维度D的计算公式如下:
Figure 663471DEST_PATH_IMAGE001
式中,中间参数r为:
Figure 400483DEST_PATH_IMAGE002
式中,density1为粗划分的粒度,size[0]、size[1]、size[2]分别表示数据集在X、Y、Z维度上的尺寸。这时每一个父节点在X、Y、Z维度上所占的尺寸bs为:
Figure 923868DEST_PATH_IMAGE003
式中,D[0]、D[1]、D[2]分别表示划分为以父节点为单元的数据集在X、Y、Z维度上所占维度。
第一阶段最后对父节点进行粗定位操作,初步实现各父节点的定位。为了加快定位的速度,本实施例采用多线程并行的方法每一个父节点,通过扫描、单元格排序、按关键字约减的操作实现各父节点的定位;所述按关键字约减的操作是指将具有相同关键字的网格单元整合到同一个父节点下。因为各数据集网格单元中的数据是相互独立的,所以使用多线程并行时可行的。值得注意的是,数据块的形状不是规则的立方体,故使用粗粒度划分方法生成的父节点单元大小不是相同的,而是根据数据集和坐标系统,父节点中网格单元数从几个到几百不等。
第二阶段为细粒度划分操作,第二阶段与第一阶段类似,即首先计算划分为以父节点为单元的数据集中父节点的个数n,其中,计算父节点的个数n,公式如下:
n=D[0]×D[1]×D[2]
然后设置细划分的粒度density2,细划分的粒度density2<粗划分的粒度density1;再根据父节点的个数n和细划分的粒度density2将父节点细化分为以叶节点为单元的父节点,细化分后的父节点单元被定义为规则的六面体结构。第二阶段最后再对叶节点进行细定位操作,实现父节点中每一个叶节点的定位。同样地,为了加快定位的速度,本实施例采用多线程并行的方法对每一个叶节点进行处理,通过扫描、单元格排序、按关键字约减的操作实现各叶节点的定位;所述按关键字约减的操作是指将具有相同关键字(如ID)的网格单元整合到同一个叶节点下。
通过粗粒度与细粒度的划分,在积分定位过程中快速缩小备选区域,实现对网格单元的定位。因为树的深度不变,树的宽度会随着数据规模的变化动态变化。固定的深度树可以减少多次深度检索的复杂性,对于大规模数据采用多线程并行技术对维度信息进行处理也能有效加快算法效率。
构建动态搜索树的伪代码如下所示:
Input:coords指数据集左边系统
field指要处理的属性字段
cells指数据集中的网格单元
node[i]指第i个父节点
density1、density2指粗、细划分的粒度
1:function cellLocatorTree(cords,field,cells)
2:coarse_tumble(coords,field,cells,density1) 粗划分过程
3: if all_done then
4: break
5: end if
6:refine_tumble(coords,field,cells,node[i],density2) 细化分过程
7: if all_done then
8: break
9: end if
10:end function
伪代码说明:经过粗粒度和细粒度两次划分,通过多线程并行将数据集构建为一棵深度为3,宽度可动态变化的搜索树结构。
单元格处理的伪代码如下所示:
1:Calculate(cords,cells,size) 计算划分后节点的维度、规模大小
2:for each cell in cells do
3: cell:<-scanexclusive(calculate) 计算单元格、节点之间位置关系
4:cells<-reducebykey(cell)<-sortbykey(cell)<-sort(cell) 对单元格进行规约排序
5:end for
6:return “success”
伪代码说明:在细划操作过程中,对数据集中的网格单元进行规约排序等操作,实现对每一个单元格的定位操作。
步骤6、读取动态搜索树中计算种子点数,根据计算种子点的任务规模进行动态分组,再将分组后的计算种子点数分配给多线程并行积分计算;具体方法是:设置不同的阈值,每个阈值对应不同的任务规模,根据读取的种子点数目对任务规模进行分类。每一个任务规模下又对应一个K值,即将计算种子点K个一组按照偏移值进行划分,再将划分好的任务组分配给多线程并行积分计算,具体流程如图4所示。
动态分组的伪代码如下所示:
Input:n指种子点数目
m指划分的任务组数
1:function taskAllocation(n)
2:m=n/k 将种子点分为m组
3:#pragma omp parallel for
4:for each I in m
5: functor
6:end for
7:end function
伪代码说明:读取计算种子点数根据阈值判定任务量级,在根据阈值下的K值对种子点数进行分组,再将分组后的种子点数分配给各线程并行处理。
步骤7、将计算结果保存用于后续的可视化工作,完成所有流线可视化工作。
通过上述内容可知,本发明具有如下有益效果:
(1)数据属性提取与并行读取:对于多块结构化网格数据,数据块与数据块之间的规模不一,导致在数据I/O阶段容易负载失衡,随着数据规模变大,这种现象愈加明显。因此,本发明在数据读入内存之前对数据进行预处理,将数据块进行重划分,使每个数据块的规模均衡,再将每个数据块的属性数据进行拆分提取存储,用于后期对属性数据的并行读取。这样将整个数据集一次读取分解到算法运行的各个阶段,多线程并行对需要的属性数据进行读取。这样将一次读取的等待时间细分到为不同的时间段,而且通过只读取需要的属性数据,可以有效减少计算机内存占用,实现各个I/O节点的负载均衡。
(2)动态搜索树构建:为了快速实现网格单元定位,进行流线积分计算。本发明使用多线程并行构建动态搜索树,即将数据集构建成深度为3的树形结构(根节点、父节点、叶节点)。父节点和叶节点的规模是通过提前设置的阈值密度进行划分的,通过递归、排序和约减等操作逐步细化,以实现对每一个网格单元的定位。动态搜索树结构的深度固定为3,而数据块的规模是不同的,所以父节点和叶节点的节点数是根据数据规模动态变化的,这样降低了动态搜索树深度信息的复杂性。在处理大规模的三维数据时,使用多线程循环嵌套的方法加速维度信息处理,充分利用多核处理器计算资源,加快搜索树构建算法的效率。
(3)动态任务划分:基于任务划分的流线可视化算法,以种子点为任务划分对象。不同数据块的特征不同,其放置的计算种子点数目也不同,不能一贯处理。本发明提出了动态任务划分并行处理的方法,即获取计算种子点数目并根据提前设置的阈值进行规模判定,在根据不同的规模将计算种子点任务分组分配给多线程并行积分计算。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种基于线程并行的结构化网格流线积分方法,其特征在于,包括以下步骤:
步骤1、对给定的多块结构化网格进行数据块的重划分;
步骤2、对于重划分后的每一个数据块,计算其属性数据的类型和数目;
步骤3、反馈步骤2的计算结果,把数据块中的每一种类型的属性数据提取出来单独存储;
步骤4、在进行三维矢量场流线可视化过程中,将需要的属性数据使用多线程进行并行读取;
步骤5、使用读取的属性数据构建动态搜索树;步骤5中所述构建动态搜索树的过程包括两个阶段:
第一阶段为粗粒度划分操作:首先根据坐标系统计算出数据集中数据块的尺寸,然后通过数据集中网格单元的总数N确定粗划分的粒度density1;再根据网格单元的总数N和粗划分的粒度density1将数据集划分为以父节点为单元的数据集;最后对父节点进行粗定位操作,初步实现各父节点的定位;
第二阶段为细粒度划分操作:首先计算划分为以父节点为单元的数据集中父节点的个数n,然后设置细划分的粒度density2,细划分的粒度density2<粗划分的粒度density1;再根据父节点的个数n和细划分的粒度density2将父节点细化分为以叶节点为单元的父节点;最后再对叶节点进行细定位操作,实现父节点中每一个叶节点的定位;
步骤6、读取动态搜索树中计算种子点数,根据计算种子点的任务规模进行动态分组,再将分组后的计算种子点数分配给多线程并行积分计算;
步骤7、将计算结果保存用于后续的可视化工作,完成所有流线可视化工作。
2.根据权利要求1所述的基于线程并行的结构化网格流线积分方法,其特征在于,步骤1中所述对给定的多块结构化网格进行数据块的重划分的方法为:以给定的多块结构化网格为数据集,对数据集的多块结构化网格中各个数据块进行序号标记,对不同数据块使用边界信息合并到一起从而完成重划分,使重划分后的数据块的规模均衡。
3.根据权利要求1所述的基于线程并行的结构化网格流线积分方法,其特征在于,步骤4中所述将需要的属性数据使用多线程进行并行读取的方法为:对各数据块进行标记,将标记好的数据块按照设置的偏移值分配给各个线程并行读取。
4.根据权利要求1所述的基于线程并行的结构化网格流线积分方法,其特征在于,所述第一阶段中划分为以父节点为单元的数据集的维度D如下:
Figure 151588DEST_PATH_IMAGE001
式中,中间参数r为:
Figure 931325DEST_PATH_IMAGE002
式中,density1表示粗划分的粒度,size[0]、size[1]、size[2]分别表示划分为以父节点为单元的数据集在X、Y、Z维度上的尺寸;每一个父节点在X、Y、Z维度上所占的尺寸bs为:
Figure 264218DEST_PATH_IMAGE003
式中,D[0]、D[1]、D[2]分别表示划分为以父节点为单元的数据集在X、Y、Z维度上所占维度。
5.根据权利要求4所述的基于线程并行的结构化网格流线积分方法,其特征在于,所述计算划分为以父节点为单元的数据集中父节点的个数n的公式为:n=D[0]×D[1]×D[2]。
6.根据权利要求1所述的基于线程并行的结构化网格流线积分方法,其特征在于,所述第一阶段中,最后再对父节点进行粗定位操作的方法为:采用多线程并行的方法对每一个父节点进行处理,通过扫描、单元格排序、按关键字约减的操作实现各父节点的定位;所述按关键字约减的操作是指将具有相同关键字的网格单元整合到同一个父节点下。
7.根据权利要求1所述的基于线程并行的结构化网格流线积分方法,其特征在于,所述第二阶段中,最后再对叶节点进行细定位操作的方法为:采用多线程并行的方法对每一个叶节点进行处理,通过扫描、单元格排序、按关键字约减的操作实现各叶节点的定位;所述按关键字约减的操作是指将具有相同关键字的网格单元整合到同一个叶节点下。
8.根据权利要求1-7任一项所述的基于线程并行的结构化网格流线积分方法,其特征在于,所述动态搜索树的深度为3。
9.根据权利要求1所述的基于线程并行的结构化网格流线积分方法,其特征在于,步骤6中所述根据计算种子点的任务规模进行动态分组的方法为:设置不同的阈值,每个阈值对应不同的任务规模,根据读取的种子点数目对任务规模进行分类。
CN202110520617.6A 2021-05-13 2021-05-13 一种基于线程并行的结构化网格流线积分方法 Active CN112948643B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110520617.6A CN112948643B (zh) 2021-05-13 2021-05-13 一种基于线程并行的结构化网格流线积分方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110520617.6A CN112948643B (zh) 2021-05-13 2021-05-13 一种基于线程并行的结构化网格流线积分方法

Publications (2)

Publication Number Publication Date
CN112948643A CN112948643A (zh) 2021-06-11
CN112948643B true CN112948643B (zh) 2021-08-06

Family

ID=76233820

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110520617.6A Active CN112948643B (zh) 2021-05-13 2021-05-13 一种基于线程并行的结构化网格流线积分方法

Country Status (1)

Country Link
CN (1) CN112948643B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113791912B (zh) * 2021-11-11 2022-02-11 中国空气动力研究与发展中心计算空气动力研究所 基于mpi+x的dsmc并行计算方法、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104658027A (zh) * 2015-02-11 2015-05-27 中国海洋大学 一种面向不规则海洋流场数据的三维流线动态可视化算法
CN106202522A (zh) * 2016-07-22 2016-12-07 北京大学 一种流场积分曲线的复用方法及系统
CN110348690A (zh) * 2019-06-12 2019-10-18 国网江苏省电力有限公司金湖县供电分公司 基于树形搜索的结果查询菜单化电网事故辅助决策系统及方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7921002B2 (en) * 2007-01-04 2011-04-05 Honda Motor Co., Ltd. Method and system for simulating flow of fluid around a body
CN102521854B (zh) * 2011-12-29 2013-12-25 北京理工大学 一种适用于二维流场的并行流线放置方法
WO2014094410A1 (zh) * 2012-12-20 2014-06-26 中国科学院近代物理研究所 颗粒流动仿真系统和方法
WO2014133924A1 (en) * 2013-02-26 2014-09-04 Siemens Aktiengesellschaft System and method for interactive patient specific simulation of radiofrequency ablation therapy
CN105022670B (zh) * 2015-07-17 2018-03-13 中国海洋大学 一种云计算平台中的异构分布式任务处理系统及其处理方法
US11804050B1 (en) * 2019-10-31 2023-10-31 Nvidia Corporation Processor and system to train machine learning models based on comparing accuracy of model parameters

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104658027A (zh) * 2015-02-11 2015-05-27 中国海洋大学 一种面向不规则海洋流场数据的三维流线动态可视化算法
CN106202522A (zh) * 2016-07-22 2016-12-07 北京大学 一种流场积分曲线的复用方法及系统
CN110348690A (zh) * 2019-06-12 2019-10-18 国网江苏省电力有限公司金湖县供电分公司 基于树形搜索的结果查询菜单化电网事故辅助决策系统及方法

Also Published As

Publication number Publication date
CN112948643A (zh) 2021-06-11

Similar Documents

Publication Publication Date Title
Peterka et al. Scalable parallel building blocks for custom data analysis
Patwary et al. BD-CATS: big data clustering at trillion particle scale
Zhang et al. Dynamic load balancing based on constrained kd tree decomposition for parallel particle tracing
CN111858066B (zh) 气体动理论统一算法中的cpu+gpu异构并行优化方法
CN103324765A (zh) 一种基于列存储的多核并行数据查询优化方法
Date et al. Collaborative (cpu+ gpu) algorithms for triangle counting and truss decomposition on the minsky architecture: Static graph challenge: Subgraph isomorphism
CN112948643B (zh) 一种基于线程并行的结构化网格流线积分方法
CN109753682B (zh) 一种基于gpu端的有限元刚度矩阵模拟方法
Yang et al. GPU acceleration of subgraph isomorphism search in large scale graph
Andrzejewski et al. GPU-accelerated collocation pattern discovery
CN103150214A (zh) 一种针对空间度量及方向关系并行计算的矢量目标集均衡划分方法
CN103870342B (zh) 云计算环境中的基于结点属性函数的任务核值计算方法
Klinkovský et al. Configurable Open-source Data Structure for Distributed Conforming Unstructured Homogeneous Meshes with GPU Support
CN115344383A (zh) 一种基于进程并行的流线可视化并行加速方法
Sakai et al. Parallel processing for density-based spatial clustering algorithm using complex grid partitioning and its performance evaluation
Wang et al. Hadoop-based Parallel Algorithm for Data Mining in Remote Sensing Images
Yu et al. Accelerated Synchronous Model Parallelism Using Cooperative Process for Training Compute-Intensive Models
Wang et al. Large-scale parallelization of smoothed particle hydrodynamics method on heterogeneous cluster
Zou et al. Research on Parallel CKLDC-means Clustering Algorithm Based on Hadoop Platform
Fontolan Modularity based community detection on the GPU
CN110021059B (zh) 一种无冗余计算的高效Marching Cubes等值面提取方法与系统
Wei Research on Efficient Parallelization of Spectral Clustering Algorithm Based on Big Data
Jing et al. Knowledge management in construction—the framework of high value density knowledge discovery with graph database: Yong Jiang Ying-chu Wang & Zuo Wang
Zhao et al. Parallel collision detection algorithm based on OBB tree and MapReduce
Li et al. Parallel implementation and optimization of the Sebvhos algorithm

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