【技术实现步骤摘要】
一种资源分配方法及系统
本专利技术属于资源调度
,尤其涉及一种资源分配方法及系统。
技术介绍
面对越来越多的对专业性要求较高的计算需求,通过引入专业的硬件加速卡,卸载原本由CPU执行的特定运算,是一种可靠的技术解决方案。这种解决方案不仅成本低,而且可以大大提高专业计算资源的利用率。目前,在基于硬件加速卡的异构计算机系统中,计算资源分配通常采用轮询调度的静态分配方法。但是,由于每次分配给计算单元的源数据大小有差异,源数据从主机传输到硬件加速卡的时间有差异,计算资源完成源数据计算的时间有差异,生成的新数据大小有差异,新数据从加速卡传输回主机的时间有差异,导致部分计算单元处于阻塞状态,而部分计算单元处于空闲状态,造成计算资源分配不均衡,计算资源利用率较低。
技术实现思路
有鉴于此,本专利技术实施例提供了一种资源分配方法及系统,以解决现有技术中计算资源分配不均衡,计算资源利用率较低的问题。本专利技术实施例的第一方面提供了一种资源分配方法,包括:获取用户输入的启动指令,根据启动指令启动业务程序,创建业务程序对应的进程,获取业务数据,并生成至少一个处理业务数据的线程;获取至少一个申请同一块硬件加速卡计算资源的线程;按照线程申请的时间顺序,将业务互斥锁分配给至少一个申请同一块硬件加速卡计算资源的线程中的目标线程;若硬件加速卡中至少有一个计算单元的排队线程数量未达到预设值,则将目标线程分配给硬件加速卡中的所有计算单元中排队线程数量最少的目标计算单元,并释放目标线程的业务互斥锁;若在目标线程之前的排队线程数量为零,则处理目标线程的业务数据;当目标线程的业务数据处理完成后, ...
【技术保护点】
一种资源分配方法,其特征在于,包括:获取用户输入的启动指令,根据所述启动指令启动业务程序,创建所述业务程序对应的进程,获取业务数据,并生成至少一个处理所述业务数据的线程;获取至少一个申请同一块硬件加速卡计算资源的线程;按照线程申请的时间顺序,将业务互斥锁分配给所述至少一个申请同一块硬件加速卡计算资源的线程中的目标线程;若所述硬件加速卡中至少有一个计算单元的排队线程数量未达到预设值,则将所述目标线程分配给所述硬件加速卡中的所有计算单元中排队线程数量最少的目标计算单元,并释放所述目标线程的业务互斥锁;若在所述目标线程之前的排队线程数量为零,则处理所述目标线程的业务数据;当所述目标线程的业务数据处理完成后,按照所述线程申请的时间顺序,将所述业务互斥锁分配给所述目标线程;将所述目标线程的标志位复位,将所述目标线程所在环形队列的活动位指针指向下一个待处理业务数据的线程,并释放所述目标线程的业务互斥锁,注销所述目标线程。
【技术特征摘要】
1.一种资源分配方法,其特征在于,包括:获取用户输入的启动指令,根据所述启动指令启动业务程序,创建所述业务程序对应的进程,获取业务数据,并生成至少一个处理所述业务数据的线程;获取至少一个申请同一块硬件加速卡计算资源的线程;按照线程申请的时间顺序,将业务互斥锁分配给所述至少一个申请同一块硬件加速卡计算资源的线程中的目标线程;若所述硬件加速卡中至少有一个计算单元的排队线程数量未达到预设值,则将所述目标线程分配给所述硬件加速卡中的所有计算单元中排队线程数量最少的目标计算单元,并释放所述目标线程的业务互斥锁;若在所述目标线程之前的排队线程数量为零,则处理所述目标线程的业务数据;当所述目标线程的业务数据处理完成后,按照所述线程申请的时间顺序,将所述业务互斥锁分配给所述目标线程;将所述目标线程的标志位复位,将所述目标线程所在环形队列的活动位指针指向下一个待处理业务数据的线程,并释放所述目标线程的业务互斥锁,注销所述目标线程。2.根据权利要求1所述的资源分配方法,其特征在于,所述将所述目标线程分配给所述硬件加速卡中的所有计算单元中排队线程数量最少的目标计算单元,具体包括:将所述目标线程所属进程的进程号和所述目标线程的线程号保存在负载均衡表中所述目标计算单元对应的环形队列中,并将所述目标线程的标志位置位。3.根据权利要求1所述的资源分配方法,其特征在于,所述创建所述业务程序对应的进程,获取业务数据,并生成至少一个处理所述业务数据的线程,包括:创建所述业务程序对应的进程,为所述进程分配进程号;获取业务数据,并生成至少一个处理所述业务数据的线程,为所述线程分配线程号;将所述进程号、所述线程号、所述进程的状态信息和所述线程的状态信息保存在进程注册表中。4.根据权利要求1所述的资源分配方法,其特征在于,所述注销所述目标线程,包括:删除进程注册表中保存的所述目标线程的线程号和状态信息,并注销所述目标线程的线程号;若所述目标线程所属进程中的所有线程都处理完成,则删除所述进程注册表中保存的所述目标线程所属进程的进程号和状态信息,并注销所述目标线程所属进程的进程号。5.根据权利要求1所述的资源分配方法,其特征在于,在所述获取用户输入的启动指令之前,还包括:创建共享数据区,初始化进程注册表、负载均衡表、管理互斥锁和所述业务互斥锁;获取所述管理互斥锁;获取所有的在线进程信息和在线线程信息,根据所述在线进程信息和所述在线线程信息,判断所述进程注册表中是否存在不在线进程和不在线线程,判断所述负载均衡表中是否存在不在线线程;若所述进程注册表中存在不在线进程,则删除所述进程注册表中保存的所述不在线进程的进程号和状态信息以及所述不在线进程包含的所有线程的线程号和状态信息,并注销所述不在线进程的进程号和所述不在线进程包含的所有线程的线程号;若所述进程注册表中存在不在线线程,则删除所述进程注册表中保存的不在线线程的线程号和状态信息,并注销所述进程注册表中保存的不在线线程的线程号;若所述负载均衡表中存在不在线线程,则删除所述负载均衡表中保存的不在线线程的线程号和状态信息,并注销所述负载均衡表中...
【专利技术属性】
技术研发人员:李超,黄俞翔,
申请(专利权)人:深圳市恒扬数据股份有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。