一种资源分配方法及系统技术方案

技术编号:18006923 阅读:26 留言:0更新日期:2018-05-21 07:33
本发明专利技术适用于资源调度技术领域,公开了一种资源分配方法及系统,所述方法包括:获取用户输入的启动指令,根据启动指令启动业务程序,并生成至少一个线程;获取至少一个申请同一块硬件加速卡计算资源的线程;按照线程申请的时间顺序,将业务互斥锁分配给目标线程;将目标线程分配给排队线程数量最少的目标计算单元,并释放目标线程的业务互斥锁;若在目标线程之前的排队线程数量为零,则处理目标线程的业务数据;将业务互斥锁分配给目标线程;将目标线程的标志位复位,将目标线程所在队列的活动位指针指向下一个待处理业务数据的线程,并释放目标线程的业务互斥锁,注销目标线程。本发明专利技术能够显著提高计算资源利用率,提高硬件加速卡的应用价值。

【技术实现步骤摘要】
一种资源分配方法及系统
本专利技术属于资源调度
,尤其涉及一种资源分配方法及系统。
技术介绍
面对越来越多的对专业性要求较高的计算需求,通过引入专业的硬件加速卡,卸载原本由CPU执行的特定运算,是一种可靠的技术解决方案。这种解决方案不仅成本低,而且可以大大提高专业计算资源的利用率。目前,在基于硬件加速卡的异构计算机系统中,计算资源分配通常采用轮询调度的静态分配方法。但是,由于每次分配给计算单元的源数据大小有差异,源数据从主机传输到硬件加速卡的时间有差异,计算资源完成源数据计算的时间有差异,生成的新数据大小有差异,新数据从加速卡传输回主机的时间有差异,导致部分计算单元处于阻塞状态,而部分计算单元处于空闲状态,造成计算资源分配不均衡,计算资源利用率较低。
技术实现思路
有鉴于此,本专利技术实施例提供了一种资源分配方法及系统,以解决现有技术中计算资源分配不均衡,计算资源利用率较低的问题。本专利技术实施例的第一方面提供了一种资源分配方法,包括:获取用户输入的启动指令,根据启动指令启动业务程序,创建业务程序对应的进程,获取业务数据,并生成至少一个处理业务数据的线程;获取至少一个申请同一块硬件加速卡计算资源的线程;按照线程申请的时间顺序,将业务互斥锁分配给至少一个申请同一块硬件加速卡计算资源的线程中的目标线程;若硬件加速卡中至少有一个计算单元的排队线程数量未达到预设值,则将目标线程分配给硬件加速卡中的所有计算单元中排队线程数量最少的目标计算单元,并释放目标线程的业务互斥锁;若在目标线程之前的排队线程数量为零,则处理目标线程的业务数据;当目标线程的业务数据处理完成后,按照线程申请的时间顺序,将业务互斥锁分配给目标线程;将目标线程的标志位复位,将目标线程所在环形队列的活动位指针指向下一个待处理业务数据的线程,并释放目标线程的业务互斥锁,注销目标线程。本专利技术实施例的第二方面提供了一种资源分配系统,包括:指令获取模块,用于获取用户输入的启动指令,根据启动指令启动业务程序,创建业务程序对应的进程,获取业务数据,并生成至少一个处理业务数据的线程;线程获取模块,用于获取至少一个申请同一块硬件加速卡计算资源的线程;第一业务互斥锁分配模块,用于按照线程申请的时间顺序,将业务互斥锁分配给至少一个申请同一块硬件加速卡计算资源的线程中的目标线程;目标线程分配模块,用于若硬件加速卡中至少有一个计算单元的排队线程数量未达到预设值,则将目标线程分配给硬件加速卡中的所有计算单元中排队线程数量最少的目标计算单元,并释放目标线程的业务互斥锁;目标线程处理模块,用于若在目标线程之前的排队线程数量为零,则处理目标线程的业务数据;第二业务互斥锁分配模块,用于当目标线程的业务数据处理完成后,按照线程申请的时间顺序,将业务互斥锁分配给目标线程;目标线程注销模块,用于将目标线程的标志位复位,将目标线程所在环形队列的活动位指针指向下一个待处理业务数据的线程,并释放目标线程的业务互斥锁,注销目标线程。本专利技术实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上所述资源分配方法的步骤。本专利技术实施例的第四方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现如上所述资源分配方法的步骤。本专利技术实施例与现有技术相比存在的有益效果是:本专利技术实施例提供的资源分配方法及系统,通过获取用户输入的启动指令,根据启动指令启动业务程序,创建业务程序对应的进程,获取业务数据,并生成至少一个处理业务数据的线程;获取至少一个申请同一块硬件加速卡计算资源的线程;按照线程申请的时间顺序,将业务互斥锁分配给至少一个申请同一块硬件加速卡计算资源的线程中的目标线程;若硬件加速卡中至少有一个计算单元的排队线程数量未达到预设值,则将目标线程分配给排队线程数量最少的目标计算单元,并释放目标线程的业务互斥锁;若在目标线程之前的排队线程数量为零,则处理目标线程的业务数据;按照线程申请的时间顺序,将业务互斥锁分配给目标线程;将目标线程的标志位复位,将目标线程所在环形队列的活动位指针指向下一个待处理业务数据的线程,并释放目标线程的业务互斥锁,注销目标线程,从而可以有效解决计算资源分配不均衡,计算资源利用率较低的问题,能够显著提高计算资源利用率,提高了硬件加速卡的应用价值。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例一提供的资源分配方法的实现流程图;图2是本专利技术实施例二提供的资源分配方法的实现流程图;图3是本专利技术实施例三提供的资源分配系统的实现流程图;图4是本专利技术实施例四提供的资源分配系统的实现流程图;图5是本专利技术实施例五提供的终端设备的示意图。具体实施方式以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本专利技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本专利技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本专利技术的描述。本专利技术的说明书和权利要求书及上述附图中的术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含一系列步骤或单元的过程、方法或系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。此外,术语“第一”、“第二”和“第三”等是用于区别不同对象,而非用于描述特定顺序。为了说明本专利技术所述的技术方案,下面通过具体实施例来进行说明。实施例一参照图1,图1示出了本专利技术实施例一提供的资源分配方法的实现流程,本实施例的流程执行主体可以是终端设备,其过程详述如下:S101:获取用户输入的启动指令,根据启动指令启动业务程序,创建业务程序对应的进程,获取业务数据,并生成至少一个处理业务数据的线程。当用户启动业务程序时,终端设备获取用户输入的启动指令,根据启动指令启动业务程序。创建业务程序对应的进程,为进程分配进程号。业务程序启动后,为业务程序创建对应的进程,为进程分配进程号,具体过程如下:获取管理互斥锁;判断已有进程数量是否达到系统预设值;若已有进程数量达到系统预设值,则直接释放管理互斥锁;若已有进程数量未达到系统预设值,则获取空余ID号,将空余ID号注册为业务程序对应进程的进程号,并将已有进程数量加一;释放管理互斥锁。其中,管理互斥锁用于当有多个任务需要使用相同资源时,保证没有其他任务可以使用当前任务正在使用的资源。获取业务数据,并生成至少一个处理业务数据的线程,为线程分配线程号。具体地,获取业务程序需要处理的业务数据,生成至少一个线程,线程用来处理业务数据,一个业务程序对应的进程包括多个线程,为每个线程分配线程号。其中,为线程分配线程号的过程如下:获取管理互斥锁;判断线程所属进程的进程号是否存在;若线程所属进程的进程号不存在,则直接释放管理互斥锁;本文档来自技高网...
一种资源分配方法及系统

【技术保护点】
一种资源分配方法,其特征在于,包括:获取用户输入的启动指令,根据所述启动指令启动业务程序,创建所述业务程序对应的进程,获取业务数据,并生成至少一个处理所述业务数据的线程;获取至少一个申请同一块硬件加速卡计算资源的线程;按照线程申请的时间顺序,将业务互斥锁分配给所述至少一个申请同一块硬件加速卡计算资源的线程中的目标线程;若所述硬件加速卡中至少有一个计算单元的排队线程数量未达到预设值,则将所述目标线程分配给所述硬件加速卡中的所有计算单元中排队线程数量最少的目标计算单元,并释放所述目标线程的业务互斥锁;若在所述目标线程之前的排队线程数量为零,则处理所述目标线程的业务数据;当所述目标线程的业务数据处理完成后,按照所述线程申请的时间顺序,将所述业务互斥锁分配给所述目标线程;将所述目标线程的标志位复位,将所述目标线程所在环形队列的活动位指针指向下一个待处理业务数据的线程,并释放所述目标线程的业务互斥锁,注销所述目标线程。

【技术特征摘要】
1.一种资源分配方法,其特征在于,包括:获取用户输入的启动指令,根据所述启动指令启动业务程序,创建所述业务程序对应的进程,获取业务数据,并生成至少一个处理所述业务数据的线程;获取至少一个申请同一块硬件加速卡计算资源的线程;按照线程申请的时间顺序,将业务互斥锁分配给所述至少一个申请同一块硬件加速卡计算资源的线程中的目标线程;若所述硬件加速卡中至少有一个计算单元的排队线程数量未达到预设值,则将所述目标线程分配给所述硬件加速卡中的所有计算单元中排队线程数量最少的目标计算单元,并释放所述目标线程的业务互斥锁;若在所述目标线程之前的排队线程数量为零,则处理所述目标线程的业务数据;当所述目标线程的业务数据处理完成后,按照所述线程申请的时间顺序,将所述业务互斥锁分配给所述目标线程;将所述目标线程的标志位复位,将所述目标线程所在环形队列的活动位指针指向下一个待处理业务数据的线程,并释放所述目标线程的业务互斥锁,注销所述目标线程。2.根据权利要求1所述的资源分配方法,其特征在于,所述将所述目标线程分配给所述硬件加速卡中的所有计算单元中排队线程数量最少的目标计算单元,具体包括:将所述目标线程所属进程的进程号和所述目标线程的线程号保存在负载均衡表中所述目标计算单元对应的环形队列中,并将所述目标线程的标志位置位。3.根据权利要求1所述的资源分配方法,其特征在于,所述创建所述业务程序对应的进程,获取业务数据,并生成至少一个处理所述业务数据的线程,包括:创建所述业务程序对应的进程,为所述进程分配进程号;获取业务数据,并生成至少一个处理所述业务数据的线程,为所述线程分配线程号;将所述进程号、所述线程号、所述进程的状态信息和所述线程的状态信息保存在进程注册表中。4.根据权利要求1所述的资源分配方法,其特征在于,所述注销所述目标线程,包括:删除进程注册表中保存的所述目标线程的线程号和状态信息,并注销所述目标线程的线程号;若所述目标线程所属进程中的所有线程都处理完成,则删除所述进程注册表中保存的所述目标线程所属进程的进程号和状态信息,并注销所述目标线程所属进程的进程号。5.根据权利要求1所述的资源分配方法,其特征在于,在所述获取用户输入的启动指令之前,还包括:创建共享数据区,初始化进程注册表、负载均衡表、管理互斥锁和所述业务互斥锁;获取所述管理互斥锁;获取所有的在线进程信息和在线线程信息,根据所述在线进程信息和所述在线线程信息,判断所述进程注册表中是否存在不在线进程和不在线线程,判断所述负载均衡表中是否存在不在线线程;若所述进程注册表中存在不在线进程,则删除所述进程注册表中保存的所述不在线进程的进程号和状态信息以及所述不在线进程包含的所有线程的线程号和状态信息,并注销所述不在线进程的进程号和所述不在线进程包含的所有线程的线程号;若所述进程注册表中存在不在线线程,则删除所述进程注册表中保存的不在线线程的线程号和状态信息,并注销所述进程注册表中保存的不在线线程的线程号;若所述负载均衡表中存在不在线线程,则删除所述负载均衡表中保存的不在线线程的线程号和状态信息,并注销所述负载均衡表中...

【专利技术属性】
技术研发人员:李超黄俞翔
申请(专利权)人:深圳市恒扬数据股份有限公司
类型:发明
国别省市:广东,44

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

1