CN115858183B - 异步并行i/o请求的进程间联合分析方法、装置及设备 - Google Patents
异步并行i/o请求的进程间联合分析方法、装置及设备 Download PDFInfo
- Publication number
- CN115858183B CN115858183B CN202310193319.XA CN202310193319A CN115858183B CN 115858183 B CN115858183 B CN 115858183B CN 202310193319 A CN202310193319 A CN 202310193319A CN 115858183 B CN115858183 B CN 115858183B
- Authority
- CN
- China
- Prior art keywords
- analysis
- layer
- parallel
- joint
- requests
- 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
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Multi Processors (AREA)
Abstract
本发明提供一种异步并行I/O请求的进程间联合分析方法、装置及设备,该方法包括:响应于针对异步并行I/O请求的进程间联合分析指令,获取进程间联合分析指令所对应的在各个进程内的并行I/O请求及其相关信息、通信域和所有进程;生成所有进程之间的多层分析网络并按照多层分析网络进行逐层的分析;在每一层的分析过程中进行并行I/O请求的联合分析和计算,最终确定联合分析的结果,联合分析的结果包括所有异步并行I/O请求和各个异步并行I/O请求的相关信息。通过构建多层分析网络,采用多层网络的方法来实现联合分析,降低了通信开销和分析开销,实现了低开销的异步并行I/O请求的进程间联合分析。
Description
技术领域
本发明实施例涉及I/O请求处理技术领域,具体涉及一种异步并行I/O请求的进程间联合分析方法、装置及设备。
背景技术
随着应用需求的发展以及计算机处理能力的提高,应用程序所处理的数据量也不断增加,从文件系统中读取和写入文件系统的数据量也不断增大。在当前计算机的发展中,数据输入/输出(Input/Output,I/O)速度的增长远慢于计算能力的增长,这使得数据I/O成为大多数应用程序的性能瓶颈。为了降低数据I/O开销对应用程序运行速度的影响,并行I/O与异步I/O技术应运而生。并行I/O技术是利用计算机的并行存储能力,将应用程序的数据分散存储到多个进程,多个进程通过协同进行数据读写来提高I/O的速度;异步I/O技术是采用计算进程/线程以外的I/O专用进程/线程来完成数据I/O操作,使得应用程序无需等待I/O操作的完成就能继续执行其他计算,从而使应用程序的计算和I/O操作可以重叠进行。为了最大程度地降低数据I/O操作对应用程序性能的影响,同时兼顾并行I/O与异步I/O的异步并行I/O技术逐渐得到推广。
在计算机系统中,数据是以文件格式的方式进行存储的。为了对接存储系统,提供了位于底层的基本文件格式,通常没有特定的约束规范,例如可以是C/C++和Fortran等编程语言以及消息传递接口(MessagePassing Interface,MPI)I/O等能用文件访问命令直接进行操作的二进制文件格式。为了便于应用程序的访问和用户对数据的使用,提供了基于基本文件格式的应用文件格式,特别是带有元信息的文件格式及其使用接口。例如在地球科学和数值预报领域,网络通用数据格式(NetworkCommon Data Form,NetCDF)及其并行版本PNetCDF均是常用的应用文件格式,其制定了描述变量名、变量类型、变量维度、时间信息等元数据的规则,提供了一系列的专用文件访问接口。
对应于多级文件格式,异步并行I/O技术也应具有层次体系。其中,既需要对接基本文件格式的异步并行I/O系统(简称基本异步并行I/O系统),也需要对接应用文件格式的异步并行I/O适配系统。为了提高用户友好性并使得用户能尽量减少对应用程序的修改,现有适配方法允许应用程序指定若干异步I/O区域,在各异步I/O区域内可发起多个应用文件格式I/O请求,而一个异步I/O区域内的多个应用文件格式I/O请求会被一起转化为若干基本文件格式异步I/O请求。而如何将应用文件格式I/O请求转化为基本文件格式异步I/O请求既是上述适配方法的关键技术,也是一项难题,尤其是在异步并行I/O的场景下,这主要是因为一个异步I/O区域内可能有多个变量的I/O请求,而一个变量的I/O请求信息可能分散存放在多个进程之间。因此需要进行异步并行I/O请求的进程间联合分析,才能确定各基本文件格式异步I/O请求。
现有进程间联合分析的一种实现方式是:主进程先把分散在所有进程上的信息聚合起来,进行分析,然后把分析的结果广播给所有进程。这种方式虽然实现起来较为简便,但是却存在以下不足:一方面会引入全局通信,带来较大通信开销;另一方面因主进程需要分析大量信息而导致分析开销增加,尤其是在进程比较多的情况下。因此,亟需一种低开销的异步并行I/O请求的进程间联合分析方法。
发明内容
本发明实施例提供一种异步并行I/O请求的进程间联合分析方法、装置及设备,用以解决现有方法开销大的问题。
第一方面,本发明实施例提供一种异步并行I/O请求的进程间联合分析方法,包括:
响应于针对异步并行I/O请求的进程间联合分析指令,获取进程间联合分析指令所对应的在各个进程内的并行I/O请求及其相关信息,并获取进程间联合分析指令所对应的通信域和所有进程;
生成所有进程之间的多层分析网络并按照多层分析网络进行逐层的分析;
在每一层的分析过程中进行并行I/O请求的联合分析和计算,最终确定联合分析的结果,联合分析的结果包括所有异步并行I/O请求和各个异步并行I/O请求的相关信息。
一种实施例中,多层分析网络的层数根据所有进程的进程数确定,多层分析网络采用蝶形结构、二叉树结构或者多叉树结构的分析网络。
一种实施例中,当多层分析网络采用二叉树结构或多叉树结构的分析网络时,在根进程最终确定联合分析的结果之后,根进程将联合分析的结果在所有进程之间进行广播。
一种实施例中,按照多层分析网络进行逐层的分析,包括:
遵循多层分析网络的迭代过程中的每个迭代对应着一层分析,每一层分析的联合分析和计算的结果是下一层分析的输入,每一层分析中的一个进程只与另外的一个进程或少数几个进程进行联合分析。
一种实施例中,进行并行I/O请求的联合分析和计算,包括:
确定不同I/O请求所对应的所有变量,各变量采用变量标识进行标记,变量标识由变量所对应的文件名、在文件中偏移量位置和读/写标志组成;
检查各变量的全局多维计算空间信息在进程间的一致性;
计算各变量的并行剖分信息。
一种实施例中,确定不同I/O请求所对应的所有变量包括:
对进程上的所有变量标识求并集,得到不同I/O请求所对应的所有变量。
一种实施例中,计算各变量的并行剖分信息,包括:
在第一层分析前,在各进程内确定各个变量,并计算各变量局部并行剖分信息的关键字,关键字根据局部并行剖分信息和进程的编号确定;
在每一层分析的过程中,根据同一变量在两个进程中的局部并行剖分信息的关键字得到新的关键字,最终确定各变量的并行剖分信息。
一种实施例中,各个异步并行I/O请求的相关信息包括:变量标识、通信域、全局计算空间信息、并行剖分信息和内存数据空间的指针,并行剖分信息包括通过联合分析计算出来的并行剖分的关键字和分散存放在各进程上的局部并行剖分信息。
第二方面,本发明实施例提供一种异步并行I/O请求的进程间联合分析装置,包括:
获取模块,用于响应于针对异步并行I/O请求的进程间联合分析指令,获取进程间联合分析指令所对应的在各个进程内的并行I/O请求及其相关信息,并获取进程间联合分析指令所对应的通信域和所有进程;
处理模块,用于生成所有进程之间的多层分析网络并按照多层分析网络进行逐层的分析;
分析模块,用于在每一层的分析过程中进行并行I/O请求的联合分析和计算,最终确定联合分析的结果,联合分析的结果包括所有异步并行I/O请求和各个异步并行I/O请求的相关信息。
第三方面,本发明实施例提供一种电子设备,包括:
至少一个处理器和存储器;
存储器存储计算机执行指令;
至少一个处理器执行存储器存储的计算机执行指令,使得至少一个处理器执行如第一方面任一项所述的异步并行I/O请求的进程间联合分析方法。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现如第一方面任一项所述的异步并行I/O请求的进程间联合分析方法。
本发明实施例提供的异步并行I/O请求的进程间联合分析方法、装置及设备,响应于针对异步并行I/O请求的进程间联合分析指令,获取进程间联合分析指令所对应的在各个进程内的并行I/O请求及其相关信息,并获取进程间联合分析指令所对应的通信域和所有进程;生成所有进程之间的多层分析网络并按照多层分析网络进行逐层的分析;在每一层的分析过程中进行并行I/O请求的联合分析和计算,最终确定联合分析的结果,联合分析的结果包括所有异步并行I/O请求和各个异步并行I/O请求的相关信息。通过构建多层分析网络,采用逐层分析的方法来实现联合分析,降低了通信开销和分析开销,实现了低开销的异步并行I/O请求的进程间联合分析。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1为本发明一实施例提供的异步并行I/O请求的进程间联合分析方法的流程图;
图2为本发明一实施例提供的异步并行I/O请求的进程间联合分析装置的结构示意图;
图3为本发明一实施例提供的电子设备的结构示意图。
通过上述附图,已示出本发明明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本发明构思的范围,而是通过参考特定实施例为本领域技术人员说明本发明的概念。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。其中不同实施方式中类似元件采用了相关联的类似的元件标号。在以下的实施方式中,很多细节描述是为了使得本申请能被更好的理解。然而,本领域技术人员可以毫不费力的认识到,其中部分特征在不同情况下是可以省略的,或者可以由其他元件、材料、方法所替代。在某些情况下,本申请相关的一些操作并没有在说明书中显示或者描述,这是为了避免本申请的核心部分被过多的描述所淹没,而对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。
另外,说明书中所描述的特点、操作或者特征可以以任意适当的方式结合形成各种实施方式。同时,方法描述中的各步骤或者动作也可以按照本领域技术人员所能显而易见的方式进行顺序调换或调整。因此,说明书和附图中的各种顺序只是为了清楚描述某一个实施例,并不意味着是必须的顺序,除非另有说明其中某个顺序是必须遵循的。
本文中为部件所编序号本身,例如“第一”、“第二”等,仅用于区分所描述的对象,不具有任何顺序或技术含义。而本申请所说“连接”、“联接”,如无特别说明,均包括直接和间接连接(联接)。
图1为本发明一实施例提供的异步并行I/O请求的进程间联合分析方法的流程图。如图1所示,本实施例提供的异步并行I/O请求的进程间联合分析方法可以包括:
S101、响应于针对异步并行I/O请求的进程间联合分析指令,获取进程间联合分析指令所对应的在各个进程内的并行I/O请求及其相关信息,并获取进程间联合分析指令所对应的通信域和所有进程。
一个并行I/O请求对应着一个通信域,同一进程间联合分析指令中的所有并行I/O请求对应着相同的通信域,即“该指令所对应的通信域”,所有进程就是该通信域中的所有进程。
S102、生成所有进程之间的多层分析网络并按照多层分析网络进行逐层的分析。
一种可选的实施方式中,多层分析网络的层数根据所有进程的进程数确定,例如层数可以是以2为底的进程数的对数。举例来说,当有2个进程时,层数为1;当有64个进程时,层数为6。
多层分析网络可以采用蝶形结果、二叉树结构或多叉树结构的分析网络。在每一层分析中,一个进程只与另外的一个进程或少数几个进程进行交互。在一种可选的实施方式中,当多层分析网络采用二叉树结构或多叉树结构的分析网络时,在根进程最终确定联合分析的结果之后,根进程将联合分析的结果在所有进程之间进行广播。
进程间联合分析是遵循多层分析网络的迭代过程,其中每个迭代对应着一层分析,一层分析的联合分析和计算的结果是下一层的输入。在一层分析中,一个进程只与另外的一个进程或少数几个进程进行交互,即一个进程只会与另一个进程进行I/O请求的联合分析和计算。也就是说,按照多层分析网络进行逐层的分析,具体可以包括:遵循多层分析网络的迭代过程中的每个迭代对应着一层分析,每一层分析的联合分析和计算的结果是下一层分析的输入,每一层分析中的一个进程只与另外的一个进程或少数几个进程进行联合分析。
S103、在每一层的分析过程中进行并行I/O请求的联合分析和计算,最终确定联合分析的结果,联合分析的结果包括所有异步并行I/O请求和各个异步并行I/O请求的相关信息。
具体的,各个异步并行I/O请求的相关信息可以包括:变量标识、通信域、全局计算空间信息、并行剖分信息和内存数据空间的指针,并行剖分信息包括通过联合分析计算出来的并行剖分的关键字和分散存放在各进程上的局部并行剖分信息。
可以理解的是,在确定联合分析的结果之后,需要将该结果提交给基础文件格式的异步并行I/O系统进行进一步处理。
本实施例提供的异步并行I/O请求的进程间联合分析方法,响应于针对异步并行I/O请求的进程间联合分析指令,获取进程间联合分析指令所对应的在各个进程内的并行I/O请求及其相关信息、通信域和所有进程;生成所有进程之间的多层分析网络并按照多层分析网络进行逐层的分析;在每一层的分析过程中进行并行I/O请求的联合分析和计算,最终确定联合分析的结果,联合分析的结果包括所有异步并行I/O请求和各个异步并行I/O请求的相关信息。通过构建多层分析网络,采用逐层分析的方法来实现联合分析,降低了通信开销和分析开销,实现了低开销的异步并行I/O请求的进程间联合分析。
在上述实施例的基础上,对如何进行并行I/O请求的联合分析和计算进行进一步说明。本实施例提供的异步并行I/O请求的进程间联合分析方法中,进行并行I/O请求的联合分析和计算具体可以包括:确定不同I/O请求所对应的所有变量;检查各变量的全局多维计算空间信息在进程间的一致性;计算各变量的并行剖分信息。
其中,各变量可以采用变量标识进行标记,不同变量通过变量标识得以辨别。具体的,变量标识可以由变量所对应的文件名、在文件中偏移量位置和读/写标志组成。确定所有变量的过程,实际上就是把两个进程上的所有变量标识求并集的过程。也就是说,确定不同I/O请求所对应的所有变量具体可以包括:对进程上的所有变量标识求并集,得到不同I/O请求所对应的所有变量。
每个变量定义在一个多维空间上(退化情况为一维空间)。在正确的情况下,同一变量在不同进程间的多维计算空间信息是完全相同的,因此需要检查各变量的全局多维计算空间信息的一致性。在上一步确定出了所有变量后,可以检查各变量全局多维计算空间信息在两个进程间的一致性。
对一个变量进行并行输入/输出时,该变量在全局计算空间上的数据已被应用程序分拆到相应通信域内的所有进程之间,而这种分拆被称为并行剖分。在将进程间联合分析的最终结果(即所有异步并行I/O请求和各请求的相关信息)提交给基础文件格式的异步并行I/O系统时,其中各请求的相关信息包括相应变量的并行剖分信息。为了提高并行I/O的性能,基础文件格式异步并行I/O系统通常要基于原有并行剖分信息调整一个变量的数据在多个进程之间的分布(调整后的分布被称为I/O并行剖分),以尽量减少在并行读写文件时的锁冲突和碎片化访问,即需要完成一个变量的数据从原有并行剖分到I/O并行剖分之间的重分布。
对一个变量的数据从原有并行剖分到I/O并行剖分之间的重分布的实现,需要建立相应的并行通信路由,而建立并行通信路由也会带来相应的开销,尤其是在进程数很多且变量多维空间很大的情况下。通常情况下,一个应用程序的大部分变量都会使用相同的全局多维计算空间和相同的并行剖分,因此可以通过复用同一个原有并行剖分到同一个I/O并行剖分之间的并行通信路由,以提高并行I/O性能。但是,这种复用的实现,首先需要检查两个并行剖分信息是否完全相同。
在并行剖分信息分散存放在多个进程的前提下,比较两个并行剖分信息是否完全相同的一种实现方法是:先在各进程内比较两个并行剖分的局部并行剖分信息是否相同,然后把比较结果在所有进程之间进行汇总;只有在所有进程内的局部信息都相同时,两个并行剖分信息才相同。该方法存在以下不足:a)局部并行剖分信息可能含有很多内容,导致局部信息的对比有较大开销;b)所有进程之间的结果汇总会带来开销很大的全局通信。为了降低开销,本申请提出了建立并行剖分关键字的方法(关键字通常是一个不超过100字符的字符串),基于关键字确认两个并行剖分信息是否完全相同。在进程间联合分析过程中,计算各变量的并行剖分信息的关键字。并行剖分关键字的计算可以包括以下步骤:在第一层分析前,在各进程内确定各个变量,并计算各变量局部并行剖分的关键字,其中关键字不仅包含局部并行剖分的信息,还包含进程的编号;在每一层分析的过程中,计算各变量的并行剖分信息就是将同一变量在两个进程中的并行剖分关键字值进行计算,得到新的关键字值。其中,对于关键字值计算的具体算法可以使用已有成熟的校验和计算方法。
一种可选的实施方式中,计算各变量的并行剖分信息具体可以包括:在第一层分析前,在各进程内确定各个变量,并计算各变量局部并行剖分信息的关键字,关键字根据局部并行剖分信息和进程的编号确定;在每一层分析的过程中,根据同一变量在两个进程中的局部并行剖分信息的关键字得到新的关键字,最终确定各变量的并行剖分信息。采用关键字来表示和区分并行剖分信息,并且在分层分析的计算过程中实现关键字的计算,进一步降低了异步并行I/O请求的进程间联合分析的开销。
图2为本发明一实施例提供的异步并行I/O请求的进程间联合分析装置的结构示意图。如图2所示,本实施例提供的异步并行I/O请求的进程间联合分析装置20可以包括:获取模块201、处理模块202和分析模块203。
获取模块201,用于响应于针对异步并行I/O请求的进程间联合分析指令,获取进程间联合分析指令所对应的在各个进程内的并行I/O请求及其相关信息,并获取进程间联合分析指令所对应的通信域和所有进程;
处理模块202,用于生成所有进程之间的多层分析网络并按照多层分析网络进行逐层的分析;
分析模块203,用于在每一层的分析过程中进行并行I/O请求的联合分析和计算,最终确定联合分析的结果,联合分析的结果包括所有异步并行I/O请求和各个异步并行I/O请求的相关信息。
本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
可选的,多层分析网络的层数根据所有进程的进程数确定,多层分析网络采用蝶形结构、二叉树结构或多叉树结构的分析网络。
可选的,当多层分析网络采用二叉树结构或多叉树结构的分析网络时,在根进程最终确定联合分析的结果之后,根进程将联合分析的结果在所有进程之间进行广播。
可选的,处理模块202按照多层分析网络进行逐层的分析具体可以包括:
遵循多层分析网络的迭代过程中的每个迭代对应着一层分析,每一层分析的联合分析和计算的结果是下一层分析的输入,每一层分析中的一个进程只与另外的一个进程或少数几个进程进行联合分析。
可选的,分析模块203用于进行并行I/O请求的联合分析和计算具体可以包括:
确定不同I/O请求所对应的所有变量,各变量采用变量标识进行标记,变量标识由变量所对应的文件名、在文件中偏移量位置和读/写标志组成;
检查各变量的全局多维计算空间信息在进程间的一致性;
计算各变量的并行剖分信息。
可选的,分析模块203用于确定不同I/O请求所对应的所有变量具体可以包括:对进程上的所有变量标识求并集,得到不同I/O请求所对应的所有变量。
可选的,分析模块203用于计算各变量的并行剖分信息具体可以包括:
在第一层分析前,在各进程内确定各个变量,并计算各变量局部并行剖分信息的关键字,关键字根据局部并行剖分信息和进程的编号确定;
在每一层分析的过程中,根据同一变量在两个进程中的局部并行剖分信息的关键字得到新的关键字,最终确定各变量的并行剖分信息。
可选的,各个异步并行I/O请求的相关信息包括:变量标识、通信域、全局计算空间信息、并行剖分信息和内存数据空间的指针,并行剖分信息包括通过联合分析计算出来的并行剖分的关键字和分散存放在各进程上的局部并行剖分信息。
本发明实施例还提供一种电子设备设备,请参见图3所示,本发明实施例仅以图3为例进行说明,并不表示本发明仅限于此。图3为本发明一实施例提供的电子设备的结构示意图。如图3所示,本实施例提供的电子设备30包括:存储器301、处理器302和总线303。其中,总线303用于实现各元件之间的连接。
存储器301中存储有计算机程序,计算机程序被处理器302执行时可以实现上述任一方法实施例的技术方案。
其中,存储器301和处理器302之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可以通过一条或者多条通信总线或信号线实现电性连接,如可以通过总线303连接。存储器301中存储有实现异步并行I/O请求的进程间联合分析方法的计算机程序,包括至少一个可以软件或固件的形式存储于存储器301中的软件功能模块,处理器302通过运行存储在存储器301内的软件程序以及模块,从而执行各种功能应用以及数据处理。
存储器301可以是,但不限于,随机存取存储器(RandomAccess Memory,简称:RAM),只读存储器(ReadOnly Memory,简称:ROM),可编程只读存储器(ProgrammableRead-Only Memory,简称:PROM),可擦除只读存储器(ErasableProgrammable Read-OnlyMemory,简称:EPROM),电可擦除只读存储器(ElectricErasable Programmable Read-OnlyMemory,简称:EEPROM)等。其中,存储器301用于存储程序,处理器302在接收到执行指令后,执行程序。进一步地,上述存储器301内的软件程序以及模块还可包括操作系统,其可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通信,从而提供其他软件组件的运行环境。
处理器302可以是一种集成电路芯片,具有信号的处理能力。上述的处理器302可以是通用处理器,包括中央处理器(CentralProcessing Unit,简称:CPU)、网络处理器(NetworkProcessor,简称:NP)等。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。可以理解,图3的结构仅为示意,还可以包括比图3中所示更多或者更少的组件,或者具有与图3所示不同的配置。图3中所示的各组件可以采用硬件和/或软件实现。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行以实现上述任一方法实施例的技术方案。
本公开中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
本公开的保护范围不限于上述的实施例,显然,本领域的技术人员可以对本公开进行各种改动和变形而不脱离本公开的范围和精神。倘若这些改动和变形属于本公开权利要求及其等同技术的范围,则本公开的意图也包含这些改动和变形在内。
Claims (10)
1.一种异步并行I/O请求的进程间联合分析方法,其特征在于,包括:
响应于针对异步并行I/O请求的进程间联合分析指令,获取所述进程间联合分析指令所对应的在各个进程内的并行I/O请求及其相关信息,并获取所述进程间联合分析指令所对应的通信域和所有进程;
生成所述所有进程之间的多层分析网络并按照所述多层分析网络进行逐层的分析;
在每一层的分析过程中进行并行I/O请求的联合分析和计算,最终确定联合分析的结果,所述联合分析的结果包括所有异步并行I/O请求和各个异步并行I/O请求的相关信息;
所述按照所述多层分析网络进行逐层的分析,包括:遵循所述多层分析网络的迭代过程中的每个迭代对应着一层分析,每一层分析的联合分析和计算的结果是下一层分析的输入,每一层分析中的一个进程只与另外的一个进程或少数几个进程进行联合分析;
所述进行并行I/O请求的联合分析和计算,包括:确定不同I/O请求所对应的所有变量;计算各变量的并行剖分信息。
2.根据权利要求1所述的方法,其特征在于,所述多层分析网络的层数根据所述所有进程的进程数确定,所述多层分析网络采用蝶形结构、二叉树结构或多叉树结构的分析网络。
3.根据权利要求2所述的方法,其特征在于,当所述多层分析网络采用二叉树结构或多叉树结构的分析网络时,在根进程最终确定联合分析的结果之后,根进程将所述联合分析的结果在所述所有进程之间进行广播。
4.根据权利要求1所述的方法,其特征在于,各变量采用变量标识进行标记,所述变量标识由变量所对应的文件名、在文件中偏移量位置和读/写标志组成;
在所述确定不同I/O请求所对应的所有变量之后,所述方法还包括:检查各变量的全局多维计算空间信息在进程间的一致性。
5.根据权利要求4所述的方法,其特征在于,所述确定不同I/O请求所对应的所有变量包括:
对进程上的所有变量标识求并集,得到不同I/O请求所对应的所有变量。
6.根据权利要求1所述的方法,其特征在于,所述计算各变量的并行剖分信息,包括:
在第一层分析前,在各进程内确定各个变量,并计算各变量局部并行剖分信息的关键字,所述关键字根据局部并行剖分信息和进程的编号确定;
在每一层分析的过程中,根据同一变量在两个进程中的局部并行剖分信息的关键字得到新的关键字,最终确定各变量的并行剖分信息。
7.根据权利要求1-6任一项所述的方法,其特征在于,各个异步并行I/O请求的相关信息包括:变量标识、通信域、全局计算空间信息、并行剖分信息和内存数据空间的指针,所述并行剖分信息包括通过联合分析计算出来的并行剖分的关键字和分散存放在各进程上的局部并行剖分信息。
8.一种异步并行I/O请求的进程间联合分析装置,其特征在于,包括:
获取模块,用于响应于针对异步并行I/O请求的进程间联合分析指令,获取所述进程间联合分析指令所对应的在各个进程内的并行I/O请求及其相关信息,并获取所述进程间联合分析指令所对应的通信域和所有进程;
处理模块,用于生成所述所有进程之间的多层分析网络并按照所述多层分析网络进行逐层的分析;
分析模块,用于在每一层的分析过程中进行并行I/O请求的联合分析和计算,最终确定联合分析的结果,所述联合分析的结果包括所有异步并行I/O请求和各个异步并行I/O请求的相关信息;
所述处理模块用于按照所述多层分析网络进行逐层的分析包括:遵循所述多层分析网络的迭代过程中的每个迭代对应着一层分析,每一层分析的联合分析和计算的结果是下一层分析的输入,每一层分析中的一个进程只与另外的一个进程或少数几个进程进行联合分析;
所述分析模块用于进行并行I/O请求的联合分析和计算包括:确定不同I/O请求所对应的所有变量;计算各变量的并行剖分信息。
9.一种电子设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1-7任一项所述的异步并行I/O请求的进程间联合分析方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-7任一项所述的异步并行I/O请求的进程间联合分析方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310193319.XA CN115858183B (zh) | 2023-03-03 | 2023-03-03 | 异步并行i/o请求的进程间联合分析方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310193319.XA CN115858183B (zh) | 2023-03-03 | 2023-03-03 | 异步并行i/o请求的进程间联合分析方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115858183A CN115858183A (zh) | 2023-03-28 |
CN115858183B true CN115858183B (zh) | 2023-06-13 |
Family
ID=85659770
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310193319.XA Active CN115858183B (zh) | 2023-03-03 | 2023-03-03 | 异步并行i/o请求的进程间联合分析方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115858183B (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7249355B2 (en) * | 2002-12-18 | 2007-07-24 | Microsoft Corporation | Unified network thread management |
CN104636201B (zh) * | 2013-11-15 | 2018-02-02 | 中国电信股份有限公司 | 一种虚拟i/o 调度方法和系统 |
US10853365B2 (en) * | 2014-03-28 | 2020-12-01 | Hitachi, Ltd. | Database management system, computer, and database management method |
US9304702B2 (en) * | 2014-05-29 | 2016-04-05 | Netapp, Inc. | System and method for parallelized performance data collection in a computing system |
US10241920B2 (en) * | 2015-07-31 | 2019-03-26 | Oracle International Corporation | Systems and methods for coordinating interdependent asynchronous reads |
US20210064234A1 (en) * | 2019-04-16 | 2021-03-04 | Formulus Black Corporation | Systems, devices, and methods for implementing in-memory computing |
CN115033529B (zh) * | 2022-08-11 | 2022-12-06 | 北京卡普拉科技有限公司 | 一种异步i/o适配方法、系统、存储介质及电子设备 |
-
2023
- 2023-03-03 CN CN202310193319.XA patent/CN115858183B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN115858183A (zh) | 2023-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6427592B2 (ja) | データ型に関連するデータプロファイリング操作の管理 | |
US7840585B2 (en) | DISCOSQL: distributed processing of structured queries | |
CN111339041A (zh) | 文件解析入库、文件生成方法及装置 | |
US20080313610A1 (en) | Discoscript: a simplified distributed computing scripting language | |
US20090094609A1 (en) | Dynamically providing a localized user interface language resource | |
CN101183379A (zh) | 用于检索数据的方法和系统 | |
US11704345B2 (en) | Inferring location attributes from data entries | |
US20200175032A1 (en) | Dynamic data visualization from factual statements in text | |
CN110647318A (zh) | 一种有状态应用的实例创建方法、装置、设备及介质 | |
CN113468204A (zh) | 一种数据查询方法、装置、设备、介质 | |
CN115599386A (zh) | 代码生成方法、装置、设备及存储介质 | |
US11074260B2 (en) | Space-efficient methodology for representing label information in large graph data for fast distributed graph query | |
CN110362404B (zh) | 一种基于sql的资源分配方法、装置和电子设备 | |
CN117874118A (zh) | 特征数据转换方法、装置、电子设备和可读存储介质 | |
CN115858183B (zh) | 异步并行i/o请求的进程间联合分析方法、装置及设备 | |
CN111125216A (zh) | 数据导入Phoenix的方法及装置 | |
CN116842012A (zh) | 一种Redis集群的分片存储方法、装置、设备及存储介质 | |
CN113176877B (zh) | 实体类生成方法、装置及存储介质 | |
US20220350797A1 (en) | Providing container images | |
CN113254455A (zh) | 数据库的动态配置方法、装置、计算机设备及存储介质 | |
US20210240469A1 (en) | Method and apparatus for managing modules | |
US11836426B1 (en) | Early detection of sequential access violations for high level synthesis | |
CN117573199B (zh) | 一种模型差异对比分析方法、装置、设备及介质 | |
KR101441000B1 (ko) | 병렬처리 기반 트리플 데이터에 대한 변경 탐지 방법 | |
WO2024156113A1 (en) | Runtime error attribution for database queries specified using a declarative database query language |
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 |