CN111932663B - 基于多层级非对称通信管理的并行绘制方法 - Google Patents
基于多层级非对称通信管理的并行绘制方法 Download PDFInfo
- Publication number
- CN111932663B CN111932663B CN202010798412.XA CN202010798412A CN111932663B CN 111932663 B CN111932663 B CN 111932663B CN 202010798412 A CN202010798412 A CN 202010798412A CN 111932663 B CN111932663 B CN 111932663B
- Authority
- CN
- China
- Prior art keywords
- data
- parallel
- server
- client
- file
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 239
- 238000004891 communication Methods 0.000 title claims abstract description 77
- 230000008569 process Effects 0.000 claims abstract description 164
- 238000004088 simulation Methods 0.000 claims abstract description 30
- 230000003993 interaction Effects 0.000 claims abstract description 10
- 238000009877 rendering Methods 0.000 claims description 47
- 238000004364 calculation method Methods 0.000 claims description 25
- 238000007726 management method Methods 0.000 claims description 20
- 230000015572 biosynthetic process Effects 0.000 claims description 14
- 238000003786 synthesis reaction Methods 0.000 claims description 14
- 230000002452 interceptive effect Effects 0.000 claims description 9
- 238000004422 calculation algorithm Methods 0.000 claims description 8
- 238000013144 data compression Methods 0.000 claims description 6
- 238000007906 compression Methods 0.000 claims description 3
- 230000006835 compression Effects 0.000 claims description 3
- 230000000977 initiatory effect Effects 0.000 claims description 3
- 239000011159 matrix material Substances 0.000 claims description 3
- 230000009466 transformation Effects 0.000 claims description 3
- 230000000007 visual effect Effects 0.000 abstract description 12
- 238000012545 processing Methods 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 12
- 238000005286 illumination Methods 0.000 description 8
- 238000012800 visualization Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 238000013461 design Methods 0.000 description 6
- 230000003068 static effect Effects 0.000 description 5
- 238000001308 synthesis method Methods 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 238000013079 data visualisation Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/50—Image enhancement or restoration using two or more images, e.g. averaging or subtraction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/10—Numerical modelling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Information Transfer Between Computers (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种基于多层级非对称通信管理的并行绘制方法,包括步骤:S1,数值模拟结果数据并行读入;S2,客户端交互进程开始绘制;S3,服务端绘制进程执行并行绘制;S4,服务端绘制结果向客户端传输等;本发明降低了并行可视化计算与绘制过程中的进程间通信次数,实现了进程间负载均衡,提升了数据载入效率,提升了绘制效率。
Description
技术领域
本发明涉及科学可视化领域,更为具体的,涉及一种基于多层级非对称通信管理的并行绘制方法。
背景技术
随着巨型计算机技术的不断发展,科学数值模拟的计算精度不断提高、网格规模不断增大,所产生的科学数据量已经达到了PB甚至EB量级,如何能够有效的分析与理解这些大规模科学数据已经成为目前科学家们所面临的一个重要难题。科学计算可视化是帮助科学家们分析与理解大规模科学数据的有效方法之一,它是指运用计算机图形学和图像处理技术,将科学计算的输出数据和一些其它领域通过观察测试生成的数据转换为图形和图像,最终在屏幕上显示出来并进行交互处理的理论、方法和技术。而对于这些大规模科学计算数据的可视化处理,仅仅依赖单台计算机本身存储空间的扩大、计算速度的提升,尚不能够满足大规模科学数据可视化的应用需求。因此,将并行处理技术引入可视化算法就成为了必然选择,利用大规模并行计算机进行并行可视化处理已成为目前大规模科学数据分析的有效手段。基于分布式并行计算机集群***,能够充分发掘多台计算机的计算能力和图像绘制功能,具有较好的可扩展性和很强的灵活性。并行绘制技术将并行计算理论和方法引入图形处理领域,是实现高性能图形计算的重要手段。传统上,按照多条流水线的组织方式,即按照图形处理任务的重新分配发生在图形流水线的阶段,并行绘制体系结构分为sort-first、sort-middle、sort-last三类。
现有方案中,针对大规模复杂场景绘制的应用需求,专利CN 101986710 A中提出一种基于sort-last体系结构的并行绘制***,该***由PC集群***构成,包括一个融合节点和若干绘制节点,节点间通过局域网相连,绘制节点负责各自场景的绘制,融合节点负责汇总各绘制节点形成的场景和相应的像素深度图像,并依据图像深度信息最终融合形成最终图像输出。专利CN 103136399 A提出一种室内场景的辐射度并行绘制***,该专利提供了一种面向室内场景的辐射度并行绘制方法:首先,由每个绘制节点计算出物体的参数化纹理图,并发送给文件服务器;然后,由主控节点的并行绘制管理器根据每个物体的参数化纹理的大小排序,根据纹理大小给多个绘制节点分配直接光照绘制任务;由每个绘制节点计算出物体的直接光照纹理图,发送给文件服务器;最后,由主控节点的并行绘制管理器物体的直接光照纹理的大小,结合各个绘制节点的硬件和网络信息,计算出每个光照纹理的对每个绘制节点的计算成本,从而排序并分配给多个绘制节点;绘制节点计算出物体的间接光照纹理图,并发送给文件服务器。专利CN 103699354 A给出了一种基于并行绘制技术的三维图形渲染方法,包括:构建并行渲染***工作环境,用户服务节点确定图元归属,渲染节点确定图元归属,渲染节点执行渲染任务,提取像素数据并发送到图像服务节点,图像服务节点接收像素数据,执行图像拼合,输出到投影设备并显示。
上述方案与本发明的技术较为接近,专利CN 101986710 A解决了绘制节点间的并行绘制问题,然而并没有解决将最终绘制图像返回到服务处理***以及用户终端的问题。专利CN 103136399 A提出了包括主控节点、绘制任务子节点、任务管理器以及文件服务器的并行绘制***,能够应用于用于虚拟现实中面向室内的场景,然而该方法通过主控节点的并行绘制管理器为绘制节点分配参数化任务,同时由主控节点的并行绘制管理器为绘制节点分配直接光照绘制任务。专利CN 103699354 A使用图像服务节点接收像素数据并执行图像拼合。由于本专利适用的国产超算结构特点和远程作业启动方式,专利CN 103136399A和CN 103699354 A方法应用于本硬件***在绘制过程中,主控节点(服务节点)与绘制节点的通信将成为性能瓶颈,影响绘制效率;而且上述方案不能实现对数值模拟数据的交互式探索。
发明内容
本发明的目的在于克服现有技术的不足,提供一种基于多层级非对称通信管理的并行绘制方法,降低了并行可视化计算与绘制过程中的进程间通信次数,实现了进程间负载均衡,提升了数据载入效率,提升了绘制效率。
本发明的目的是通过以下技术方案来实现的:一种基于多层级非对称通信管理的并行绘制方法,包括步骤:
S1,数值模拟结果数据并行读入;
S2,客户端交互进程开始绘制;
S3,服务端绘制进程执行并行绘制;
S4,服务端绘制结果向客户端传输。
进一步地,包括步骤:
S11,将数值模拟结果数据按网格连接关系划分为数据块,然后把数据块分配给不同进程,进程之间所处理的数据块数差额最多为1块;
S12,在读取tecplot格式二进制文件时,通过在文件头部分获知其任意一块数据的偏移量和长度,根据这些信息划分文件进行读取任务,每个进程都能够获取到所有块数和每块网格的头部信息;
S13,各个进程根据获取的头部信息计算每块的数据部分的字节长度,然后通过获取的每块的字节长度和文件的指针位置能够获取到每块数据部分的偏移量,通过偏移量的计算来减少进程间的通信,最后能够给不同的进程设置不同的读取位置实现数据划分,实现各个进程的并行数据文件读入操作。
进一步地,包括步骤:
S21,客户端获得绘制窗口尺寸、窗口位置信息,发送至服务端0号进程;客户端获取渲染器位置、相机信息、相机变换矩阵相关渲染器信息,发送至服务端0号进程;
S22,服务端0号进程接收到来自步骤S21数据后,向其他绘制卫星进程广播,卫星进程接收到信息后更新渲染器信息;
S23,客户端通过socket发起远程过程调用,服务端接收到过程调用后,开始执行图像绘制任务。
进一步地,包括步骤:
S31,服务端0号进程开始绘制时,通过MPI发起远程过程调用,唤起服务端其他进程的绘制任务;
S32,各个绘制进程的图形渲染器将数值模拟结果数据转换为可显示的图元或者图像,传递给数据压缩模块;
S33,数据压缩模块调用压缩算法将图像压缩成为小的数据块,提交给通信模块发送给其他绘制节点;
S34,负责合成的绘制节点从通信模块接收压缩数据,并将压缩数据恢复成图像;
S35,合成节点按照图像深度信息合并数据,得到合成完整仿真数据图像。
进一步地,包括步骤:
S41,服务端绘制完成后,服务器主进程将合成的图片数据发送到客户端;
S42,客户端在渲染窗口中绘制接收到图像数据;
S43,恢复客户端和服务端所有进程状态,等待用户交互操作或结束操作。
进一步地,步骤S21中数据通信通过socket数据通信接口实现。
进一步地,步骤S22中数据通信通过MPI数据通信接口实现。
进一步地,步骤S41中服务器主进程将合成的图片数据通过socket通信接口发送到客户端。
本发明的有益效果是:
(1)本发明基于现有的并行绘制方法进行改进,提升了面向超算***的绘制效率,充分利用高性能计算机***高速互连进行图像合成,并基于低速互连***传输合成后的图像数据,此时能够有效减小在低速网络中的数据传输量,充分利用通信资源,满足实时交互需求;实现并行数据高效读入,降低了并行可视化计算与绘制过程中的进程间通信次数,实现了进程间负载均衡,提升了数据载入效率,实现了C/S模式的并行绘制方法,实现了能够同时处理服务端内部、客户端与服务端间多层级非对称的通信方法。
(2)本发明设计了并行数据文件读入方法,通过把网格数据文件划分成若干子数据的方方式,并根据获取的每块的字节长度和文件的指针位置获取到每块数据部分的偏移量,从而实现并行文件读取;同时,进程间通过静态负载均衡设计,提升了数据载入效率,进而提高绘制效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明中实施例1适用的超算***结构框图;
图2为本发明的并行绘制与同步绘制流程图;
图3为tecplot格式二进制文件结构;
图4为本发明中并行IO文件数据部分划分方法。
具体实施方式
下面结合附图进一步详细描述本发明的技术方案,但本发明的保护范围不局限于以下所述。本说明书中公开的所有特征,或隐含公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
如图1~4所示,一种基于多层级非对称通信管理的并行绘制方法,包括步骤:
S1,数值模拟结果数据并行读入;
S2,客户端交互进程开始绘制;在数据读入完成后或是用户执行交互式控制,如图像缩放、旋转等操作,需要对数据文件进行执行绘制操作,图像显示在客户端而此时数据文件在服务端,为减小对以太网络数据传输,客户端只需要获取绘制合成后的图像数据。
S3,服务端绘制进程执行并行绘制;为了最大限度地提高并行渲染的效率,服务端绘制过程采用树形合成方法。树形合成方法将所有中间结果图像进行两两分组合成,直到所有中间图像合成为完整的结果图像为止。假设有n个进程参与合成过程,需要合成的图像数为n幅,树形合成方式的通信次数为log2n,时间开销为其中tl为图像传输时间,tr为图像读回时间,td为图像合成计算时间。
S4,服务端绘制结果向客户端传输;服务器负责并行绘制,将分布在各个进程上的仿真数据绘制成完整图像。客户端负责显示绘制的结果,因此需要将绘制结果同步传输到客户端。
进一步地,在步骤S1中具体包括如下子步骤:
S11,将数值模拟结果数据按网格连接关系划分为数据块,然后把数据块分配给不同进程,进程之间所处理的数据块数差额最多为1块;
根据网格连接关系对数据分块进行重分布,为降低并行可视化计算过程中的进程间通信次数,需要每个进程拥有的数据分块在空间上是紧致的。对于有n个进程m个数据块的数据读入,第i个进程会分到{bi×m/n,bi×m/n+1,bi×m/n+2,…}数据块,由此保证各个进程划分到尽可能相等的数据块,进程之间所处理的块数差额最多为1块,实现静态负载均衡。
S12,在读取tecplot格式二进制文件时,通过在文件头部分获知其任意一块数据的偏移量和长度,根据这些信息划分文件进行读取任务,每个进程都能够获取到所有块数和每块网格的头部信息;
在读取二进制文件时,对于常用的Tecplot格式二进制文件的结构,如图3所示,采用流的形式打开,而且通过在文件头部分获知其任意一块数据的偏移量和长度,根据这些信息划分文件进行读取任务。数据块的头部信息和数据存储部分是分开的,而且头部信息占用的字节数较小。所有进程可以同时读取所有块的头部信息,即每个进程都可以获取到所有块数和每块网格的头部信息,通过偏移量的计算来减少进程间的通信,从而减小服务器端高速互联***的通信开销。
S13,各个进程根据获取的头部信息计算每块的数据部分的字节长度,然后通过获取的每块的字节长度和文件的指针位置能够获取到每块数据部分的偏移量,通过偏移量的计算来减少进程间的通信,最后能够给不同的进程设置不同的读取位置实现数据划分,实现各个进程的并行数据文件读入操作。
各个进程根据获取的头部信息计算每块的数据部分的字节长度,然后通过获取的每块的字节长度和文件的指针位置就可以获取到每块数据部分的偏移量,最后可以给不同的进程设置不同的读取位置,偏移量计算如图4所示,根据以此为基础实现的数据划分,实现各个进程的并行数据文件读入操作。
进一步地,在步骤S2中包括步骤:
S21,客户端获得绘制窗口尺寸、窗口位置信息,发送至服务端0号进程;客户端获取渲染器位置、相机信息、相机变换矩阵相关渲染器信息,发送至服务端0号进程;此时数据通信通过socket数据通信接口实现。
S22,服务端0号进程接收到来自步骤S21数据后,向其他绘制卫星进程广播,卫星进程接收到信息后更新渲染器信息,此时数据通信通过MPI数据通信接口实现;
S23,客户端通过socket发起远程过程调用,服务端接收到过程调用后,开始执行图像绘制任务。
进一步地,包括步骤:
S31,服务端0号进程开始绘制时,通过MPI发起远程过程调用,唤起服务端其他进程的绘制任务;
S32,各个绘制进程的图形渲染器将数值模拟结果数据转换为可显示的图元或者图像,传递给数据压缩模块;
S33,数据压缩模块调用压缩算法将图像压缩成为小的数据块,提交给通信模块发送给其他绘制节点;
S34,负责合成的绘制节点从通信模块接收压缩数据,并将压缩数据恢复成图像;
S35,合成节点按照图像深度信息合并数据,得到合成完整仿真数据图像。
进一步地,包括步骤:
S41,服务端绘制完成后,服务器主进程将合成的图片数据发送到客户端;
S42,客户端在渲染窗口中绘制接收到图像数据;
S43,恢复客户端和服务端所有进程状态,等待用户交互操作或结束操作。
在步骤S41中,服务器主进程将合成的图片数据通过socket通信接口发送到客户端。
一种并行数据文件读入方法,包括步骤:
S11,将数值模拟结果数据按网格连接关系划分为数据块,然后把数据块分配给不同进程,进程之间所处理的数据块数差额最多为1块;
根据网格连接关系对数据分块进行重分布,为降低并行可视化计算过程中的进程间通信次数,需要每个进程拥有的数据分块在空间上是紧致的。对于有n个进程m个数据块的数据读入,第i个进程会分到{bi×m/n,bi×m/n+1,bi×m/n+2,…}数据块,由此保证各个进程划分到尽可能相等的数据块,进程之间所处理的块数差额最多为1块,实现静态负载均衡。
S12,在读取二进制文件时,通过在文件头部分获知其任意一块数据的偏移量和长度,根据这些信息划分文件进行读取任务,每个进程都能够获取到所有块数和每块网格的头部信息,通过偏移量的计算来减少进程间的通信;
在读取二进制文件时,对于常用的Tecplot格式二进制文件的结构,如图2所示,采用流的形式打开,而且通过在文件头部分获知其任意一块数据的偏移量和长度,根据这些信息划分文件进行读取任务。数据块的头部信息和数据存储部分是分开的,而且头部信息占用的字节数较小。所有进程可以同时读取所有块的头部信息,即每个进程都可以获取到所有块数和每块网格的头部信息,通过偏移量的计算来减少进程间的通信,从而减小服务器端高速互联***的通信开销。
S13,各个进程根据获取的头部信息计算每块的数据部分的字节长度,然后通过获取的每块的字节长度和文件的指针位置能够获取到每块数据部分的偏移量,通过偏移量的计算来减少进程间的通信,最后能够给不同的进程设置不同的读取位置实现数据划分,实现各个进程的并行数据文件读入操作。
各个进程根据获取的头部信息计算每块的数据部分的字节长度,然后通过获取的每块的字节长度和文件的指针位置就可以获取到每块数据部分的偏移量,最后可以给不同的进程设置不同的读取位置,偏移量计算如图3所示,根据以此为基础实现的数据划分,实现各个进程的并行数据文件读入操作。
实施例1
本发明实施例1主要解决在高性能计算机***上的对于并行绘制的多层级非对称通信管理问题,目前尚无专利针对高性能计算机***实现基于多层级非对称通信管理的并行绘制方法。随着高性能计算机***和数值模拟技术的发展,能够构存储并处理更逼真、更精细的仿真数据,因此数值模拟处理的数据规模越来越大。但是,如何对仿真数据进行准确的表达,一直是业界的难题之一。
可视化技术应用计算图形学相关方法和图形处理与显示技术,将数值模拟仿真获得的大量离散数据转换为图形图像或动画的形式,形象地将数值仿真结果显示出来,从而能够直观、准确地展示数据内部的特性与本质,帮助科研人员分析其中的规律。对于大规模数据的可视化,单个计算机难以处理。基于分布式并行计算机集群***,能够充分发掘多台计算机的计算能力和图像绘制功能,具有较好的可扩展性和很强的灵活性。并行绘制技术将并行计算理论和方法引入图形处理领域,通过对绘制任务进行划分,并分配到不同的绘制资源上并行绘制,然后将绘制结果进行合成,能够解决数据在计算机集群上的数据分布和图像集中显示问题。
相关论文以及专利文献实现了适用于一定计算机体系结构的并行绘制方法,而对于当前主流的超级计算机***,体系结构如图1所示。从图像绘制过程来看,超算集群***上需要通过客户端远程发送作业的方式启动并行绘制任务,绘制节点上的绘制结果需要发送到本地客户端进行显示,并响应用户交互输入和交互控制;从超级计算机体系结构来看,服务处理***与绘制节点间采用以太网的方式连接(带宽为百兆或千兆每秒),绘制节点间使用高速互联(如Intel InfiniBand,带宽为数十GB每秒),而者相差数百甚至数千倍。超级计算机***结构的复杂性以及数据可视化使得现有的图形绘制方法不适用于当前的超级计算机***结构。
针对现有技术的缺点,本发明实施例1设计了一种基于多层级非对称通信管理的并行绘制方法,通过对数据的有效划分以及对超级计算机***不同的通信网络的管理,实现了适应于当前超级计算机***的高效并行绘制。
在本实施例中,一种基于多层级非对称通信管理的并行绘制方法,包括步骤:
S1,数值模拟结果数据并行读入;
S2,客户端交互进程开始绘制;
S3,服务端绘制进程执行并行绘制;
S4,服务端绘制结果向客户端传输。
为了便于本领域技术人员理解和实施本实施,更进一步的说明如下,在步骤S1中,在并行可视化计算与绘制过程中,大规模仿真数据首先划分为数据块,然后分配给不同进程,通过并行IO操作将数据读入内存,并根据算法流程在进程间交换数据。本实施例采用按网格划分的数据划分方法,在空间范围内,整个流场会被均衡划分为若干个数据块;同时,根据网格连接关系进行数据分块的重分布,尽量保证了每个进程拥有的数据分块在空间上是紧致的,降低了并行可视化计算与绘制过程中的进程间通信次数,实现了进程间负载均衡。
在步骤S2中,在数据读入完成后或是用户执行交互式控制,如图像缩放、旋转等操作,需要对数据文件进行执行绘制操作,图像显示在客户端而此时数据文件在服务端,为减小对以太网络数据传输,客户端只需要获取绘制合成后的图像数据。
在步骤S3中,为了最大限度地提高并行渲染的效率,服务端绘制过程采用树形合成方法。树形合成方法将所有中间结果图像进行两两分组合成,直到所有中间图像合成为完整的结果图像为止。假设有n个进程参与合成过程,需要合成的图像数为n幅,树形合成方式的通信次数为log2n,时间开销为其中tl为图像传输时间,tr为图像读回时间,td为图像合成计算时间。
在步骤S4中,服务端绘制结果向客户端传输;服务器负责并行绘制,将分布在各个进程上的仿真数据绘制成完整图像。客户端负责显示绘制的结果,因此需要将绘制结果同步传输到客户端。
本实施例基于现有的并行绘制方法进行改进,提升了面向超算***的绘制效率,具体的,传统的并行绘制技术能解决图像合成等问题,然而在当前主流的超算***中使用传统的方法进行图像绘制,主控节点与绘制节点的通信将成为性能瓶颈。相比之下,本发明采用并行绘制结合同步绘制的方法,可以充分利用高性能计算机***高速互连进行图像合成,并基于低速互连***传输合成后的图像数据,此时能够有效减小在低速网络中的数据传输量,充分利用通信资源,满足实时交互需求。相比于目前的并行绘制算法,本实施例中提出的基于非对称多层级通信管理的并行绘制算法设计上有如下优点:
(1)数值模拟结果数据并行读入,在并行可视化计算与绘制过程中,大规模仿真数据首先划分为数据块,然后分配给不同进程,通过并行IO操作将数据读入内存,并根据算法流程在进程间交换数据。本发明采用按网格划分的数据划分方法,在空间范围内,整个流场会被均衡划分为若干个数据块;同时,根据网格连接关系进行数据分块的重分布,尽量保证每个进程拥有的数据分块在空间上是紧致的,降低了并行可视化计算与绘制过程中的进程间通信次数,实现了进程间负载均衡。
(2)多层级非对称通信管理,超算集群***上都是通过客户端远程发送作业的方式启动计算任务,对于并行绘制计算任务,需要在远程集群上完成并行可视化计算和并行绘制任务,服务器多进程并行程序通过高速互联***完成协助,进程间通信采用消息传递机制;而客户端和服务器之间的连接和可视化数据传输链路是基于TCP/IP协议的低速网络和Socket通信接口。服务端绘制结果需要发送到本地客户端进行显示、同时响应用户交互输入,本发明实现了C/S模式的并行绘制方法,实现了能够同时处理服务端内部、客户端与服务端间多层级非对称的通信方法。计算过程中,首先需要客户端与服务端建立连接,然后服务器就可以响应用户的请求执行相应的绘制任务;响应方式采用远程过程调用的方式实现,客户端的操作过程通过参数打包的形式,发送到服务器端主进程,主进程解析后,根据任务划分情况启动其他进程的计算;所有进程在完成图像合成后,主进程拥有完整的绘制结果;最后可以通过数据同步操作,将主进程图片文件发送到客户端显示。
本实施例能够充分利用当前超级计算机体系结构,实现图像并行绘制和同步绘制,本实施例中提出的方法大大提升了图像绘制和传输效率,满足实时交互的需求,对面向超级计算机***结构的作业管理、数据通信实现协同,并基于计算节点间高速互连以及主控节点与绘制节点间低速互连的***结构,实现了对并行绘制与同步绘制两种绘制方法的协调管理,以支撑交互式探索。
实施例2
本领域技术人员可以将发明作为一种并行数据文件读入方法进行实施,用按网格划分的数据划分方法,在空间范围内,整个流场会被均衡划分为若干个数据块;同时,根据网格连接关系进行数据分块的重分布,尽量保证了每个进程拥有的数据分块在空间上是紧致的,降低了并行可视化计算与绘制过程中的进程间通信次数,实现了进程间负载均衡,具体通过以下步骤实现:
S11,将数值模拟结果数据按网格连接关系划分为数据块,然后把数据块分配给不同进程,进程之间所处理的数据块数差额最多为1块;
S12,在读取二进制文件时,通过在文件头部分获知其任意一块数据的偏移量和长度,根据这些信息划分文件进行读取任务,每个进程都能够获取到所有块数和每块网格的头部信息,通过偏移量的计算来减少进程间的通信;
S13,各个进程根据获取的头部信息计算每块的数据部分的字节长度,然后通过获取的每块的字节长度和文件的指针位置能够获取到每块数据部分的偏移量,通过偏移量的计算来减少进程间的通信,最后能够给不同的进程设置不同的读取位置实现数据划分,实现各个进程的并行数据文件读入操作。
为了便于本领域技术人员理解和实施本实施,更进一步的说明如下,
在步骤S11中,将数值模拟结果数据按网格连接关系划分为数据块,然后把数据块分配给不同进程,进程之间所处理的数据块数差额最多为1块;根据网格连接关系对数据分块进行重分布,为降低并行可视化计算过程中的进程间通信次数,需要每个进程拥有的数据分块在空间上是紧致的。对于有n个进程m个数据块的数据读入,第i个进程会分到{bi×m/n,bi×m/n+1,bi×m/n+2,…}数据块,由此保证各个进程划分到尽可能相等的数据块,进程之间所处理的块数差额最多为1块,实现静态负载均衡。
在步骤S12中,在读取二进制文件时,通过在文件头部分获知其任意一块数据的偏移量和长度,根据这些信息划分文件进行读取任务,每个进程都能够获取到所有块数和每块网格的头部信息,通过偏移量的计算来减少进程间的通信;在读取二进制文件时,对于常用的Tecplot格式二进制文件的结构,如图2所示,采用流的形式打开,而且通过在文件头部分获知其任意一块数据的偏移量和长度,根据这些信息划分文件进行读取任务。数据块的头部信息和数据存储部分是分开的,而且头部信息占用的字节数较小。所有进程可以同时读取所有块的头部信息,即每个进程都可以获取到所有块数和每块网格的头部信息,通过偏移量的计算来减少进程间的通信,从而减小服务器端高速互联***的通信开销。
在步骤S13中,各个进程根据获取的头部信息计算每块的数据部分的字节长度,然后通过获取的每块的字节长度和文件的指针位置能够获取到每块数据部分的偏移量,通过偏移量的计算来减少进程间的通信,最后能够给不同的进程设置不同的读取位置实现数据划分,实现各个进程的并行数据文件读入操作。各个进程根据获取的头部信息计算每块的数据部分的字节长度,然后通过获取的每块的字节长度和文件的指针位置就可以获取到每块数据部分的偏移量,最后可以给不同的进程设置不同的读取位置,偏移量计算如图3所示,根据以此为基础实现的数据划分,实现各个进程的并行数据文件读入操作。
本实施例设计了并行数据文件读入方法,通过把网格数据文件划分成若干子数据的方方式,并根据获取的每块的字节长度和文件的指针位置获取到每块数据部分的偏移量,从而实现并行文件读取;同时,进程间通过静态负载均衡设计,提升了数据载入效率。
实施例3
本领域技术人员实施实施例1中任一步骤或实施例2中任一步骤,或任意多个步骤组合的模块,装置,设备和***,以及模块,装置,设备和***的使用方法,均在本实施例的保护范围。
本发明中各个实施例的特征可以互换或组合。本发明功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (7)
1.一种基于多层级非对称通信管理的并行绘制方法,其特征在于,包括步骤:
S1,数值模拟结果数据并行读入;步骤S1,包括子步骤:
S11,将数值模拟结果数据按网格连接关系划分为数据块,然后把数据块分配给不同进程,进程之间所处理的数据块数差额最多为1块;
S12,在读取tecplot格式二进制文件时,通过在文件头部分获知其任意一块数据的偏移量和长度,根据这些信息划分文件进行读取任务,每个进程都能够获取到所有块数和每块网格的头部信息;
S13,各个进程根据获取的头部信息计算每块的数据部分的字节长度,然后通过获取的每块的字节长度和文件的指针位置能够获取到每块数据部分的偏移量,通过偏移量的计算来减少进程间的通信,最后能够给不同的进程设置不同的读取位置实现数据划分,实现各个进程的并行数据文件读入操作;
S2,客户端交互进程开始绘制;
S3,服务端绘制进程执行并行绘制;
S4,服务端绘制结果向客户端传输。
2.根据权利要求1所述的基于多层级非对称通信管理的并行绘制方法,其特征在于,包括步骤:
S21,客户端获得绘制窗口尺寸、窗口位置信息,发送至服务端0号进程;客户端获取渲染器位置、相机信息、相机变换矩阵相关渲染器信息,发送至服务端0号进程;
S22,服务端0号进程接收到来自步骤S21数据后,向其他绘制卫星进程广播,卫星进程接收到信息后更新渲染器信息;
S23,客户端通过socket发起远程过程调用,服务端接收到过程调用后,开始执行图像绘制任务。
3.根据权利要求1所述的基于多层级非对称通信管理的并行绘制方法,其特征在于,包括步骤:
S31,服务端0号进程开始绘制时,通过MPI发起远程过程调用,唤起服务端其他进程的绘制任务;
S32,各个绘制进程的图形渲染器将数值模拟结果数据转换为可显示的图元或者图像,传递给数据压缩模块;
S33,数据压缩模块调用压缩算法将图像压缩成为小的数据块,提交给通信模块发送给其他绘制节点;
S34,负责合成的绘制节点从通信模块接收压缩数据,并将压缩数据恢复成图像;
S35,合成节点按照图像深度信息合并数据,得到合成完整仿真数据图像。
4.根据权利要求1所述的基于多层级非对称通信管理的并行绘制方法,其特征在于,包括步骤:
S41,服务端绘制完成后,服务器主进程将合成的图片数据发送到客户端;
S42,客户端在渲染窗口中绘制接收到图像数据;
S43,恢复客户端和服务端所有进程状态,等待用户交互操作或结束操作。
5.根据权利要求2所述的基于多层级非对称通信管理的并行绘制方法,其特征在于,步骤S21数据通信通过socket数据通信接口实现。
6.根据权利要求2所述的基于多层级非对称通信管理的并行绘制方法,其特征在于,步骤S22数据通信通过MPI数据通信接口实现。
7.根据权利要求4所述的基于多层级非对称通信管理的并行绘制方法,其特征在于,步骤S41中服务器主进程将合成的图片数据通过socket通信接口发送到客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010798412.XA CN111932663B (zh) | 2020-08-11 | 2020-08-11 | 基于多层级非对称通信管理的并行绘制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010798412.XA CN111932663B (zh) | 2020-08-11 | 2020-08-11 | 基于多层级非对称通信管理的并行绘制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111932663A CN111932663A (zh) | 2020-11-13 |
CN111932663B true CN111932663B (zh) | 2022-10-18 |
Family
ID=73307321
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010798412.XA Active CN111932663B (zh) | 2020-08-11 | 2020-08-11 | 基于多层级非对称通信管理的并行绘制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111932663B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113253965B (zh) * | 2021-06-25 | 2021-10-29 | 中国空气动力研究与发展中心计算空气动力研究所 | 海量数据多视口可视化交互方法、***、设备及存储介质 |
CN113254241B (zh) * | 2021-06-25 | 2021-09-21 | 中国空气动力研究与发展中心计算空气动力研究所 | 一种应用于cfd高性能计算的数据跨进程传输方法 |
CN114463476B (zh) * | 2022-04-11 | 2022-06-28 | 中国空气动力研究与发展中心计算空气动力研究所 | 可视化并行绘制方法、装置、***及存储介质 |
CN117473798B (zh) * | 2023-12-26 | 2024-05-14 | 国家超级计算天津中心 | 仿真项目管理方法、装置、设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2098995A2 (en) * | 2008-03-04 | 2009-09-09 | Agfa Healthcare | System for real-time volume rendering on thin clients via a render server. |
JP2012209379A (ja) * | 2011-03-29 | 2012-10-25 | Dainippon Screen Mfg Co Ltd | パターン描画方法、パターン描画装置およびコンピュータプログラム |
CN106803231A (zh) * | 2016-12-29 | 2017-06-06 | 东北大学 | 一种基于sort‑first负载平衡的图形并行绘制方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10249073B2 (en) * | 2015-07-21 | 2019-04-02 | Intel Corporation | Distributed frame buffer and API for scalable parallel rendering |
-
2020
- 2020-08-11 CN CN202010798412.XA patent/CN111932663B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2098995A2 (en) * | 2008-03-04 | 2009-09-09 | Agfa Healthcare | System for real-time volume rendering on thin clients via a render server. |
JP2012209379A (ja) * | 2011-03-29 | 2012-10-25 | Dainippon Screen Mfg Co Ltd | パターン描画方法、パターン描画装置およびコンピュータプログラム |
CN106803231A (zh) * | 2016-12-29 | 2017-06-06 | 东北大学 | 一种基于sort‑first负载平衡的图形并行绘制方法 |
Non-Patent Citations (3)
Title |
---|
"Parallel In Situ Coupling of Simulation with a Fully Featured Visualization System";Brad Whitlock等;《Eurographics Symposium on Parallel Graphics and Visualization》;20110410;第101-109页第1-7节 * |
一种自适应可视化软件结构;杨帆等;《***仿真学报》;20060831;第18卷;第333-335,339页 * |
面向科学计算可视化的两级并行数据读取加速方法;石刘等;《计算机研究与发展》;20170430;第54卷(第04期);第844-854页第1-3节 * |
Also Published As
Publication number | Publication date |
---|---|
CN111932663A (zh) | 2020-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111932663B (zh) | 基于多层级非对称通信管理的并行绘制方法 | |
Doerr et al. | CGLX: a scalable, high-performance visualization framework for networked display environments | |
CN110706341B (zh) | 一种城市信息模型的高性能渲染方法、装置及存储介质 | |
Staadt et al. | A survey and performance analysis of software platforms for interactive cluster-based multi-screen rendering | |
US20110004827A1 (en) | Scalable, Cross-Platform Method for Multi-Tile Display Systems | |
CN1441363A (zh) | 分布式资源结构和*** | |
CN112669428B (zh) | 一种基于服务器和客户端协作的bim模型渲染方法 | |
Eilemann et al. | Equalizer 2.0–convergence of a parallel rendering framework | |
JP2005055573A (ja) | 高速表示処理装置 | |
Jensen et al. | An efficient system for collaboration in tele-immersive environments | |
CN113253965B (zh) | 海量数据多视口可视化交互方法、***、设备及存储介质 | |
Nonaka et al. | Hybrid hardware-accelerated image composition for sort-last parallel rendering on graphics clusters with commodity image compositor | |
Liu et al. | Design and implementation of distributed rendering system | |
Altenhofen et al. | Rixels: Towards secure interactive 3d graphics in engineering clouds | |
Eilemann et al. | The Equalizer parallel rendering framework | |
Mwalongo | Interactive web-based visualization | |
Schmauder et al. | Distributed visual analytics on large-scale high-resolution displays | |
Sabou et al. | Remote interactive visualization for particle-based simulations on graphics clusters | |
Kranzlmuller et al. | Interactive virtual reality on the grid | |
CN102622198A (zh) | 一种对数据进行可视化处理的方法及*** | |
Sigitov et al. | Enabling global illumination rendering on large, high-resolution displays | |
Ramírez et al. | Web visualization of 3D medical data with open source software | |
Bundulis et al. | Infiniviz: Taking quake 3 arena on a large-scale display system to the next level | |
Bolívar et al. | An architecture approach for 3D render distribution using mobile devices in real time | |
Stoll et al. | Evaluating multi-port frame buffer designs for a mesh-connected multicomputer |
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 |