线程管理方法、装置、存储介质及电子设备制造方法及图纸

技术编号:38502252 阅读:10 留言:0更新日期:2023-08-15 17:09
本公开涉及计算机技术领域,涉及一种线程管理方法、装置、存储介质及电子设备,以降低资源开销。该线程管理方法包括:响应于调用端调用的RPC接口,确定RPC接口的接口类型;确定预设线程池中与接口类型对应的目标线程;在接口类型为专有接口类型时,目标线程为预设线程池中具有RPC接口指定的线程ID的专有线程,在接口类型为普通接口类型时,目标线程为预设线程池中任一空闲的普通线程;将RPC接口对应的任务调度到目标线程上执行,以得到执行结果。以得到执行结果。以得到执行结果。

【技术实现步骤摘要】
线程管理方法、装置、存储介质及电子设备


[0001]本公开涉及计算机
,具体地,涉及一种线程管理方法、装置、存储介质及电子设备。

技术介绍

[0002]随着机器学习、深度学习以及高性能计算领域的高速发展,底层芯片的计算能力大幅提升,与底层芯片发展密切相关的“通用并行计算库”也相应发展起来。英伟达以及AMD等GPGPU(通用图形处理器,General

purpose computing on graphics processing units)芯片厂商提供了对应芯片的通用并行计算库,例如CUDA以及ROCm等。通用并行计算库的出现,大幅降低了开发人员对高性能并行计算方法的开发成本,由此开发人员可以通过调用通用并行计算库提供的相关编程接口(API,Application Programming Interface)来发挥芯片的并行计算优势,提高软件的执行性能。
[0003]高性能的通用并行计算库依赖于底层硬件以及执行环境支持,例如依赖于CPU、GPU、NPU以及TPU等芯片及其驱动的支持。为了更好地利用并行计算芯片,相关技术将高性能计算芯片相关的计算以远端服务的方式提供给开发人员,也即提供“面向通用并行计算的远程过程调用服务”。这种远程过程调用(RPC,Remote Procedure Call)服务通常向开发人员提供通用并行计算库的API,从而可以基于接收到的API进行高性能计算,并返回相应的计算结果。
[0004]由于,CUDA等通用并行计算库所提供的API具备较高的灵活性,因此为了支持开发人员发送到远端执行的不同类型的API,RPC服务端通常相应地创建以及使用一些线程,来执行对应类型的API。在没有统筹设计的情况下,RPC服务端通常为支持不同类型的API创建相应的线程,或者,为支持某一类的API创建线程池。在RPC服务端的资源使用规模较小的情况下,这种方式可以正常运行。然而,在RPC服务端的资源使用规模逐渐增大后,RPC服务端频繁创建以及销毁大量的线程,并且还可能存在任务已经结束但未被主线程回收的线程,由此造成线程资源的浪费,资源开销大。

技术实现思路

[0005]本公开的目的是提供一种线程管理方法、装置、存储介质及电子设备,以降低资源开销。
[0006]为了实现上述目的,本公开实施例的第一方面提供一种线程管理方法,所述方法包括:响应于调用端调用的RPC接口,确定所述RPC接口的接口类型;确定预设线程池中与所述接口类型对应的目标线程;在所述接口类型为专有接口类型时,所述目标线程为所述预设线程池中具有RPC接口指定的线程ID的专有线程,在所述接口类型为普通接口类型时,所述目标线程为所述预设线程池中任一空闲的普通线程;将所述RPC接口对应的任务调度到所述目标线程上执行,以得到执行结果。
[0007]可选地,所述确定所述RPC接口的接口类型,包括:基于RPC接口与接口类型之间的预设映射关系,确定所述RPC接口的接口类型。
[0008]可选地,所述接口类型为专有接口类型或者状态结束接口类型,所述确定预设线程池中与所述接口类型对应的目标线程,包括:确定所述RPC接口的参数中包括线程ID;确定所述预设线程池中与所述线程ID对应的第一线程;在所述第一线程为专有线程的情况下,将所述第一线程作为与所述接口类型对应的目标线程。
[0009]可选地,所述方法还包括:在所述第一线程为普通线程的情况下,返回非法调用信号至所述调用端;或者,在所述第一线程为普通线程的情况下,若确定所述RPC接口属于预设的专有任务接口,则将所述第一线程转化为专有线程。
[0010]可选地,所述接口类型为状态开始接口类型,所述确定预设线程池中与所述接口类型对应的目标线程,包括:确定所述预设线程池中任一空闲的普通线程;将所述普通线程转化为专有线程,并将该专有线程作为所述目标线程;所述方法还包括:将转化得到的所述专有线程的线程ID发送至所述调用端。
[0011]可选地,所述接口类型为状态结束接口类型,所述第一线程为专有线程,所述方法还包括:在将所述RPC接口对应的任务调度到所述目标线程上执行,以得到执行结果之后,将所述第一线程转化为普通线程。
[0012]可选地,在所述确定预设线程池中与所述接口类型对应的目标线程之前,所述方法还包括:确定所述接口类型非结束RPC调用类型;所述方法还包括:在所述接口类型为所述结束RPC调用类型的情况下,确定所述预设线程池中被所述调用端调用过的每一专有线程,并将所述每一专有线程转化为普通线程。
[0013]本公开实施例的第二方面提供一种线程管理装置,所述装置包括:分类模块,用于响应于调用端调用的RPC接口,确定所述RPC接口的接口类型,以及确定预设线程池中与所述接口类型对应的目标线程;在所述接口类型为专有接口类型时,所述目标线程为所述预设线程池中具有RPC接口指定的线程ID的专有线程,在所述接口类型为普通接口类型时,所述目标线程为所述预设线程池中任一空闲的普通线程;调度模块,用于将所述RPC接口对应的任务调度到所述目标线程上执行,以得到执行结果。
[0014]本公开实施例的第三方面提供一种计算机可读存储介质,其上存储有计算机程序指令,该程序指令被处理器执行时实现本公开第一方面中任一项所提供的线程管理方法的步骤。
[0015]根据本公开实施例的第四方面,提供一种电子设备,包括:
存储器,其上存储有计算机程序;处理器,用于执行所述存储器中的所述计算机程序,以实现第一方面中任一项所提供的线程管理方法的步骤。
[0016]通过上述技术方案,对RPC接口进行归类,以确定RPC接口对应的任务执行在专有线程或是普通线程,并在预设线程池中提供对应类型的执行线程,从而可以根据调用端所调用的RPC接口的接口类型,从预设线程池中确定与该接口类型对应的目标线程,其中,在接口类型为专有接口类型时,目标线程可以为预设线程池中具有RPC接口指定的线程ID的专有线程,在接口类型为普通接口类型时,目标线程可以为预设线程池中任一空闲的普通线程。在此基础上,可以将RPC接口对应的任务调度到对应的目标线程上执行,以得到执行结果。由此基于不同类型的RPC接口,提供支持专有线程的预设线程池来执行对应的任务,从而在兼顾对普通线程的调度的基础上,基于线程池的优势来对专有线程进行统一调度,减少RPC服务端的环境准备开销以及线程资源浪费,有效降低资源开销。
[0017]本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
[0018]附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:图1是根据相关技术示出的一种远程过程调用的示意图。
[0019]图2是根据相关技术示出的一种单线程工作模式的示意图。
[0020]图3是根据相关技术示出的一种专有线程工作模式的示意图。
[0021]图4是根据相关技术示出的一种线程池工作模式本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种线程管理方法,其特征在于,所述方法包括:响应于调用端调用的RPC接口,确定所述RPC接口的接口类型;确定预设线程池中与所述接口类型对应的目标线程;在所述接口类型为专有接口类型时,所述目标线程为所述预设线程池中具有RPC接口指定的线程ID的专有线程,在所述接口类型为普通接口类型时,所述目标线程为所述预设线程池中任一空闲的普通线程;将所述RPC接口对应的任务调度到所述目标线程上执行,以得到执行结果。2.根据权利要求1所述的线程管理方法,其特征在于,所述确定所述RPC接口的接口类型,包括:基于RPC接口与接口类型之间的预设映射关系,确定所述RPC接口的接口类型。3.根据权利要求1所述的线程管理方法,其特征在于,所述接口类型为专有接口类型或者状态结束接口类型,所述确定预设线程池中与所述接口类型对应的目标线程,包括:确定所述RPC接口的参数中包括线程ID;确定所述预设线程池中与所述线程ID对应的第一线程;在所述第一线程为专有线程的情况下,将所述第一线程作为与所述接口类型对应的目标线程。4.根据权利要求3所述的线程管理方法,其特征在于,所述方法还包括:在所述第一线程为普通线程的情况下,返回非法调用信号至所述调用端;或者,在所述第一线程为普通线程的情况下,若确定所述RPC接口属于预设的专有任务接口,则将所述第一线程转化为专有线程。5.根据权利要求1所述的线程管理方法,其特征在于,所述接口类型为状态开始接口类型,所述确定预设线程池中与所述接口类型对应的目标线程,包括:确定所述预设线程池中任一空闲的普通线程;将所述普通线程转化为专有线程,并将该专有线程作为所述目标线程;所述方法还包括:将...

【专利技术属性】
技术研发人员:王汇泽王鲲陈飞邹懋
申请(专利权)人:北京趋动智能科技有限公司
类型:发明
国别省市:

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

1