一种提高计算单元执行效率的方法、系统、设备及介质与流程
未命名
09-22
阅读:60
评论:0
1.本发明属于计算机领域,具体涉及一种提高计算单元执行效率的方法、系统、设备及介质。
背景技术:
2.在计算机中,除计算机的中央处理器之外的其他计算单元或其他计算设备的正常运行均需要运行在计算机上的相关进程进行调度或者说调控。以显卡为例,在使用显卡时必须由计算机上的相关程序来调用显卡,显卡才能工作,如果调用显卡的相关进程卡死或者因其他进程的执行出现卡死导致未能及时与显卡进行通信,则此时的显卡在执行完相关进程给出的任务之后,便会处于空闲状态。对于因相关进程(进程正常,但无法获取到内核的执行权)无法及时与显卡通信的情况被称为“软锁”。对于软锁困境的解决方案中,传统的实现方式主要为:软锁检测,可以频繁地在每个资源请求发生时进行检测。在每次请求资源时检查死锁有两个优点:可以尽早地检测死锁情况;算法相对比较简单,因为这种方法基于系统状态的逐渐变化情况;软锁避免,软锁避免可允许更多的并发进程。在软锁避免中,是否允许当前的资源分配请求是通过判断该请求是否可能导致死锁来决定的。因此,软锁避免需要知道未来进程资源请求的情况;但上述两种方案却存在弊端,例如对于软锁检测来说,虽然可以尽早地检测死锁情况,算法相对比较简单,但这种频繁的检测会耗费相当多的处理器时间,而且搭配高性能gpu需要处理的进程较多,数据量大,延迟进程的初始化,效率较低。对于软锁避免的方法,则需要知道未来进程资源请求的情况,进程可能事先并不知道它所需要的所有资源,增加软锁的可能性,进程长时间堵塞下去可能造成可消耗资源消失,造成i/o异常数据丢失。
3.因此,亟需一种有效的方案来解决上述问题。
技术实现要素:
4.为解决上述问题,本发明提出一种提高计算单元执行效率的方法,包括:获取计算单元的运行状态,计算所述运行状态的状态值;比较计算的所述状态值与预设状态的状态值;响应于计算的所述状态值与预设状态的状态值的差距满足预定条件,提高与所述计算单元运行有关的目标进程的优先级。
5.在本发明的一些实施方式中,获取计算单元的运行状态的步骤包括:统计不可屏蔽中断的产生信息与目标进程与计算单元的交互信息;根据所述不可屏蔽中断的产生信息和计算单元的交互信息计算计算单元执行目标进程的当前任务的执行能力。
6.在本发明的一些实施方式中,计算所述运行状态的状态值的步骤包括:
根据所述执行能力以及计算单元与目标进程最近一次的通信时间确定所述计算单元的执行进度;基于所述执行进度确定所述计算单元的预计空闲时间。
7.在本发明的一些实施方式中,比较计算的所述状态值与预设状态的状态值的步骤包括:比较所述计算单元的预计空闲时间与预定值。
8.在本发明的一些实施方式中,响应于计算的所述状态值与预设状态的状态值的差距满足预定条件,提高与所述计算单元运行有关的目标进程的优先级的步骤包括:响应于所述计算单元的预计空闲时间小于预定值,提高所述目标进程的优先级。
9.在本发明的一些实施方式中,获取计算单元的运行状态的步骤包括:统计不可屏蔽中断事件的产生次数并计算相邻次数的不可屏蔽中断事件的间隔时间。
10.在本发明的一些实施方式中,计算所述运行状态的状态值的步骤包括:基于所述计算单元与目标进程最近一次的通信时间以及当前时间确定计算单元的独立运行时间。
11.在本发明的一些实施方式中,比较计算的所述状态值与预设状态的状态值的步骤包括:基于相邻次数的不可屏蔽中断事件的间隔时间计算产生不可屏蔽中断的平均时间;比较所述独立运行时间与所述平均时间。
12.在本发明的一些实施方式中,响应于计算的所述状态值与预设状态的状态值的差距满足预定条件,提高与所述计算单元运行有关的目标进程的优先级的步骤包括:响应于所述独立运行时间与所述平均时间的差值小于预定值,将所述目标进程的优先级提高。
13.在本发明的一些实施方式中,获取计算单元的运行状态,计算所述运行状态的状态值的步骤包括:获取所述计算单元处理所述目标进程的给出的计算任务的处理速度和所述目标进程与计算单元的通信数据量;基于所述处理速度和通信数据量计算所述计算单元的运行状态的状态值。
14.在本发明的一些实施方式中,基于所述处理速度和通信数据量计算所述计算单元的运行状态的状态值包括:根据计算单元发起不可屏蔽中断事件的间隔时间以及目标进程与计算单元的通信数据量计算所述计算单元在当前目标进程的计算任务下的平均处理速度;基于所述平均处理速度以及所述目标进程在所述计算单元最近一次发起不可屏蔽中断事件之后所述目标进程与所述计算单元的通信数据量,确定所述计算单元的运行状态的状态值。
15.在本发明的一些实施方式中,根据计算单元发起不可屏蔽中断事件的间隔时间以及目标进程与计算单元的通信数据量计算所述计算单元在当前目标进程的计算任务下的平均处理速度的步骤包括:
统计不可屏蔽中断事件的产生次数并计算相邻次数的不可屏蔽中断事件的间隔时间;监控在相邻不可屏蔽中断事件的间隔时间内目标进程与计算单元的通信数据量;基于所述通信数据量和所述间隔时间计算所述计算单元处理当前目标进程的计算任务的处理速度;基于多个相邻不可屏蔽中断事件的间隔时间所对应的所述处理速度计算所述计算单元的在当前目标进程的计算任务下的平均处理速度。
16.在本发明的一些实施方式中,基于所述平均处理速度以及所述目标进程在所述计算单元最近一次发起不可屏蔽中断事件之后所述目标进程与所述计算单元的通信数据量,确定所述计算单元的运行状态的状态值的步骤包括:根据所述平均处理速度以及所述目标进程在所述计算单元最近一次发起不可屏蔽中断之后经过的时间,计算所述计算单元完成计算的数据量;计算所述完成计算的数据量与通信数据量的比值,并将所述比值作为所述计算单元的运行状态的状态值。
17.在本发明的一些实施方式中,响应于计算的所述状态值与预设状态的状态值的差距满足预定条件,提高与所述计算单元运行有关的目标进程的优先级的步骤包括:响应于计算的所述状态值与预设状态的状态值的差距满足预定条件,提高与所述计算单元运行有关的目标进程的优先级。
18.在本发明的一些实施方式中,提高与所述计算单元运行有关的目标进程的优先级的步骤包括:获取当前系统中所有进程的优先级,将所有进程中优先级最高的进程的优先级等级作为参考优先级;将所述目标进程的优先级设置为高于所述参考优先级。
19.在本发明的一些实施方式中,将所述目标进程的优先级设置为高于所述参考优先级的步骤包括:响应于所述参考优先级为当前系统中的最高优先级,将所述目标进程设置为最高优先级,并将属于最高优先级的其他进程的优先级降低一级。
20.在本发明的一些实施方式中,还包括:判断当前系统所有进程的优先级是否满足次第分布,对满足次第分布的进程的优先级全部降低一级。
21.在本发明的一些实施方式中,将所述目标进程的优先级设置为高于所述参考优先级的步骤还包括:响应于对所述目标进程的优先级设置完成,将当前系统的进程管理队列清空。
22.在本发明的一些实施方式中,提高与所述计算单元运行有关的目标进程的优先级的步骤包括:针对预设状态预先设定不同的预定条件并分别对应不同的优先级策略;响应于所述运行状态的所述状态值满足不同的预定条件,则针对不同的运行状态采用不同的优先级策略提高与所述计算单元运行有关的目标进程的优先级。
23.在本发明的一些实施方式中,方法还包括:
在计算单元上监控计算单元的运行状态,响应于所述计算单元的运行状态为空闲,通过计算单元向中央处理器发送不可屏蔽中断。
24.在本发明的一些实施方式中,方法还包括:响应于接收到所述不可屏蔽中断,中央处理器将所述目标进程的优先级设置为当前系统的最高优先级。
25.本发明的另一方面还提出一种提高计算单元执行效率的系统,包括:计算单元状态确定模块,所述计算单元状态确定模块配置用于获取计算单元的运行状态,计算所述运行状态的状态值;比较模块,所述比较模块配置用于比较计算的所述状态值与预设状态的状态值;优先级调控模块,所述优先级调控模块配置用于响应于计算的所述状态值与预设状态的状态值的差距满足预定条件,提高与所述计算单元运行有关的目标进程的优先级。
26.本发明的又一方面还提出一种计算机设备,包括:至少一个处理器;以及存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现上述实施方式中任意一项所述方法的步骤。
27.本发明的再一方面还提出一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述实施方式中任意一项所述方法的步骤。
28.通过本发明提出的一种提高计算单元执行效率的方法,通过监控计算单元的状态并计算对应的状态值,将状态值与预设的状态值进行比较,根据比较的结果,来评估计算单元的状态是否即将进入预设的状态,并在其进入预定状态前提高与该计算单元进行交互的目标进程的优先级,可以有效解决因目标进程的死锁导致的计算单元的闲置。提升整个计算单元在具体的业务应用下的利用率以及维持业务系统的高效运行。
附图说明
29.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
30.图1为本发明实施例提供的一种提高计算单元执行效率的方法的流程示意图;图2为本发明实施例提供的一种提高计算单元执行效率的系统的结构示意图;图3为本发明实施例提供的一种计算机设备的结构示意图;图4为本发明实施例提供的一种计算机可读存储介质的结构示意图;图5为本发明实施例提供的一种提高计算单元执行效率的方法实施示意图。
具体实施方式
31.为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
32.本发明旨在解决除计算机上中央处理器之外的其他计算单元因运行在处理器内
核的相关进程出现死锁时导致的计算单元闲置问题。
33.如图1所示,为解决上述问题,本发明提出一种提高计算单元执行效率的方法,包括:步骤s1、获取计算单元的运行状态,计算所述运行状态的状态值;步骤s2、比较计算的所述状态值与预设状态的状态值;步骤s3、响应于计算的所述状态值与预设状态的状态值的差距满足预定条件,提高与所述计算单元运行有关的目标进程的优先级。
34.在本发明的一些实施例中,计算单元可以是计算机上的协处理器、fpga加速单元、gpu以及不同功能的其运算需要与计算机交互的计算设备,上述计算单元的运行需要计算机的操作系统中相应的进程与之通信或交互,故而与上述计算单元通信的相关进程在本发明的实施例中被称之为目标进程。也可以是分布式计算系统上的一个计算节点,此时的目标进程则是控制分布式系统上的多个计算节点运行状态或计算任务的控制程序。目标进程运行在服务器上或者是其他的计算机设备上的与计算单元通信的应用程序。即在本发明的实施例中,目标进程与计算单元的计算任务具有密切的相关关系。
35.进一步,在步骤s1中,获取相应的计算单元的运行状态,并根据不同的运算状态计算对应的状态值。
36.在步骤s2中,将步骤s1中计算得到状态值和预先设置或者是动态制定的状态值进行对比。
37.进一步,在步骤s3中,如果对应的计算单元的状态值和预设状态的状态值的比较结果满足预定的条件,则将计算机与对应的计算单元相关的目标进程的优先级提高。
38.在本发明的一些实施方式中,获取计算单元的运行状态的步骤包括:统计不可屏蔽中断的产生信息与目标进程与计算单元的交互信息;根据所述不可屏蔽中断的产生信息和计算单元的交互信息计算计算单元执行目标进程的当前任务的执行能力。
39.在本发明的一些实施例中,在计算机上统计计算单元发起的不可屏蔽中断,即nmi(non maskable interrupt)中断的产生信息和计算机上与对应的计算单元交互的目标进程与计算单元的交互信息。不可屏蔽中断的产生信息包括:对应的计算单元所发起的nmi中断的次数,包括一段时间内相应的计算单元发起的nmi中断的次数,每次发起nmi中断的具体时间等相关信息;目标进程与计算单元的交互信息,包括向计算单元发送数据以及指令、以及从计算单元接收数据(一些情况下可能从计算单元操作的内存空间或者是其他存储介质中接收),或者是计算单元发出的相应地的响应指令等交互信息。
40.进一步,在一些实施例中,对于计算单元与计算机上的目标进程的指令类型交互信息,需要针对相应的目标进程的与计算单元的既定的工作方式的预先配置方可实现对相应的交互信息的识别,以及对相应指令对计算单元的状态的影响的分析。
41.进一步,根据不可屏蔽中断的产生信息以及目标进程的与计算单元的交互信息计算对应的计算单元执行目标进程给出的当前任务的执行能力。
42.所谓执行能力是指计算单元根据其计算类型或业务类型完成目标进程发出的计算任务的执行能力。例如,如果是加密/解密的加速卡,如果加密/解密卡出现空闲时,加密/解密卡向计算机的cpu发起nmi中断,则根据加密/解密卡向cpu发起中断的时间,以及运行
在cpu上的目标进程向加密/解密卡发送相应的加密或解密数据的时间,计算加密/解密卡执行该加密任务的执行能力,即多久能执行完一定量的加密/解密数据。
43.类似地,根据不同的计算单元的业务类型或计算类型分别计算不同的计算单元在执行相应的目标进程的任务的执行能力。
44.在本发明的一些实施方式中,计算所述运行状态的状态值的步骤包括:根据所述执行能力以及计算单元与目标进程最近一次的通信时间确定所述计算单元的执行进度;基于所述执行进度确定所述计算单元的预计空闲时间。
45.在本发明的一些实施例中,在确定计算单元执行能力之后,则根据相应的计算单元与其对应的目标进程的最近的通信时间,和当前计算机的时间差作为计算单元的执行时间,并根据执行时间乘以计算单元的执行能力来确定其完成的计算任务的任务量,并将对应的任务量和该计算单元与对应的目标进程的最近一次通信时获取到的任务量的比值作为其执行进度。
46.在本发明的一些实施例中,任务量的计算是根据具体的计算任务以及计算类型而设定的,在一些场景下是有目标进程发送给计算单元的数据进行计算,在后续的过程中,计算任务可能是由目标进程发送新的计算指令或计算任务,在计算单元已完成一次计算之后的数据的基础上进行计算,计算单元的并未获取目标进程新给的计算数据。因此需要根据常见的计算单元的计算类型而制定相应的执行进度的分析方案。
47.在本发明的一些实施方式中,比较计算的所述状态值与预设状态的状态值的步骤包括:比较所述计算单元的预计空闲时间与预定值。
48.在本实施例中,根据计算单元的执行进度以及在当前计算任务的剩余任务的任务、以及计算单元的执行能力,便可通过剩余任务的任务量除以执行能力得到剩余的执行时间,将剩余的执行时间作为该计算单元即将空余的空闲时间,然后比较预计空闲时间和设定的预定值的大小。
49.在本发明的一些实施方式中,响应于计算的所述状态值与预设状态的状态值的差距满足预定条件,提高与所述计算单元运行有关的目标进程的优先级的步骤包括:响应于所述计算单元的预计空闲时间小于预定值,提高所述目标进程的优先级。
50.进一步,在本发明的一些实施例中,预定值是以时间为单位的数据,例如多少毫秒。如果预计空闲时间的值小于预定值,则将计算单元对应的目标进程的优先级提高。
51.在本发明的一些实施方式中,获取计算单元的运行状态的步骤包括:统计不可屏蔽中断事件的产生次数并计算相邻次数的不可屏蔽中断事件的间隔时间。
52.在本发明的一些实施方式中,计算所述运行状态的状态值的步骤包括:基于所述计算单元与目标进程最近一次的通信时间以及当前时间确定计算单元的独立运行时间。
53.在本发明的一些实施方式中,比较计算的所述状态值与预设状态的状态值的步骤包括:基于相邻次数的不可屏蔽中断事件的间隔时间计算产生不可屏蔽中断的平均时
间;比较所述独立运行时间与所述平均时间。
54.在本发明的一些实施例中,独立运行时间是指计算单元在接收到相对应的目标进程的最近一次通信的时间到计算单元的当前运行时刻值的差值,即表示计算单元单独运行的时间。
55.进一步,统计计算单元发起nmi中断的时间间隔,并以发起中断的时间间隔作为一个时间段,计算多个相邻的时间间隔对应的时间段的总用时,并除以时间段的个数得到计算单元发起nmi中断的平均时间。进一步,以平均时间作为参考,比较计算单元的独立运行时间和平均时间的差值。
56.在本发明的一些实施例中,平均时间的计算还需要考虑计算单元在两个nmi中断时刻所对应的时间段内,计算单元与目标进程的通信信息。在一些情况下可将目标进程向计算单元发出有效指令或相应数据的时刻“视作”一个nmi中断的产生时刻。以此来消除nmi中断受目标进程的影响。
57.在本发明的一些实施方式中,响应于计算的所述状态值与预设状态的状态值的差距满足预定条件,提高与所述计算单元运行有关的目标进程的优先级的步骤包括:响应于所述独立运行时间与所述平均时间的差值小于预定值,将所述目标进程的优先级提高。
58.进一步,如前所述,如果计算单元的独立运行时间和平均时间的差值小于预定的时间值,则提高目标进程的优先级。
59.在本发明的一些实施方式中,获取计算单元的运行状态,计算所述运行状态的状态值的步骤包括:获取所述计算单元处理所述目标进程的给出的计算任务的处理速度和所述目标进程与计算单元的通信数据量;基于所述处理速度和通信数据量计算所述计算单元的运行状态的状态值。
60.在本发明的一些实施例中,通过目标进程发给计算单元的数据量的规律的方式来评估计算单元计算当前任务的处理速度,并根据处理速度和目标进程的通信数据量计算对应的计算单元的运行状态的状态值。
61.在本发明的一些实施方式中,基于处理速度和通信数据量计算所述计算单元的运行状态的状态值包括:根据计算单元发起不可屏蔽中断事件的间隔时间以及目标进程与计算单元的通信数据量,计算所述计算单元在当前目标进程的计算任务下的平均处理速度;基于所述平均处理速度以及所述目标进程在所述计算单元最近一次发起不可屏蔽中断事件之后所述目标进程与所述计算单元的通信数据量,确定所述计算单元的运行状态的状态值。
62.在本发明的一些实施方式中,根据计算单元发起不可屏蔽中断事件的间隔时间以及目标进程与计算单元的通信数据量计算所述计算单元在当前目标进程的计算任务下的平均处理速度的步骤包括:统计不可屏蔽中断事件的产生次数并计算相邻次数的不可屏蔽中断事件的间隔时间;
监控在相邻不可屏蔽中断事件的间隔时间内目标进程与计算单元的通信数据量;基于所述通信数据量和所述间隔时间计算所述计算单元处理当前目标进程的计算任务的处理速度;基于多个相邻不可屏蔽中断事件的间隔时间所对应的所述处理速度计算所述计算单元的在当前目标进程的计算任务下的平均处理速度。
63.在本发明的一些实施方式中,基于所述平均处理速度以及所述目标进程在所述计算单元最近一次发起不可屏蔽中断事件之后所述目标进程与所述计算单元的通信数据量,确定所述计算单元的运行状态的状态值的步骤包括:根据所述平均处理速度以及所述目标进程在所述计算单元最近一次发起不可屏蔽中断之后经过的时间,计算所述计算单元完成计算的数据量;计算所述完成计算的数据量与通信数据量的比值,并将所述比值作为所述计算单元的运行状态的状态值。
64.在本发明的一些实施方式中,响应于计算的所述状态值与预设状态的状态值的差距满足预定条件,提高与所述计算单元运行有关的目标进程的优先级的步骤包括:响应于计算的所述状态值与预设状态的状态值的差距满足预定条件,提高与所述计算单元运行有关的目标进程的优先级。
65.在本发明的一些实施方式中,提高与所述计算单元运行有关的目标进程的优先级的步骤包括:获取当前系统中所有进程的优先级,将所有进程中优先级最高的进程的优先级等级作为参考优先级;将所述目标进程的优先级设置为高于所述参考优先级。
66.在本发明的一些实施方式中,将所述目标进程的优先级设置为高于所述参考优先级的步骤包括:响应于所述参考优先级为当前系统中的最高优先级,将所述目标进程设置为最高优先级,并将属于最高优先级的其他进程的优先级降低一级。
67.在本发明的一些实施方式中,方法还包括:判断当前系统所有进程的优先级是否满足次第分布,对满足次第分布的进程的优先级全部降低一级。
68.在本发明的一些实施例中,次第分布是指多个进程的优先级程连续阶梯分布,即进程1的优先级为5,进程2的优先级为6,进程3的优先级为7,那么进程1~3便属于满足次第分布的多个进程。因此,如果目标进程需要设置为5(假设进程1为当前系统上优先级最高的进程)则需要将进程1~3的优先级分别置为6、7、8。
69.在本发明的一些实施方式中,将所述目标进程的优先级设置为高于所述参考优先级的步骤还包括:响应于对所述目标进程的优先级设置完成,将当前系统的进程管理队列清空。
70.在本发明的一些实施方式中,提高与所述计算单元运行有关的目标进程的优先级的步骤包括:针对预设状态预先设定不同的预定条件并分别对应不同的优先级策略;响应于所述运行状态的所述状态值满足不同的预定条件,则针对不同的运行状态
采用不同的优先级策略提高与所述计算单元运行有关的目标进程的优先级。
71.在本发明的一些实施例中,可以采用预设多个预定条件的方式,对计算单元的状态值进行分级匹配,如果计算单元的状态值满足对应的预定条件,则使用对应的预定条件对应的优先级调控策略提高目标进程的优先级。不仅限于直接提为最高优先级。
72.在本发明的一些实施方式中,方法还包括:在计算单元上监控计算单元的运行状态,响应于所述计算单元的运行状态为空闲,通过计算单元向中央处理器发送不可屏蔽中断。
73.在本发明的一些实施方式中,方法还包括:响应于接收到所述不可屏蔽中断,中央处理器将所述目标进程的优先级设置为当前系统的最高优先级。
74.在本发明的一些实施例中,发起nmi中断是由具体的计算单元上预设的程序或判断条件执行。本发明提出的提高计算单元执行效率的方法是运行在计算机cpu上的程序,该程序可以是独占某个cpu内核来实现对目标进程和计算单元发起nmi中断的调控。
75.具体地,如图5所示,图5示出的是以gpu运行场景下的目标进程死锁解除的示意图,由看门狗进程实现对目标进程和gpu发起nmi中断的处理分析。
76.首先在gpu上植入根据gpu状态发起nmi中断的程序,伪代码如下:lockup_detector_init
ꢀ‑
》;cpu_callback
ꢀ‑
》;watchdog_prepare_cpu
ꢀ‑
》;watchdog_enable
ꢀ‑
》;kthread_create
ꢀ‑
》;watchdog
ꢀ‑
》;sched_priority = max_rt_prio-1;touch_watchdog;hrtimer_start;touch_watchdog ;watchdog_timer_fn ;wake_up_process ;hrtimer_forward_now;is_softlockup;print_modules;dump_stack。
77.另一方面,当gpu上发起nmi中断之后,单独运行在一个内核的看门狗进程,即watchdog进程会被唤醒,然后执行touch_watchdog 会重新更新watchdog_touch_ts。
78.看门狗进程通过pcie总线与cpu进行通信,监控内核的进程调度是否正常,当发生cpu软锁时,及时报警,抢占内核线程占据的cpu资源,来快速解除cpu软锁,避免了系统无响应,导致数据处理中断。 cpu发送指令到gpu端,gpu端接受指令并进行数据处理,处理之后会等待cpu接管数据,当数据量巨大时,由于cpu被内核线程占据无法按时处理此进程时,此时会发生cpu软锁,高性能gpu通过nmi中断触发看门狗进程处理监控模块,进行将与gpu运
算有关的线程提高优先级,抢占内核线程占据的cpu资源,cpu软锁解除,待完成此进程后立刻关闭进程处理监控模块,继续按线程优先级处理。
79.通过本发明提出的一种提高计算单元执行效率的方法,通过分析计算单元的nmi中断的发起规律,来预测计算单元即将进入空闲状态或预定状态的时间,并在其进入预定状态前提高与该计算单元进行交互的目标进程的优先级,可以有效解决因目标进程的死锁导致的计算单元的闲置。提升整个计算单元在具体的业务应用下的利用率以及维持业务系统的高效运行。
80.如图2所示,本发明的另一方面还提出一种提高计算单元执行效率的系统,包括:计算单元状态确定模块1,所述计算单元状态确定模块1配置用于获取计算单元的运行状态,计算所述运行状态的状态值;比较模块2,所述比较模块2配置用于比较计算的所述状态值与预设状态的状态值;优先级调控模块3,所述优先级调控模块3配置用于响应于计算的所述状态值与预设状态的状态值的差距满足预定条件,提高与所述计算单元运行有关的目标进程的优先级。
81.如图3所示,本发明的又一方面还提出一种计算机设备,包括:至少一个处理器21;以及存储器22,所述存储器22存储有可在所述处理器21上运行的计算机指令23,所述指令23由所述处理器21执行时实现上述实施方式中任意一项所述方法的步骤。
82.如图4所示,本发明的再一方面还提出一种计算机可读存储介质401,所述计算机可读存储介质401存储有计算机程序402,所述计算机程序402被处理器执行时实现上述实施方式中任意一项所述方法的步骤。
83.以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
84.应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
85.上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
86.本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
87.所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上所述的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
技术特征:
1.一种提高计算单元执行效率的方法,其特征在于,包括:获取计算单元的运行状态,计算所述运行状态的状态值;比较计算的所述状态值与预设状态的状态值;响应于计算的所述状态值与预设状态的状态值的差距满足预定条件,提高与所述计算单元运行有关的目标进程的优先级。2.根据权利要求1所述的方法,其特征在于,所述获取计算单元的运行状态的步骤包括:统计不可屏蔽中断的产生信息与目标进程与计算单元的交互信息;根据所述不可屏蔽中断的产生信息和计算单元的交互信息计算计算单元执行目标进程的当前任务的执行能力。3.根据权利要求2所述的方法,其特征在于,所述计算所述运行状态的状态值的步骤包括:根据所述执行能力以及计算单元与目标进程最近一次的通信时间确定所述计算单元的执行进度;基于所述执行进度确定所述计算单元的预计空闲时间。4.根据权利要求3所述的方法,其特征在于,所述比较计算的所述状态值与预设状态的状态值的步骤包括:比较所述计算单元的预计空闲时间与预定值。5.根据权利要求4所述的方法,其特征在于,所述响应于计算的所述状态值与预设状态的状态值的差距满足预定条件,提高与所述计算单元运行有关的目标进程的优先级的步骤包括:响应于所述计算单元的预计空闲时间小于预定值,提高所述目标进程的优先级。6.根据权利要求1所述的方法,其特征在于,所述获取计算单元的运行状态的步骤包括:统计不可屏蔽中断事件的产生次数并计算相邻次数的不可屏蔽中断事件的间隔时间。7.根据权利要求6所述的方法,其特征在于,所述计算所述运行状态的状态值的步骤包括:基于所述计算单元与目标进程最近一次的通信时间以及当前时间确定计算单元的独立运行时间。8.根据权利要求7所述的方法,其特征在于,所述比较计算的所述状态值与预设状态的状态值的步骤包括:基于相邻次数的不可屏蔽中断事件的间隔时间计算产生不可屏蔽中断的平均时间;比较所述独立运行时间与所述平均时间。9.根据权利要求8所述的方法,其特征在于,所述响应于计算的所述状态值与预设状态的状态值的差距满足预定条件,提高与所述计算单元运行有关的目标进程的优先级的步骤包括:响应于所述独立运行时间与所述平均时间的差值小于预定值,将所述目标进程的优先级提高。10.根据权利要求1所述的方法,其特征在于,所述获取计算单元的运行状态,计算所述
运行状态的状态值的步骤包括:获取所述计算单元处理所述目标进程的给出的计算任务的处理速度和所述目标进程与计算单元的通信数据量;基于所述处理速度和通信数据量计算所述计算单元的运行状态的状态值。11.根据权利要求10所述的方法,其特征在于,所述基于所述处理速度和通信数据量计算所述计算单元的运行状态的状态值包括:根据计算单元发起不可屏蔽中断事件的间隔时间以及目标进程与计算单元的通信数据量计算所述计算单元在当前目标进程的计算任务下的平均处理速度;基于所述平均处理速度以及所述目标进程在所述计算单元最近一次发起不可屏蔽中断事件之后所述目标进程与所述计算单元的通信数据量,确定所述计算单元的运行状态的状态值。12.根据权利要求11所述的方法,其特征在于,所述根据计算单元发起不可屏蔽中断事件的间隔时间以及目标进程与计算单元的通信数据量计算所述计算单元在当前目标进程的计算任务下的平均处理速度的步骤包括:统计不可屏蔽中断事件的产生次数并计算相邻次数的不可屏蔽中断事件的间隔时间;监控在相邻不可屏蔽中断事件的间隔时间内目标进程与计算单元的通信数据量;基于所述通信数据量和所述间隔时间计算所述计算单元处理当前目标进程的计算任务的处理速度;基于多个相邻不可屏蔽中断事件的间隔时间所对应的所述处理速度计算所述计算单元的在当前目标进程的计算任务下的平均处理速度。13.根据权利要求11所述的方法,其特征在于,所述基于所述平均处理速度以及所述目标进程在所述计算单元最近一次发起不可屏蔽中断事件之后所述目标进程与所述计算单元的通信数据量,确定所述计算单元的运行状态的状态值的步骤包括:根据所述平均处理速度以及所述目标进程在所述计算单元最近一次发起不可屏蔽中断之后经过的时间,计算所述计算单元完成计算的数据量;计算所述完成计算的数据量与通信数据量的比值,并将所述比值作为所述计算单元的运行状态的状态值。14.根据权利要求13所述的方法,其特征在于,所述响应于计算的所述状态值与预设状态的状态值的差距满足预定条件,提高与所述计算单元运行有关的目标进程的优先级的步骤包括:响应于所述计算的所述状态值与预设状态的状态值的差距满足预定条件,提高与所述计算单元运行有关的目标进程的优先级。15.根据权利要求1所述的方法,其特征在于,所述提高与所述计算单元运行有关的目标进程的优先级的步骤包括:获取当前系统中所有进程的优先级,将所有进程中优先级最高的进程的优先级等级作为参考优先级;将所述目标进程的优先级设置为高于所述参考优先级。16.根据权利要求15所述的方法,其特征在于,所述将所述目标进程的优先级设置为高于所述参考优先级的步骤包括:
响应于所述参考优先级为当前系统中的最高优先级,将所述目标进程设置为最高优先级,并将属于最高优先级的其他进程的优先级降低一级。17.根据权利要求16所述的方法,其特征在于,还包括:判断当前系统所有进程的优先级是否满足次第分布,对满足次第分布的进程的优先级全部降低一级。18.根据权利要求15所述的方法,其特征在于,所述将所述目标进程的优先级设置为高于所述参考优先级的步骤还包括:响应于对所述目标进程的优先级设置完成,将当前系统的进程管理队列清空。19.根据权利要求1所述的方法,其特征在于,所述提高与所述计算单元运行有关的目标进程的优先级的步骤包括:针对预设状态预先设定不同的预定条件并分别对应不同的优先级策略;响应于所述运行状态的所述状态值满足不同的预定条件,则针对不同的运行状态采用不同的优先级策略提高与所述计算单元运行有关的目标进程的优先级。20.根据权利要求1所述的方法,其特征在于,所述方法还包括:在计算单元上监控计算单元的运行状态,响应于所述计算单元的运行状态为空闲,通过计算单元向中央处理器发送不可屏蔽中断。21.根据权利要求20所述的方法,其特征在于,所述方法还包括:响应于接收到所述不可屏蔽中断,中央处理器将所述目标进程的优先级设置为当前系统的最高优先级。22.一种提高计算单元执行效率的系统,其特征在于,包括:计算单元状态确定模块,所述计算单元状态确定模块配置用于获取计算单元的运行状态,计算所述运行状态的状态值;比较模块,所述比较模块配置用于比较计算的所述状态值与预设状态的状态值;优先级调控模块,所述优先级调控模块配置用于响应于计算的所述状态值与预设状态的状态值的差距满足预定条件,提高与所述计算单元运行有关的目标进程的优先级。23. 一种计算机设备,其特征在于,包括:至少一个处理器;以及存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现权利要求1-21任意一项所述方法的步骤。24.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-21任意一项所述方法的步骤。
技术总结
本发明属于计算机领域,具体涉及一种提高计算单元执行效率的方法、系统、设备及介质。其中方法包括:获取计算单元的运行状态,计算运行状态的状态值;比较计算的状态值与预设状态的状态值;响应于计算的状态值与预设状态的状态值的差距满足预定条件,提高与计算单元运行有关的目标进程的优先级。通过本发明提出的一种提高计算单元执行效率的方法,监控计算单元的状态并计算对应的状态值,将状态值与预设的状态值进行比较,根据比较的结果,来提高与该计算单元进行交互的目标进程的优先级,可以有效解决因目标进程的死锁导致的计算单元的闲置,提升整个计算单元在具体的业务应用下的利用率以及维持业务系统的高效运行。用率以及维持业务系统的高效运行。用率以及维持业务系统的高效运行。
技术研发人员:田丽丽 沈壹夫
受保护的技术使用者:苏州浪潮智能科技有限公司
技术研发日:2023.08.21
技术公布日:2023/9/20
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/