一种异步I/O适配方法、系统、存储介质及电子设备转让专利
申请号 : CN202210958106.7
文献号 : CN115033529B
文献日 : 2022-12-06
发明人 : 李锐喆 , 赵彤
申请人 : 北京卡普拉科技有限公司
摘要 :
权利要求 :
1.一种异步I/O适配方法,其特征在于,所述方法包括:响应于目标I/O异步执行区域的结束指令,获取所述目标I/O异步执行区域的所有未响应的应用文件格式I/O请求,并对各个未响应的应用文件格式I/O请求进行进程间的联合分析,生成对应的基本文件格式的I/O请求信息;以及,分别根据各个基本文件格式的I/O请求信息,向基本文件格式的异步I/O系统发起相应的基础I/O请求;
其中,所述基本文件格式包括编程语言或MPI‑IO用文件访问命令直接进行操作的文件格式;所述应用文件格式包括为了便于应用程序的访问和对数据的使用而提供的基于基本文件格式的文件格式;所述对各个未响应的应用文件格式I/O请求进行进程间的联合分析,包括:获取所述目标I/O异步执行区域的所述目标通信域内的所有进程;
在所述所有进程的进程间进行联合分析,确定所述所有进程中各个未响应的应用文件格式I/O请求的各个变量标识;
分别根据各个变量标识,确定各进程内所述变量标识对应的应用文件格式I/O请求集,以及,确定所述变量标识对应变量的全局计算空间信息和并行剖分的信息。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:响应于创建指令,根据目标通信域创建应用文件格式I/O请求的目标I/O异步执行区域。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:响应于所述目标I/O异步执行区域的等待完成指令,获取所述目标I/O异步执行区域的所有基础I/O请求;
向基本文件格式的异步I/O系统发送等待完成指令,以使所述基本文件格式的异步I/O系统完成所述目标I/O异步执行区域的所有基础I/O请求的响应。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:当在任意I/O异步执行区域之外检测到集合方式的应用文件格式I/O请求时,对所述集合方式的应用文件格式I/O请求进行进程间的联合分析,生成对应的基本文件格式的I/O请求信息;
根据所述基本文件格式的I/O请求信息,向基本文件格式的异步I/O系统发起基础I/O请求;
向基本文件格式的异步I/O系统发送等待完成指令,以使所述基本文件格式的异步I/O系统完成所述集合方式的应用文件格式I/O请求的响应。
5.根据权利要求1所述的方法,其特征在于,在所述目标I/O异步执行区域内发起的所有应用文件格式I/O请求,均按照异步I/O请求进行处理。
6.根据权利要求2所述的方法,其特征在于,所述目标I/O异步执行区域的所有未响应的应用文件格式I/O请求满足预设条件,所述预设条件包括:应用文件格式I/O请求的当前状态为未响应;
应用文件格式I/O请求无对应的通信域,或者应用文件格式I/O请求对应的通信域与所述目标I/O异步执行区域的通信域相同。
7.根据权利要求1所述的方法,其特征在于,还包括:
响应于应用文件格式的读指令或写指令,获取所述读指令或写指令对应的应用文件格式I/O请求;
将所述应用文件格式I/O请求的当前状态标记为未响应,并保存所述应用文件格式I/O请求的第一信息。
8.根据权利要求7所述的方法,其特征在于,所述第一信息,包括以下至少一项:应用文件格式I/O请求对应的通信域;
应用文件格式I/O请求的读或写标志信息;
应用文件格式I/O请求对应的文件名和在文件中的偏移量位置;
应用文件格式I/O请求对应变量的全局多维计算空间信息;
应用文件格式I/O请求对应变量在当前进程内的局部计算空间信息;
指向该应用文件格式I/O请求对应变量在当前进程内的内存数据空间的指针。
9.根据权利要求1所述的方法,其特征在于,所述生成对应的基本文件格式的I/O请求信息,包括:分别根据各个变量标识对应的文件名和在文件中的偏移量位置,生成与各个应用文件格式I/O请求对应的基本文件格式的I/O请求信息。
10.根据权利要求1 8中任一项所述的方法,其特征在于,在所述对各个未响应的应用~文件格式I/O请求进行进程间的联合分析,生成对应的基本文件格式的I/O请求信息之后,还包括:分别将各个未响应的应用文件格式的I/O请求的当前状态标记为已响应。
11.一种异步I/O适配系统,其特征在于,包括:
转换模块,用于响应于目标I/O异步执行区域的结束指令,获取所述目标I/O异步执行区域的所有未响应的应用文件格式I/O请求,并对各个未响应的应用文件格式I/O请求进行进程间的联合分析,生成对应的基本文件格式的I/O请求信息;以及,分别根据各个基本文件格式的I/O请求信息,向基本文件格式的异步I/O系统发起相应的基础I/O请求;
其中,所述基本文件格式包括编程语言或MPI‑IO用文件访问命令直接进行操作的文件格式;所述应用文件格式包括为了便于应用程序的访问和对数据的使用而提供的基于基本文件格式的文件格式;所述对各个未响应的应用文件格式I/O请求进行进程间的联合分析,包括:获取所述目标I/O异步执行区域的所述目标通信域内的所有进程;
在所述所有进程的进程间进行联合分析,确定所述所有进程中各个未响应的应用文件格式I/O请求的各个变量标识;
分别根据各个变量标识,确定各进程内所述变量标识对应的应用文件格式I/O请求集,以及,确定所述变量标识对应变量的全局计算空间信息和并行剖分的信息。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储的计算机程序,当被一个或多个处理器执行时,实现如权利要求1 10中任一项所述的方法。
~
13.一种电子设备,其特征在于,包括存储器和一个或多个处理器,所述存储器上存储有计算机程序,所述存储器和所述一个或多个处理器之间互相通信连接,当所述计算机程序被所述一个或多个处理器执行时,执行如权利要求1 10中任一项所述的方法。
~
说明书 :
一种异步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请求。
该计算机程序被所述一个或多个处理器执行时,实现如上所述的方法。
PNetCDF等),又能对接基本异步I/O系统,使得使用任意应用文件格式的程序都能便捷和高
效地获得异步I/O功能的加速效果。
附图说明
申请的实施例,对于所属领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根
据提供的附图获得其他的附图。
具体实施方式
请实施例以及实施例中的各个特征,在不相冲突的前提下可以相互结合,所形成的技术方
案均在本申请的保护范围之内。
Fortran等编程语言,以及MPI‑IO等能用文件访问命令直接进行操作的文件格式)。为了便
于应用程序的访问和用户对数据的使用,提供了基于基本格式的应用文件格式,特别是带
有元信息的文件格式及其使用接口。例如在地球科学和数值预报领域,NetCDF及其并行版
本PNetCDF是一种常用的应用文件格式,其制定了描述变量名、变量类型、变量维度、时间信
息等元数据的规则,提供了一系列的专用文件访问接口。
的技术,但还缺乏面向应用文件格式的异步I/O适配的系统技术。
配方法或系统的设计仅需考虑对数据的读写。要使应用文件格式的数据读写能使用基本异
步I/O系统,一个主要挑战是如何从获取到驱动基本异步I/O系统的所需信息。一种直观的
解决方案是改造应用文件格式的已有接口,但这种方案不仅要求修改应用文件格式的管理
程序,还要求大量修改应用程序,因此其不可取。另一种解决方案是设计相应功能模块,以
从应用文件格式的接口中自动提取出基本异步I/O系统所需的信息,实现应用文件格式接
口对异步I/O系统的自动驱动。在实际的应用过程中这种解决方案能最小化对应用程序的
修改,实用性更高。
括系列集合操作接口(如PNetCDF的ncmpi_put_*_all、ncmpi_get_*_all、ncmpi_wait_all
等接口),各集合操作接口会导致同一通信域内所有进程间的同步;其中还可能包括发起异
步数据读写请求的接口(如PNetCDF的ncmpi_iput_*、ncmpi_iget_*等),这些接口所产生的
请求在调用相应集合操作接口(如PNetCDF的ncmpi_wait_all)时确认得以完成。此外,应用
的并行文件格式的数据访问,通常还提供了无需通信域的非集合操作接口,以兼容原有的
串行文件格式。
间的联合分析,生成对应的基础文件格式的I/O请求信息;以及,分别根据各个基础文件格
式的I/O请求信息,向基础文件格式的异步I/O系统发起相应的基础I/O请求。
异步I/O系统(简称基本异步I/O系统)。
按照异步I/O请求的方式进行处理。
PAIOM_end_async(MPI_Comm comm) 该接口为指定的MPI通信域结束一个I/O异步执行区域。
PAIOM_barrier(MPI_Comm comm) 该接口使指定的MPI通信域中的所有进程进行同步。在同步时,本系统可开展I/O请求信息分析转换等工作。
PAIOM_wait(int) 该接口会等待输入参数所指定的I/O异步执行区域中的所有异步I/O请求的完成。
格式I/O请求的信息(将以异步方式处理),还包括应用程序在I/O异步执行区域之外所发起
的应用文件格式集合方式I/O请求信息(将以并行同步方式处理)。
基础文件格式I/O请求的转换,完成对应用文件格式I/O请求信息的响应。
应,且无通信域、或通信域与目标通信域相同。
局部计算空间进行文件数据读写)。
剖分),即根据各变量的全局计算空间和该变量在各进程内的局部计算空间合集,确定该变
量在目标通信域内的并行剖分信息。
移量位置、全局计算空间信息、并行剖分信息、内存数据空间的指针等),建立该变量的基础
文件格式的I/O请求信息,并把相应的应用文件格式I/O请求标记为已响应。
索引范围。在表2列举的含有两个进程的通信域中,各进程读写的所有变量及相应信息。通
过联合两个进程的信息,可以确定该通信域内读或写的所有变量包括“写出A”、“写出C”和
“读入B”,并能确定读写的各变量在该通信域内的并行剖分。
局唯一性的变量标识,即变量标识相同的多个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请求信息的自动转换,可扩展性强;既能面
向多种应用文件格式(比如,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请求信息的自动转换,可扩展性强;既能面向多种应用文件格式(比如,
NetCDF/PNetCDF等),又能对接基本异步I/O系统,使得使用任意应用文件格式的程序都能
便捷和高效地获得异步I/O功能的加速效果。
示,本实施例提供的系统包括:
据I/O请求,均按照异步I/O请求的方式进行处理。该I/O异步执行区域管理模块201还提供
了在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请求信息管理模块203针对各异步I/O请
求,向基础文件格式的异步I/O系统发起相应等待完成命令。等所有异步I/O请求均已完成
时,基础文件格式I/O请求信息管理模块203结束此次操作。
动管理模块205确认本系统是否已被启动,未启动时则启动本系统,然后开启新的I/O异步
执行区域。当应用程序在I/O异步执行区域内提交应用文件格式的一个I/O请求时,系统驱
动管理模块205调用应用文件格式I/O请求信息管理模块202,对该I/O请求进行记录。
息分析转换模块204和基础文件格式I/O请求信息管理模块203,完成基础文件格式I/O请求
信息的建立和提交,使应用文件格式的I/O请求得到响应。当应用程序调用等待异步I/O请
求完成的接口,系统驱动管理模块205调用基础文件格式I/O请求信息管理模块203,完成对
相应I/O异步执行区域的所有异步I/O请求的等待。
请求进行记录;然后调用I/O请求信息分析转换模块204和基础文件格式I/O请求信息管理
模块203,完成基础文件格式I/O请求信息的建立、提交和结束(即等待该基础文件格式I/O
请求的完成)。
局唯一性的变量标识,即变量标识相同的多个I/O请求是读入同一变量或写出同一个变量,
而变量标识不同的两个I/O请求则分别是读和写、或是针对不同变量。其中,所有条件包括:
块/单元布置。
多种应用文件格式(比如,NetCDF/PNetCDF等),又能对接基本异步I/O系统,使得使用任意
应用文件格式的程序都能便捷和高效地获得异步I/O功能的加速效果。
例在此不再重复赘述。
计和理解,或计算机可读存储介质对计算机软件领域的技术人员而言可以是公知和可用
的。计算机可读存储介质的示例包括:磁性介质,例如硬盘、软盘和磁带;光学介质,例如,
CDROM盘和DVD;磁光介质,例如,光盘;和硬件装置,具体被配置以存储和执行计算机程序,
例如,只读存储器(ROM)、随机存取存储器(RAM)、闪存;或服务器、app应用商城等。计算机程
序的示例包括机器代码(例如,由编译器产生的代码)和包含高级代码的文件,可由计算机
通过使用解释器来执行高级代码。所描述的硬件装置可被配置为用作一个或多个软件模
块,以执行以上描述的操作和方法,反之亦然。另外,计算机可读存储介质可分布在联网的
计算机系统中,可以分散的方式存储和执行程序代码或计算机程序。
及通信组件305。
方法的指令,以及应用程序相关的数据。
理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable
Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称
FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行如前述方法实施例中的
方法。
读存储器(Electrically Erasable Programmable Read‑Only Memory,简称EEPROM),可擦
除可编程只读存储器(Erasable Programmable Read‑Only Memory,简称EPROM),可编程只
读存储器(Programmable Read‑Only Memory,简称PROM),只读存储器(Read‑Only Memory,
简称ROM),磁存储器,快闪存储器,磁盘或光盘。
号。所接收的音频信号可以被进一步存储在存储器或通过通信组件发送。音频组件还包括
至少一个扬声器,用于输出音频信号。
Communication,简称NFC)、2G、3G、4G、5G,或它们中的一种或几种的组合。因此相应的该通
信组件305可以包括:Wi‑Fi模块,蓝牙模块,NFC模块。
域的所有未响应的应用文件格式I/O请求,并对各个未响应的应用文件格式I/O请求进行进
程间的联合分析,生成对应的基础文件格式的I/O请求信息;以及,分别根据各个基础文件
格式的I/O请求信息,向基础文件格式的异步I/O系统发起相应的基础I/O请求。具有良好的
通用性和易用性,实现了多种应用文件格式I/O请求信息到基础文件格式I/O请求信息的自
动转换,可扩展性强;既能面向多种应用文件格式(比如,NetCDF/PNetCDF等),又能对接基
本异步I/O系统,使得使用任意应用文件格式的程序都能便捷和高效地获得异步I/O功能的
加速效果。
和框图显示了根据本申请的多个实施例的方法和装置的可能实现的体系架构、功能和操
作。在这点上,流程图或框图中的每个方框可以代表一个模块、计算机程序段或计算机程序
的一部分,模块、计算机程序段或计算机程序的一部分包含一个或多个用于实现规定的逻
辑功能的计算机程序。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也
可以以不同于附图中所标注的顺序发生,实际上也可以基本并行地执行,它们有时也可以
按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方
框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬
件的系统来实现,或者可以用专用硬件与计算机程序的组合来实现。
明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没
有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方
法、装置或者设备中还存在另外的相同要素;如果有描述到“第一”、“第二”等仅用于描述目
的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含
指明所指示的技术特征的先后关系;在本申请的描述中,除非另有说明,术语“多个”、“多”
的含义是指至少两个;如果有描述到服务器,需要说明的是,服务器可以是独立的物理服务
器或终端,也可以是多个物理服务器构成的服务器集群,可以是能够提供云服务器、云数据
库、云存储和CDN等基础云计算服务的云服务器;在本申请中如果有描述到智能终端或移动
设备,需要说明的是,智能终端或移动设备可以是手机、平板电脑、智能手表、上网本、可穿
戴电子设备、个人数字助理(Personal Digital Assistant,PDA)、增强现实技术设备
(Augmented Reality,AR)、虚拟现实设备(Virtual Reality,VR)、智能电视、智能音响、个
人计算机(Personal Computer,PC)等,但并不局限于此,本申请对智能终端或移动设备的
具体形式不做特殊限定。
征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述
术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料
或者特点可以在任何的一个或多个实施例或示例中以合适的方式进行结合。
何本申请所属技术领域内的技术人员,在不脱离本申请所公开的精神和范围的前提下,可
以在实施的形式上及细节上作任何的修改与变化,但本申请的保护范围,仍须以所附的权
利要求书所界定的范围为准。