异步I/O线程处理器资源调度控制方法、装置、介质及设备制造方法及图纸

技术编号:36711576 阅读:18 留言:0更新日期:2023-03-01 09:39
本发明专利技术涉及异步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线程处理器资源调度控制方法、装置、介质及设备。

技术介绍

[0002]随着计算机计算能力的不断增强、应用需求的不断提高,应用程序所处理的数据计算量不断增加,从文件系统中输入和输出(Input/Output,I/O)的数据量也不断增大。由于I/O速度的增长远慢于计算能力的增长,使得数据I/O逐渐成为大多数应用程序运行速度的性能瓶颈。为降低I/O开销所带来的影响,并行I/O技术与异步I/O技术应运而生。
[0003]并行I/O技术利用计算机的并行存储能力,将应用程序的数据分散存放在多个进程上,多个进程则通过协同进行文件数据的读写,从而提高I/O的速度。异步I/O技术是采用计算进程/线程以外的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进程分配额外的独立计算资源。例如应用程序原本采用1024进程/处理器核进行并行计算,如果要使用16个I/O进程,则需要在提交应用程序时申请1024+16=1040个进程/处理器核。
[0005]另一种途径是使用专用的I/O线程。各I/O线程由应用程序的计算线程自动创建,然后在相应计算线程的计算节点上运行。
[0006]经过申请人的分析,与计算线程同在一个计算节点上的I/O线程,可能会面临以下几种情况:1)计算节点的处理器上有专门运行I/O线程的处理器核。I/O线程的工作以通信和I/O为主,没有实际计算量,而且以整数计算为主,经简化设计的处理器核足以能支撑I/O线程的运行。随着处理器架构的快速发展,未来可能出现专门用于运行I/O线程的I/O处理器核。
[0007]2)计算节点的处理器上没有专门运行I/O线程的处理器核,但在启动应用程序的运行时,已在计算节点上预留了运行I/O线程的处理器核数,即计算线程与I/O线程的总数不超过处理器的总核数。例如在处理器总核数为64的计算节点上,共运行62个计算线程,预留了2个可用于运行I/O线程的处理器核。
[0008]3)计算线程与I/O线程的总数超过了处理器的总核数。例如在总核数为64的计算节点上,共运行64个计算线程,新启动的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请求时,所有I/O线程几乎同时获取到处理器资源,则能保证I/O请求的高效完成,并进一步降低I/O线程对计算线程的影响。但是,现有技术无法实现在不同计算节点上对I/O线程进行统一调度。

技术实现思路

[0010]为了实现在不同计算节点上对I/O线程进行统一调度,本专利技术提供一种异步I/O线程处理器资源调度控制方法、装置、介质及设备。
[0011]第一方面,本专利技术实施例提供一种异步I/O线程处理器资源调度控制方法,包括:响应于应用程序对I/O线程的启动,获取对I/O线程的处理器资源配置方式,所述处理器资源配置方式包括固定配置方式、无竞争动态配置方式、有竞争力动态配置方式中的一种;基于所述处理器资源配置方式调度I/O线程占用处理器资源;其中,在所述处理器资源配置方式为有竞争动态配置方式的情况下,实时监测所有I/O线程协同工作时的同步等待开销,并结合所述同步等待开销调度I/O线程占用处理器资源;在所述处理器资源配置方式为无竞争动态配置方式或者有竞争动态配置方式的情况下,允许各I/O线程在多个处理器核上运行。
[0012]在一些实现方式中,在所述处理器资源配置方式为固定配置方式的情况下,获取针对固定配置方式所指定的若干处理器核的编号或关键字,基于所述编号或所述关键字,使各I/O线程固定在所述若干处理器核上运行。
[0013]在一些实现方式中,所述实时监测所有I/O线程协同工作时的同步等待开销,包括:在所有I/O线程为协同取出同一个I/O请求而进行同步时I/O线程之间相互交换启动同步时的物理时间,将各I/O线程对应的物理时间中最晚和最早的物理时间之间的差值确定为所有I/O线程协同工作时的同步等待开销。
[0014]在一些实现方式中,所述结合所述同步等待开销调度I/O线程占用处理器资源,包括:在响应应用程序发起的I/O相关指令时,若所述同步等待开销超过第一阈值,则提高所有I/O线程的优先级。
[0015]在一些实现方式中,所述结合所述同步等待开销调度I/O线程占用处理器资源,还包括:动态监测I/O线程的处理器资源占用时间;在I/O线程的处理器资源占用时间超过第二阈值的情况下,各I/O线程休眠设定时长。
[0016]在一些实现方式中,所述第一阈值为预设值,或者,所述第一阈值是在应用程序启动异步并行I/O系统时通过自动采样确定的。
[0017]在一些实现方式中,所述方法还包括:在应用程序启动异步并行I/O系统时,所有计算线程休眠以释放处理器资源;在所有I/O线程均获得处理器资源的情况下,自动测试并采样所有I/O线程进行同步的同步等待开销,将该同步等待开销按照预设倍数放大后的数值作为第一阈值。
[0018]在一些实现方式中,所述动态监测I/O线程的处理器资源占用时间,包括:监测I/O线程在完成一个I/O请求时的处理器资源占用时间,所述处理器资源占用时间为结束时间与起始时间之差,所述起始时间为I/O线程从前次休眠结束到再次被唤醒后且已占用到处理器资源的时间,结束时间为完成一个I/O请求时的时间;所述各I/O线程休眠设定时长,包括:在I/O线程完成当前I/O请求后至取出下一I/O请求前,I/O线程按照设定时长启动自主休眠。
[0019]在一些实现方式中,所述允许各I/O线程在多个处理器核上运行和使各I/O线程固定在所述若干处理器核上运行,通过操作系统的亲和度设置命令实现。
[0020]在一些实现方式中,在应用程序发起等待异步I/O请求完成的指令时,若存在尚未完成的I/O请求,则I/O线程在响应被应用程序等待完成的所有本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种异步I/O线程处理器资源调度控制方法,其特征在于,包括:响应于应用程序对I/O线程的启动,获取对I/O线程的处理器资源配置方式,所述处理器资源配置方式包括固定配置方式、无竞争动态配置方式、有竞争力动态配置方式中的一种;基于所述处理器资源配置方式调度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.根据权利要求1所述的异步I/O线程处理器资源调度控制方法,其特征在于,所述结合所述同步等待开销调度I/O线程占用处理器资源,包括:在响应应用程序发起的I/O相关指令时,若所述同步等待开销超过第一阈值,则提高所有I/O线程的优先级。5.根据权利要求4所述的异步I/O线程处理器资源调度控制方法,其特征在于,所述结合所述同步等待开销调度I/O线程占用处理器资源,还包括:动态监测I/O线程的处理器资源占用时间;在I/O线程的处理器资源占用时间超过第二阈值的情况下,各I/O线程休眠设定时长。6.根据权利要求4所述的异步I/O线程处理器资源调度控制方法,其特征在于,所述第一阈值为预设值,或者,所述第一阈值是在应用程序启动异步并行I/O系统时通过自动采样确定的。7.根据权利要求6所述的异步I/O线程处理器资源调度控制方法,其特征在于,所述方法还包括:在应用程序启动异步并行I/O系统时,所有计算线程休眠以释放处理器资源;在所有I/O线程均获...

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

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

1