一种异步输入输出线程处理器资源分配方法及装置制造方法及图纸

技术编号:35554650 阅读:10 留言:0更新日期:2022-11-12 15:35
本发明专利技术提供了一种异步输入输出线程处理器资源分配方法及装置,涉及计算机技术领域,该方法包括判断当前是否存在待处理的异步输入/输出请求,若当前不存在待处理的异步输入/输出请求,则控制输入输出专用线程进入第一休眠状态;当所述输入输出专用线程处于所述第一休眠状态时,若接收到应用程序发起的异步输入/输出请求,则控制所述输入输出专用线程由所述第一休眠状态转换至活跃状态。本发明专利技术提供的异步输入输出线程处理器资源分配方法能够令输入输出专用线程在没有待处理的异步输入/输出请求时进入第一休眠状态,避免无效的占用处理器资源,提高应用程序的整体效率。提高应用程序的整体效率。提高应用程序的整体效率。

【技术实现步骤摘要】
一种异步输入输出线程处理器资源分配方法及装置


[0001]本申请涉及计算机
,特别涉及一种异步输入输出线程处理器资源分配方法及装置。

技术介绍

[0002]随着计算机数据处理能力的不断增强、各类应用的需求不断提高,应用程序处理数据的计算量也不断增加,相应的,从文件系统中输入或输出(Input/Output,I/O)的数据量也不断增大。由于I/O数据传输能力的增长速度慢于计算能力的增长速度,故数据I/O速度在许多场景下成为应用程序运行的性能瓶颈。
[0003]为降低I/O开销带来的影响,可以使用并行I/O技术或异步I/O技术。其中并行I/O技术可以充分利用计算机的并行存储能力,将应用程序的数据分散存放与多个进程上,多个进程协同进行文件数据的读写,从而提高数据读入写出传输速度。例如中国专利CN114138381公开了一种数值程序的处理系统,用于完成分布式计算的多维变量的同步/异步并行读入/写出,但在并行设置下会存在I/O过程与计算过程的重叠。异步I/O技术使用计算机进程或线程以外的I/O专用进程或线程完成数据读入写出传输,使得应用程序无需等待I/O操作的完成即可执行其他计算,使两者可以重叠同时进行,缩短整体耗时。在此基础上,兼顾并行I/O技术和异步I/O技术的并行异步I/O方法可以进一步降低I/O开销对应用程序运行速度的影响。
[0004]目前的异步I/O技术主要包括两种实现途径,一种是使用专用的I/O进程,一种是使用专用的I/O线程。其中I/O专用进程是应用程序原有计算进程以外的独立进程,在启动应用程序运行时,需要给各I/O进程分配额外的独立计算资源。而各专用的I/O线程由应用程序的计算进程根据需要自动创建,因此在提交应用程序时无需给I/O专用线程分配独立的计算资源。虽然专用线程的方式相较于专用进程,无需分配额外的计算资源,但I/O专用线程会与应用程序计算线程竞争使用处理器资源,为程序运行带来新的开销。

技术实现思路

[0005]为解决现有的异步输入输出线程数据传输方式占用处理器资源较大的问题,本申请提供一种异步输入输出线程处理器资源分配方法,从而能够充分降低数据读入和写出的处理器资源开销。
[0006]一方面,提供了一种异步输入输出线程处理器资源分配方法,包括:判断当前是否存在待处理的异步输入/输出请求,若当前不存在待处理的异步输入/输出请求,则控制输入输出专用线程进入第一休眠状态;当所述输入输出专用线程处于所述第一休眠状态时,若接收到应用程序发起的异步输入/输出请求,则控制所述输入输出专用线程由所述第一休眠状态转换至活跃状态。
[0007]另一方面,提供了一种异步输入输出线程处理器资源分配装置,所述装置包括:第一休眠控制模块,用于判断当前是否存在待处理的异步输入/输出请求,若当前
不存在待处理的异步输入/输出请求,则控制输入输出专用线程进入第一休眠状态;第一休眠转换模块,用于当所述输入输出专用线程处于第一休眠状态时,若接收到应用程序发起的异步输入/输出请求,则控制所述输入输出专用线程由所述第一休眠状态转换至活跃状态。
[0008]另一方面,提供了一种计算机设备,计算机设备包括处理器和存储器,存储器中存储有至少一条指令、至少一段程序、代码集或指令集,处理器可加载并执行至少一条指令、至少一段程序、代码集或指令集,以实现上述实施例中提供的异步输入输出线程处理器资源分配方法。
[0009]另一方面,提供了一种计算机可读存储介质,可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,处理器可加载并执行至少一条指令、至少一段程序、代码集或指令集,以实现上述实施例中提供的异步输入输出线程处理器资源分配方法。
[0010]另一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产权或计算机程序包括计算机程序指令,该计算机程序指令存储于计算机可读存储介质中。处理器从计算机可读存储介质读取该计算机指令,并执行还计算机指令,使得该计算机设备执行上述实施例所述的异步输入输出线程处理器资源分配方法。
[0011]本申请提供的技术方案带来的有益效果至少包括:本专利技术实施例提供了一种异步输入输出线程处理器资源分配方法,包括判断当前是否存在待处理的异步输入/输出请求,若当前不存在待处理的异步输入/输出请求,则控制输入输出专用线程进入第一休眠状态;当所述输入输出专用线程处于所述第一休眠状态时,若接收到应用程序发起的异步输入/输出请求,则控制所述输入输出专用线程由所述第一休眠状态转换至活跃状态。本专利技术实施例提供的方法能够令输入输出专用线程在没有待处理的异步输入/输出请求时进入第一休眠状态,避免无效的占用处理器资源,提高应用程序的整体效率。
附图说明
[0012]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0013]图1示出了本申请一个示例性实施例提供的一种异步输入输出线程处理器资源分配方法的实现流程示意图;图2示出了本申请一个示例性实施例提供的一种异步输入输出线程处理器分配装置的结构图;图3示出了本申请一个示例性实施例提供的一种异步输入输出线程处理器分配方法对应的计算机设备的结构示意图。
具体实施方式
[0014]为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
[0015]传统的使用专用的I/O进程或专用的I/O线程均会占用较大的处理器资源。在一个
具体的示例中,若某应用程序采用1024进程/处理器核进行并行计算,使用16个I/O进程则需要在提交应用程序时申请1040个进程/处理器核,即原进程/处理器核与I/O进程数量之和。若上述应用程序使用16个I/O线程,则在提交应用程序时仍需申请1024个进程/处理器核。
[0016]在I/O专用线程与应用程序计算线程竞争使用处理器资源时,会带来新的开销。例如某64个处理器核的计算节点上运行着64个计算线程,生成一个I/O专用线程后,该I/O专用线程会与64个计算线程竞争使用64个处理器核。当上述I/O专用线程与64个计算线程都满负荷运行时,不会主动释放处理器资源,操作系统只能通过调度和线程上下文切换使得65个线程分时共享64个处理器核。在此情况下,I/O专用线程会导致约1/64的开销。且I/O专用线程负责的数据读写操作最终由操作系统的专用进程/线程完成,这些操作系统专用进程/线程也会占用处理器资源,带来一定的开销。
[0017]本申请提供的异步输入输出线程处理器资源分配方法,可以在应用程序的输入输出专用线程和计算线程之间合理分配处理器资源,提高应用程序的整体效率。
[0018]实施例一、图1示出了申请一个示例性实施例提供的异步输入输出线程处理器资源分配方法的实现流程示意图。
[0019]参见图1,本专利技术实施例提供本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种异步输入输出线程处理器资源分配方法,其特征在于,包括:判断当前是否存在待处理的异步输入/输出请求,若当前不存在待处理的异步输入/输出请求,则控制输入输出专用线程进入第一休眠状态;当所述输入输出专用线程处于所述第一休眠状态时,若接收到应用程序发起的异步输入/输出请求,则控制所述输入输出专用线程由所述第一休眠状态转换至活跃状态。2.根据权利要求1所述的方法,其特征在于,所述控制输入输出专用线程进入第一休眠状态和所述控制所述输入输出专用线程由所述第一休眠状态转换至活跃状态,包括:基于通过操作和释放操作,实现所述控制输入输出专用线程进入第一休眠状态和所述控制所述输入输出专用线程由所述第一休眠状态转换至活跃状态。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:判断当前是否存在正在进行的文件读写操作,若当前存在正在进行的文件读写操作,则控制所述输入输出专用线程进入第二休眠状态;当所述输入输出专用线程处于所述第二休眠状态时,当所述文件读写操作完成,则控制所述输入输出专用线程由所述第二休眠状态转换至活跃状态。4.根据权利要求3所述的方法,其特征在于,所述控制所述输入输出专用线程进入第二休眠状态和所述控制所述输入输出专用线程由所述第二休眠状态转换至活跃状态,包括:基于进程挂起操作实现所述控制所述输入输出专用线程进入第二休眠状态和所述控制所述输入输出专用线程由所述第二休眠状态转换至活跃状态。5.根据权利要求4所述的方法,其特征在于,所述进程挂起操作的挂起时间确定过程包括:基于预设的挂起时间阈值和/或读写操作的数据大小,确定所述进程挂起操作的挂起时间。6.根据权利要求1所述的方法,其特征在于,所述方法还包括:判断...

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

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

1