串行I/O访问的并行I/O控制方法、装置及设备制造方法及图纸

技术编号:36357768 阅读:14 留言:0更新日期:2023-01-14 18:14
本发明专利技术实施例提供一种串行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控制方法、装置及设备


[0001]本专利技术实施例涉及I/O请求处理
,具体涉及一种串行I/O访问的并行I/O控制方法、装置及设备。

技术介绍

[0002]应用程序在运行过程中,需要基于文件读取的方式从存储介质中输入数据,并以文件写出的方式将计算结果输出到存储介质上。数据输入/输出(Input/Output,I/O)是应用程序计算处理过程中速度最慢的环节,成为制约应用程序性能的瓶颈。随着应用需求的不断提高,应用程序的计算量和需要处理的数据量不断增加。随着计算机处理能力的不断提高,现代高性能计算机不仅为加速计算提供了众多可以并行的处理器核,而且为加速I/O提供了包含硬件和并行文件系统的并行存储功能。
[0003]为了让应用程序充分利用并行存储功能,以尽量降低I/O开销对应用程序运行速度的影响,出现了并行I/O技术。并行I/O技术直接或间接使用I/O消息传递接口(Message Passing Interface
‑ꢀ
I/O,MPI

IO)得以实现。因此,采用并行I/O技术加速I/O的一个基本前提,就是应用程序是基于MPI并行化实现的多进程并行程序。但是依然存在大量I/O开销很大的串行程序或者采用串行文件格式的应用程序,由于无法采用并行I/O技术,只能以串行的方式输入和输出数据,无法利用并行存储功能来降低I/O开销。
[0004]综上所述,亟需一种方法来降低串行程序或者采用串行文件格式的应用程序的I/O开销,以提高程序性能。

技术实现思路

[0005]本专利技术实施例提供一种串行I/O访问的并行I/O控制方法、装置及设备,用以解决现有方法中串行程序或者采用串行文件格式的应用程序I/O开销大的问题。
[0006]第一方面,本专利技术实施例提供一种串行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请求。
[0007]一种实施例中,在I/O专用进程上运行并行I/O系统,并使用并行I/O系统执行I/O服务命令对应的I/O请求,包括:在I/O专用进程上运行异步并行I/O系统,并使用异步并行I/O系统执行I/O服务命令对应的I/O请求。
[0008]一种实施例中,确定I/O专用进程,包括:获取I/O专用进程的I/O进程数,当所述I/O进程数大于预设I/O进程数上限阈值
时,将所述I/O进程数设为所述预设I/O进程数上限阈值;判断I/O进程数对应的进程是否已经启动;若已启动,则复用I/O进程数对应的进程作为I/O专用进程;若未启动,则采用消息传递接口运行命令启动I/O进程数个进程作为I/O专用进程。
[0009]一种实施例中,使用并行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专用进程发送至应用程序的进程。
[0010]一种实施例中,专用通信渠道基于进程间的匿名管道、命名管道、消息队列或者虚拟共享内存实现。
[0011]一种实施例中,当I/O服务方式为I/O专用进程服务时,所述方法还包括:在处理完所有I/O请求之后,控制I/O专用进程进入不占用处理器资源的休眠状态。
[0012]一种实施例中,所述方法还包括:当I/O服务方式为I/O专用线程服务时,应用程序的进程启动I/O专用线程;通过共享内存的方式将I/O请求的信息从应用程序的进程发送至I/O专用线程;利用I/O专用线程的异步I/O功能执行I/O请求对应的相应操作,得到I/O请求的处理结果;通过共享内存的方式将I/O请求的处理结果从I/O专用线程发送至应用程序的进程。
[0013]一种实施例中,I/O请求包括:同步数据输入请求、同步数据输出请求、异步数据输入请求、异步数据输出请求和等待异步I/O完成的请求。
[0014]第二方面,本专利技术实施例提供一种串行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请求。
[0015]第三方面,本专利技术实施例提供一种电子设备,包括:至少一个处理器和存储器;存储器存储计算机执行指令;至少一个处理器执行存储器存储的计算机执行指令,使得至少一个处理器执行如第一方面任一项所述的串行I/O访问的并行I/O控制方法。
[0016]第四方面,本专利技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现如第一方面任一项所述的串行I/O访问的并行I/O控制方法。
[0017]本专利技术实施例提供的串行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开销,有助于提高应用程序的性能。
附图说明
[0018]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本专利技术的实施例,并与说明书一起用于解释本专利技术的原理。
[0019]图1为本专利技术一实施例提供的串行I/O访问的并行I/O控制方法的流程图;图2为本专利技术又一实施例提供的串行I/O访问的并行I/O控制方法的流程图;图3为本专利技术另一实施例提供的串行I/O访问的并行I/O控制方法的流程图;图4为本专利技术又一实施例提供的串行I/O访问的并行I/O控制方法的流程图;图5为本专利技术一实施例提供的串行I/O访问的并行I/O控制装置的结构示意图;图6为本专利技术一实施例提供的电子设备的结构示意图。
[0020]通过上述附图,已示出本专利技术明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本专利技术构思的范围,而是通过参考特定实施例本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种串行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请求。2.根据权利要求1所述的方法,其特征在于,所述在所述I/O专用进程上运行并行I/O系统,并使用所述并行I/O系统执行所述I/O服务命令对应的I/O请求,包括:在所述I/O专用进程上运行异步并行I/O系统,并使用所述异步并行I/O系统执行所述I/O服务命令对应的I/O请求。3.根据权利要求1所述的方法,其特征在于,所述确定I/O专用进程,包括:获取所述I/O专用进程的I/O进程数,当所述I/O进程数大于预设I/O进程数上限阈值时,将所述I/O进程数设为所述预设I/O进程数上限阈值;判断所述I/O进程数对应的进程是否已经启动;若已启动,则复用所述I/O进程数对应的进程作为I/O专用进程;若未启动,则采用消息传递接口运行命令启动所述I/O进程数个进程作为I/O专用进程。4.根据权利要求1所述的方法,其特征在于,所述使用所述并行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专用进程发送至所述应用程序的进程。5.根据权利要求4所述的方法,其特征在于,所述专用通信渠道基于进程间的匿名管道、命名管道、消息队列或者虚拟共享内存实现。6.根据权利要求1

5任一项所述...

【专利技术属性】
技术研发人员:李锐喆赵彤
申请(专利权)人:北京卡普拉科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1