CN108052396A - 一种资源分配方法及系统 - Google Patents

一种资源分配方法及系统 Download PDF

Info

Publication number
CN108052396A
CN108052396A CN201711205195.3A CN201711205195A CN108052396A CN 108052396 A CN108052396 A CN 108052396A CN 201711205195 A CN201711205195 A CN 201711205195A CN 108052396 A CN108052396 A CN 108052396A
Authority
CN
China
Prior art keywords
thread
online
subject
business
mutual exclusion
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201711205195.3A
Other languages
English (en)
Other versions
CN108052396B (zh
Inventor
李超
黄俞翔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Hengxin Data Ltd By Share Ltd
Original Assignee
Shenzhen Hengxin Data Ltd By Share Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Hengxin Data Ltd By Share Ltd filed Critical Shenzhen Hengxin Data Ltd By Share Ltd
Priority to CN201711205195.3A priority Critical patent/CN108052396B/zh
Publication of CN108052396A publication Critical patent/CN108052396A/zh
Application granted granted Critical
Publication of CN108052396B publication Critical patent/CN108052396B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

一种资源分配方法及系统
技术领域
本发明属于资源调度技术领域,尤其涉及一种资源分配方法及系统。
背景技术
面对越来越多的对专业性要求较高的计算需求,通过引入专业的硬件加速卡,卸载原本由CPU执行的特定运算,是一种可靠的技术解决方案。这种解决方案不仅成本低,而且可以大大提高专业计算资源的利用率。
目前,在基于硬件加速卡的异构计算机系统中,计算资源分配通常采用轮询调度的静态分配方法。但是,由于每次分配给计算单元的源数据大小有差异,源数据从主机传输到硬件加速卡的时间有差异,计算资源完成源数据计算的时间有差异,生成的新数据大小有差异,新数据从加速卡传输回主机的时间有差异,导致部分计算单元处于阻塞状态,而部分计算单元处于空闲状态,造成计算资源分配不均衡,计算资源利用率较低。
发明内容
有鉴于此,本发明实施例提供了一种资源分配方法及系统,以解决现有技术中计算资源分配不均衡,计算资源利用率较低的问题。
本发明实施例的第一方面提供了一种资源分配方法,包括:
获取用户输入的启动指令,根据启动指令启动业务程序,创建业务程序对应的进程,获取业务数据,并生成至少一个处理业务数据的线程;
获取至少一个申请同一块硬件加速卡计算资源的线程;
按照线程申请的时间顺序,将业务互斥锁分配给至少一个申请同一块硬件加速卡计算资源的线程中的目标线程;
若硬件加速卡中至少有一个计算单元的排队线程数量未达到预设值,则将目标线程分配给硬件加速卡中的所有计算单元中排队线程数量最少的目标计算单元,并释放目标线程的业务互斥锁;
若在目标线程之前的排队线程数量为零,则处理目标线程的业务数据;
当目标线程的业务数据处理完成后,按照线程申请的时间顺序,将业务互斥锁分配给目标线程;
将目标线程的标志位复位,将目标线程所在环形队列的活动位指针指向下一个待处理业务数据的线程,并释放目标线程的业务互斥锁,注销目标线程。
本发明实施例的第二方面提供了一种资源分配系统,包括:
指令获取模块,用于获取用户输入的启动指令,根据启动指令启动业务程序,创建业务程序对应的进程,获取业务数据,并生成至少一个处理业务数据的线程;
线程获取模块,用于获取至少一个申请同一块硬件加速卡计算资源的线程;
第一业务互斥锁分配模块,用于按照线程申请的时间顺序,将业务互斥锁分配给至少一个申请同一块硬件加速卡计算资源的线程中的目标线程;
目标线程分配模块,用于若硬件加速卡中至少有一个计算单元的排队线程数量未达到预设值,则将目标线程分配给硬件加速卡中的所有计算单元中排队线程数量最少的目标计算单元,并释放目标线程的业务互斥锁;
目标线程处理模块,用于若在目标线程之前的排队线程数量为零,则处理目标线程的业务数据;
第二业务互斥锁分配模块,用于当目标线程的业务数据处理完成后,按照线程申请的时间顺序,将业务互斥锁分配给目标线程;
目标线程注销模块,用于将目标线程的标志位复位,将目标线程所在环形队列的活动位指针指向下一个待处理业务数据的线程,并释放目标线程的业务互斥锁,注销目标线程。
本发明实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上所述资源分配方法的步骤。
本发明实施例的第四方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现如上所述资源分配方法的步骤。
本发明实施例与现有技术相比存在的有益效果是:本发明实施例提供的资源分配方法及系统,通过获取用户输入的启动指令,根据启动指令启动业务程序,创建业务程序对应的进程,获取业务数据,并生成至少一个处理业务数据的线程;获取至少一个申请同一块硬件加速卡计算资源的线程;按照线程申请的时间顺序,将业务互斥锁分配给至少一个申请同一块硬件加速卡计算资源的线程中的目标线程;若硬件加速卡中至少有一个计算单元的排队线程数量未达到预设值,则将目标线程分配给排队线程数量最少的目标计算单元,并释放目标线程的业务互斥锁;若在目标线程之前的排队线程数量为零,则处理目标线程的业务数据;按照线程申请的时间顺序,将业务互斥锁分配给目标线程;将目标线程的标志位复位,将目标线程所在环形队列的活动位指针指向下一个待处理业务数据的线程,并释放目标线程的业务互斥锁,注销目标线程,从而可以有效解决计算资源分配不均衡,计算资源利用率较低的问题,能够显著提高计算资源利用率,提高了硬件加速卡的应用价值。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的资源分配方法的实现流程图;
图2是本发明实施例二提供的资源分配方法的实现流程图;
图3是本发明实施例三提供的资源分配系统的实现流程图;
图4是本发明实施例四提供的资源分配系统的实现流程图;
图5是本发明实施例五提供的终端设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
本发明的说明书和权利要求书及上述附图中的术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含一系列步骤或单元的过程、方法或系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。此外,术语“第一”、“第二”和“第三”等是用于区别不同对象,而非用于描述特定顺序。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一
参照图1,图1示出了本发明实施例一提供的资源分配方法的实现流程,本实施例的流程执行主体可以是终端设备,其过程详述如下:
S101:获取用户输入的启动指令,根据启动指令启动业务程序,创建业务程序对应的进程,获取业务数据,并生成至少一个处理业务数据的线程。
当用户启动业务程序时,终端设备获取用户输入的启动指令,根据启动指令启动业务程序。
创建业务程序对应的进程,为进程分配进程号。
业务程序启动后,为业务程序创建对应的进程,为进程分配进程号,具体过程如下:
获取管理互斥锁;
判断已有进程数量是否达到系统预设值;
若已有进程数量达到系统预设值,则直接释放管理互斥锁;
若已有进程数量未达到系统预设值,则获取空余ID号,将空余ID号注册为业务程序对应进程的进程号,并将已有进程数量加一;
释放管理互斥锁。
其中,管理互斥锁用于当有多个任务需要使用相同资源时,保证没有其他任务可以使用当前任务正在使用的资源。
获取业务数据,并生成至少一个处理业务数据的线程,为线程分配线程号。
具体地,获取业务程序需要处理的业务数据,生成至少一个线程,线程用来处理业务数据,一个业务程序对应的进程包括多个线程,为每个线程分配线程号。其中,为线程分配线程号的过程如下:
获取管理互斥锁;
判断线程所属进程的进程号是否存在;
若线程所属进程的进程号不存在,则直接释放管理互斥锁;
若线程所属进程的进程号存在,则判断进程已有线程数量是否达到进程预设值;
若进程已有线程数量达到进程预设值,则直接释放管理互斥锁;
若进程已有线程数量未达到进程预设值,则获取空余ID号,将空余ID号注册为线程号,并将进程已有线程数量加一;
释放管理互斥锁。
将进程号、线程号、进程的状态信息和线程的状态信息保存在进程注册表中。
其中,进程注册表用于保存进程和线程的注册信息。进程注册表包括MAGIC识别码、管理互斥锁、当前进程数量、历史进程数量、当前线程数量、历史线程数量、上一次分配的线程号指针、失效进程数量以及在线进程信息。在线进程信息包括进程号和该进程下工作线程数量。当进程或者线程进行注册或者注销时需要对MAGIC识别码进行校验,校验成功后才可以进行注册或者注销。
进一步地,终端设备支持多进程和多线程同时进行注册。
在本实施例中,通过对业务程序对应进程和线程的注册进行管理,并支持多进程和多线程同时进行注册,能够支持资源分配过程中多个业务程序的异步启动,可以适应需要动态增加业务程序的应用场合。
S102:获取至少一个申请同一块硬件加速卡计算资源的线程。
当计算任务较多时,会出现多个线程申请同一块硬件加速卡计算资源的情况,此时,终端设备获取上述申请同一块硬件加速卡计算资源的多个线程。
S103:按照线程申请的时间顺序,将业务互斥锁分配给至少一个申请同一块硬件加速卡计算资源的线程中的目标线程。
其中,目标线程是指申请同一块硬件加速卡计算资源的线程中获得业务互斥锁的线程。业务互斥锁用于当目标线程正在使用硬件加速卡的计算资源时,保证没有其他线程可以使用上述硬件加速卡的计算资源。
按照线程申请硬件加速卡计算资源的时间顺序,将业务互斥锁分配给最先申请上述硬件加速卡计算资源的目标线程。
S104:若硬件加速卡中至少有一个计算单元的排队线程数量未达到预设值,则将目标线程分配给硬件加速卡中的所有计算单元中排队线程数量最少的目标计算单元,并释放目标线程的业务互斥锁。
若硬件加速卡中所有计算单元的排队线程数量均达到预设值,则报告错误,并释放目标线程的业务互斥锁。
若硬件加速卡中至少有一个计算单元的排队线程数量未达到预设值,则获取硬件加速卡中排队线程数量最少的计算单元,即目标计算单元,将目标线程分配给目标计算单元,并释放目标线程的业务互斥锁。
具体地,若硬件加速卡中至少有一个计算单元的排队线程数量未达到预设值,则将目标线程所属进程的进程号和目标线程的线程号保存在负载均衡表中目标计算单元对应的环形队列中,并将目标线程的标志位置位,即将目标线程的标志位置1,释放目标线程的业务互斥锁。
其中,负载均衡表为每一个计算单元产生一个先进先出环形队列,先进先出环形队列包括排队线程数量、活动位指针和队列数组。队列数组中的每个数据成员都是一个32位的二进制数,其中第1至13位表示线程号;第14到16位表示线程所属进程的进程号;第32位表示线程的标志位,若线程的标志位为0,则表示线程的业务数据已经处理完成,若线程的标志位为1,则表示线程处于等待状态。
预设值是指上述队列数组的容量。
S105:若在目标线程之前的排队线程数量为零,则处理目标线程的业务数据。
若在目标线程之前的排队线程数量大于零,则目标线程处于等待状态,直至目标线程之前的排队线程的业务数据都处理完成,即在目标线程之前的排队线程数量为零,此时开始处理目标线程的业务数据。
S106:当目标线程的业务数据处理完成后,按照线程申请的时间顺序,将业务互斥锁分配给目标线程。
当目标线程的业务数据处理完成后,目标线程申请业务互斥锁,按照线程申请的时间顺序,将业务互斥锁分配给目标线程。
S107:将目标线程的标志位复位,将目标线程所在环形队列的活动位指针指向下一个待处理业务数据的线程,并释放目标线程的业务互斥锁,注销目标线程。
将目标线程的标志位复位是指将目标线程的标志位置0。
注销目标线程具体包括:删除进程注册表中保存的目标线程的线程号和状态信息,并注销目标线程的线程号;若目标线程所属进程中的所有线程都处理完成,则删除进程注册表中保存的目标线程所属进程的进程号和状态信息,并注销目标线程所属进程的进程号。
注销目标线程的线程号的具体过程如下:
获取管理互斥锁;
判断目标线程所属进程的进程号是否存在;
若目标线程所属进程的进程号不存在,则直接释放管理互斥锁;
若目标线程所属进程的进程号存在,则判断目标线程的线程号是否存在;
若目标线程的线程号不存在,则直接释放管理互斥锁;
若目标线程的线程号存在,则注销目标线程的线程号,并将目标线程所属进程的已有线程数量减一;
释放管理互斥锁。
注销目标线程所属进程的进程号的具体过程如下:
获取管理互斥锁;
判断目标线程所属进程的进程号是否存在;
若目标线程所属进程的进程号不存在,则直接释放管理互斥锁;
若目标线程所属进程的进程号存在,则注销目标线程所属进程的进程号,并将目标线程所属进程的已有线程数量减一;
释放管理互斥锁。
进一步地,终端设备支持多进程和多线程同时进行注销。
在本实施例中,通过对业务程序对应进程和线程的注销进行管理,并支持多进程和多线程同时进行注销,能够支持资源分配过程中多个业务程序的异步退出,可以适应需要动态减少业务程序的应用场合。
以一个具体应用场景为例,当用户需要对文件进行压缩时,启动压缩工具对文件数据进行压缩,压缩工具启动后就是一个进程,获取待压缩的文件数据,并生成八个线程,将待压缩的文件数据分配给上述八个线程进行处理。若上述八个线程中的三个线程申请同一块硬件加速卡计算资源,则将业务互斥锁分配给上述三个线程中最先申请上述硬件加速卡计算资源的目标线程。将目标线程分配给上述硬件加速卡中的所有计算单元中排队线程数量最少的目标计算单元,若目标线程之前的排队线程数量为零,则目标计算单元开始对目标线程的文件数据进行压缩。当压缩完成后,将业务互斥锁分配给目标线程,将目标线程的标志位置0,并将目标线程所在环形队列的活动位指针指向下一个待压缩文件数据的线程,释放业务互斥锁,并注销目标线程。若目标线程所属进程即压缩工具下的八个线程都将文件数据压缩完成,则注销压缩工具对应的进程。
在本实施例中,通过获取用户输入的启动指令,根据启动指令启动业务程序,创建业务程序对应的进程,获取业务数据,并生成至少一个处理业务数据的线程;获取至少一个申请同一块硬件加速卡计算资源的线程;按照线程申请的时间顺序,将业务互斥锁分配给至少一个申请同一块硬件加速卡计算资源的线程中的目标线程;若硬件加速卡中至少有一个计算单元的排队线程数量未达到预设值,则将目标线程分配给排队线程数量最少的目标计算单元,并释放目标线程的业务互斥锁;若在目标线程之前的排队线程数量为零,则处理目标线程的业务数据;按照线程申请的时间顺序,将业务互斥锁分配给目标线程;将目标线程的标志位复位,将目标线程所在环形队列的活动位指针指向下一个待处理业务数据的线程,并释放目标线程的业务互斥锁,注销目标线程,从而可以有效解决计算资源分配不均衡,计算资源利用率较低的问题,能够显著提高计算资源利用率,提高了硬件加速卡的应用价值。
实施例二
参照图2,图2示出了本发明实施例二提供的资源分配方法的实现流程。在上述实施例的基础上,本发明实施例详述如下:
S201:创建共享数据区,初始化进程注册表、负载均衡表、管理互斥锁和业务互斥锁。
共享数据区用来保存进程注册表和负载均衡表。
清空进程注册表信息和负载均衡表信息,并设置MAGIC识别码。
S202:获取管理互斥锁。
在访问进程注册表和负载均衡表中的信息之前,要获取管理互斥锁。
S203:获取所有的在线进程信息和在线线程信息,根据在线进程信息和在线线程信息,判断进程注册表中是否存在不在线进程和不在线线程,判断负载均衡表中是否存在不在线线程。
获取内核中所有的在线进程信息,将在线进程信息与进程注册表中保存的进程信息进行对比,判断进程注册表中是否存在不在线进程。
获取内核中所有的在线线程信息,将在线线程信息与进程注册表中保存的线程信息进行对比,判断进程注册表中是否存在不在线线程;将在线线程信息与负载均衡表中保存的线程信息进行对比,判断负载均衡表中是否存在不在线线程。
S204:若进程注册表中存在不在线进程,则删除进程注册表中保存的不在线进程的进程号和状态信息以及不在线进程包含的所有线程的线程号和状态信息,并注销不在线进程的进程号和不在线进程包含的所有线程的线程号。
若进程注册表中保存的所有进程都处于在线状态,则执行步骤S205。
S205:若进程注册表中存在不在线线程,则删除进程注册表中保存的不在线线程的线程号和状态信息,并注销进程注册表中保存的不在线线程的线程号。
若进程注册表中所有线程都处于在线状态,则执行步骤S206。
S206:若负载均衡表中存在不在线线程,则删除负载均衡表中保存的不在线线程的线程号和状态信息,并注销负载均衡表中保存的不在线线程的线程号。
若负载均衡表中所有线程都处于在线状态,则执行步骤S207。
S207:释放管理互斥锁。
当对进程注册表和负载均衡表中的信息处理完成后,释放管理互斥锁。
若内核中不存在在线进程和在线线程,则进入休眠状态,否则重复执行步骤S202至S207。
在本实施例中,通过创建共享数据区,初始化进程注册表、负载均衡表、管理互斥锁和业务互斥锁;获取管理互斥锁;获取所有的在线进程信息和在线线程信息,根据在线进程信息和在线线程信息,判断进程注册表中是否存在不在线进程和不在线线程,判断负载均衡表中是否存在不在线线程;若进程注册表中存在不在线进程,则删除进程注册表中保存的不在线进程的进程号和状态信息以及不在线进程包含的所有线程的线程号和状态信息,并注销不在线进程的进程号和不在线进程包含的所有线程的线程号;若进程注册表中存在不在线线程,则删除进程注册表中保存的不在线线程的线程号和状态信息,并注销进程注册表中保存的不在线线程的线程号;若负载均衡表中存在不在线线程,则删除负载均衡表中保存的不在线线程的线程号和状态信息,并注销负载均衡表中保存的不在线线程的线程号;释放管理互斥锁,能够实时监控进程注册表和负载均衡表中的进程和线程,一旦发现不在线进程或者不在线线程,及时清理进程注册表和负载均衡表中的不在线进程或者不在线线程,减少无效的排队占位,提高资源分配的效率。
实施例三
参照图3,图3示出了本发明实施例三提供的资源分配系统300的结构示意图。本实施例中的资源分配系统300包括:指令获取模块301、线程获取模块302、第一业务互斥锁分配模块303、目标线程分配模块304、目标线程处理模块305、第二业务互斥锁分配模块306和目标线程注销模块307。
指令获取模块301,用于获取用户输入的启动指令,根据启动指令启动业务程序,创建业务程序对应的进程,获取业务数据,并生成至少一个处理业务数据的线程。
指令获取模块301还包括:进程号分配单元,线程号分配单元和存储单元。
进程号分配单元,用于创建业务程序对应的进程,为进程分配进程号。
线程号分配单元,用于获取业务数据,并生成至少一个处理业务数据的线程,为线程分配线程号。
存储单元,用于将进程号、线程号、进程的状态信息和线程的状态信息保存在进程注册表中。
线程获取模块302,用于获取至少一个申请同一块硬件加速卡计算资源的线程。
第一业务互斥锁分配模块303,用于按照线程申请的时间顺序,将业务互斥锁分配给至少一个申请同一块硬件加速卡计算资源的线程中的目标线程。
目标线程分配模块304,用于若硬件加速卡中至少有一个计算单元的排队线程数量未达到预设值,则将目标线程分配给硬件加速卡中的所有计算单元中排队线程数量最少的目标计算单元,并释放目标线程的业务互斥锁。
目标线程分配模块304,还用于将目标线程所属进程的进程号和目标线程的线程号保存在负载均衡表中所述目标计算单元对应的环形队列中,并将目标线程的标志位置位。
目标线程处理模块305,用于若在目标线程之前的排队线程数量为零,则处理目标线程的业务数据。
第二业务互斥锁分配模块306,用于当目标线程的业务数据处理完成后,按照线程申请的时间顺序,将业务互斥锁分配给目标线程。
目标线程注销模块307,用于将目标线程的标志位复位,将目标线程所在环形队列的活动位指针指向下一个待处理业务数据的线程,并释放目标线程的业务互斥锁,注销目标线程。
目标线程注销模块307还包括线程注销单元和进程注销单元。
线程注销单元,用于删除进程注册表中保存的目标线程的线程号和状态信息,并注销目标线程的线程号。
进程注销单元,用于若目标线程所属进程中的所有线程都处理完成,则删除进程注册表中保存的目标线程所属进程的进程号和状态信息,并注销目标线程所属进程的进程号。
在本实施例中,通过指令获取模块获取用户输入的启动指令,根据启动指令启动业务程序,创建业务程序对应的进程,获取业务数据,并生成至少一个处理业务数据的线程;通过线程获取模块获取至少一个申请同一块硬件加速卡计算资源的线程;通过第一业务互斥锁分配模块按照线程申请的时间顺序,将业务互斥锁分配给至少一个申请同一块硬件加速卡计算资源的线程中的目标线程;通过目标线程分配模块,若硬件加速卡中至少有一个计算单元的排队线程数量未达到预设值,则将目标线程分配给排队线程数量最少的目标计算单元,并释放目标线程的业务互斥锁;通过目标线程处理模块,若在目标线程之前的排队线程数量为零,则处理目标线程的业务数据;通过第二业务互斥锁分配模块按照线程申请的时间顺序,将业务互斥锁分配给目标线程;通过目标线程注销模块将目标线程的标志位复位,将目标线程所在环形队列的活动位指针指向下一个待处理业务数据的线程,并释放目标线程的业务互斥锁,注销目标线程,从而可以有效解决计算资源分配不均衡,计算资源利用率较低的问题,能够显著提高计算资源利用率,提高了硬件加速卡的应用价值。
实施例四
参照图4,图4示出了本发明实施例四提供的资源分配系统300的结构示意图。在上述实施例的基础上,本实施例中的资源分配系统300还包括:共享数据区创建模块308、管理互斥锁获取模块309、判断模块310、不在线进程注销模块311、第一不在线线程注销模块312、第二不在线线程注销模块313和管理互斥锁释放模块314。
共享数据区创建模块308,用于创建共享数据区,初始化进程注册表、负载均衡表、管理互斥锁和业务互斥锁;
管理互斥锁获取模块309,用于获取管理互斥锁;
判断模块310,用于获取所有的在线进程信息和在线线程信息,根据在线进程信息和在线线程信息,判断进程注册表中是否存在不在线进程和不在线线程,判断负载均衡表中是否存在不在线线程;
不在线进程注销模块311,用于若进程注册表中存在不在线进程,则删除进程注册表中保存的不在线进程的进程号和状态信息以及不在线进程包含的所有线程的线程号和状态信息,并注销不在线进程的进程号和不在线进程包含的所有线程的线程号;
第一不在线线程注销模块312,用于若进程注册表中存在不在线线程,则删除进程注册表中保存的不在线线程的线程号和状态信息,并注销进程注册表中保存的不在线线程的线程号;
第二不在线线程注销模块313,用于若负载均衡表中存在不在线线程,则删除负载均衡表中保存的不在线线程的线程号和状态信息,并注销负载均衡表中保存的不在线线程的线程号;
管理互斥锁释放模块314,用于释放管理互斥锁。
在本实施例中,通过共享数据区创建模块创建共享数据区,初始化进程注册表、负载均衡表、管理互斥锁和业务互斥锁;通过管理互斥锁获取模块获取管理互斥锁;通过判断模块获取所有的在线进程信息和在线线程信息,根据在线进程信息和在线线程信息,判断进程注册表中是否存在不在线进程和不在线线程,判断负载均衡表中是否存在不在线线程;通过不在线进程注销模块,若进程注册表中存在不在线进程,则删除进程注册表中保存的不在线进程的进程号和状态信息以及不在线进程包含的所有线程的线程号和状态信息,并注销不在线进程的进程号和不在线进程包含的所有线程的线程号;通过第一不在线线程注销模块,若进程注册表中存在不在线线程,则删除进程注册表中保存的不在线线程的线程号和状态信息,并注销进程注册表中保存的不在线线程的线程号;通过第二不在线线程注销模块,若负载均衡表中存在不在线线程,则删除负载均衡表中保存的不在线线程的线程号和状态信息,并注销负载均衡表中保存的不在线线程的线程号;通过管理互斥锁释放模块释放管理互斥锁,能够实时监控进程注册表和负载均衡表中的进程和线程,一旦发现不在线进程或者不在线线程,及时清理进程注册表和负载均衡表中的不在线进程或者不在线线程,减少无效的排队占位,提高资源分配的效率。
实施例五
参照图5,本发明实施例还提供了一种终端设备5,包括存储器51、处理器50以及存储在存储器中并可在处理器上运行的计算机程序52,所述处理器50执行所述计算机程序52时实现如上述实施例中所述的各方法实施例中的步骤,例如图1所示的步骤S101至步骤S107。或者,所述处理器50执行所述计算机程序52时实现如上述实施例中所述的各系统实施例中的各模块的功能,例如图3所示的模块301至307的功能。
所述终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器50、存储器51。例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器50可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器51可以是所述终端设备的内部存储单元,例如终端设备的硬盘或内存。所述存储器51也可以是所述终端设备的外部存储设备,例如所述终端设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器51还可以既包括终端设备的内部存储单元也包括外部存储设备。所述存储器51用于存储所述计算机程序52以及所述终端设备所需的其他程序和数据。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。
实施例六
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现如上述实施例中所述的各方法实施例中的步骤,例如图1所示的步骤S101至步骤S107。或者,所述计算机程序被处理器执行时实现如上述实施例中所述的各系统实施例中的各模块的功能,例如图3所示的模块301至307的功能。
所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本发明实施例系统中的模块或单元可以根据实际需要进行合并、划分和删减。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种资源分配方法,其特征在于,包括:
获取用户输入的启动指令,根据所述启动指令启动业务程序,创建所述业务程序对应的进程,获取业务数据,并生成至少一个处理所述业务数据的线程;
获取至少一个申请同一块硬件加速卡计算资源的线程;
按照线程申请的时间顺序,将业务互斥锁分配给所述至少一个申请同一块硬件加速卡计算资源的线程中的目标线程;
若所述硬件加速卡中至少有一个计算单元的排队线程数量未达到预设值,则将所述目标线程分配给所述硬件加速卡中的所有计算单元中排队线程数量最少的目标计算单元,并释放所述目标线程的业务互斥锁;
若在所述目标线程之前的排队线程数量为零,则处理所述目标线程的业务数据;
当所述目标线程的业务数据处理完成后,按照所述线程申请的时间顺序,将所述业务互斥锁分配给所述目标线程;
将所述目标线程的标志位复位,将所述目标线程所在环形队列的活动位指针指向下一个待处理业务数据的线程,并释放所述目标线程的业务互斥锁,注销所述目标线程。
2.根据权利要求1所述的资源分配方法,其特征在于,所述将所述目标线程分配给所述硬件加速卡中的所有计算单元中排队线程数量最少的目标计算单元,具体包括:
将所述目标线程所属进程的进程号和所述目标线程的线程号保存在负载均衡表中所述目标计算单元对应的环形队列中,并将所述目标线程的标志位置位。
3.根据权利要求1所述的资源分配方法,其特征在于,所述创建所述业务程序对应的进程,获取业务数据,并生成至少一个处理所述业务数据的线程,包括:
创建所述业务程序对应的进程,为所述进程分配进程号;
获取业务数据,并生成至少一个处理所述业务数据的线程,为所述线程分配线程号;
将所述进程号、所述线程号、所述进程的状态信息和所述线程的状态信息保存在进程注册表中。
4.根据权利要求1所述的资源分配方法,其特征在于,所述注销所述目标线程,包括:
删除进程注册表中保存的所述目标线程的线程号和状态信息,并注销所述目标线程的线程号;
若所述目标线程所属进程中的所有线程都处理完成,则删除所述进程注册表中保存的所述目标线程所属进程的进程号和状态信息,并注销所述目标线程所属进程的进程号。
5.根据权利要求1所述的资源分配方法,其特征在于,在所述获取用户输入的启动指令之前,还包括:
创建共享数据区,初始化进程注册表、负载均衡表、管理互斥锁和所述业务互斥锁;
获取所述管理互斥锁;
获取所有的在线进程信息和在线线程信息,根据所述在线进程信息和所述在线线程信息,判断所述进程注册表中是否存在不在线进程和不在线线程,判断所述负载均衡表中是否存在不在线线程;
若所述进程注册表中存在不在线进程,则删除所述进程注册表中保存的所述不在线进程的进程号和状态信息以及所述不在线进程包含的所有线程的线程号和状态信息,并注销所述不在线进程的进程号和所述不在线进程包含的所有线程的线程号;
若所述进程注册表中存在不在线线程,则删除所述进程注册表中保存的不在线线程的线程号和状态信息,并注销所述进程注册表中保存的不在线线程的线程号;
若所述负载均衡表中存在不在线线程,则删除所述负载均衡表中保存的不在线线程的线程号和状态信息,并注销所述负载均衡表中保存的不在线线程的线程号;
释放所述管理互斥锁。
6.一种资源分配系统,其特征在于,包括:
指令获取模块,用于获取用户输入的启动指令,根据所述启动指令启动业务程序,创建所述业务程序对应的进程,获取业务数据,并生成至少一个处理所述业务数据的线程;
线程获取模块,用于获取至少一个申请同一块硬件加速卡计算资源的线程;
第一业务互斥锁分配模块,用于按照线程申请的时间顺序,将业务互斥锁分配给所述至少一个申请同一块硬件加速卡计算资源的线程中的目标线程;
目标线程分配模块,用于若所述硬件加速卡中至少有一个计算单元的排队线程数量未达到预设值,则将所述目标线程分配给所述硬件加速卡中的所有计算单元中排队线程数量最少的目标计算单元,并释放所述目标线程的业务互斥锁;
目标线程处理模块,用于若在所述目标线程之前的排队线程数量为零,则处理所述目标线程的业务数据;
第二业务互斥锁分配模块,用于当所述目标线程的业务数据处理完成后,按照所述线程申请的时间顺序,将所述业务互斥锁分配给所述目标线程;
目标线程注销模块,用于将所述目标线程的标志位复位,将所述目标线程所在环形队列的活动位指针指向下一个待处理业务数据的线程,并释放所述目标线程的业务互斥锁,注销所述目标线程。
7.根据权利要求6所述的资源分配系统,其特征在于,所述目标线程分配模块,还用于将所述目标线程所属进程的进程号和所述目标线程的线程号保存在负载均衡表中所述目标计算单元对应的环形队列中,并将所述目标线程的标志位置位。
8.根据权利要求6所述的资源分配系统,其特征在于,还包括:
共享数据区创建模块,用于创建共享数据区,初始化进程注册表、负载均衡表、管理互斥锁和所述业务互斥锁;
管理互斥锁获取模块,用于获取所述管理互斥锁;
判断模块,用于获取所有的在线进程信息和在线线程信息,根据所述在线进程信息和所述在线线程信息,判断所述进程注册表中是否存在不在线进程和不在线线程,判断所述负载均衡表中是否存在不在线线程;
不在线进程注销模块,用于若所述进程注册表中存在不在线进程,则删除所述进程注册表中保存的所述不在线进程的进程号和状态信息以及所述不在线进程包含的所有线程的线程号和状态信息,并注销所述不在线进程的进程号和所述不在线进程包含的所有线程的线程号;
第一不在线线程注销模块,用于若所述进程注册表中存在不在线线程,则删除所述进程注册表中保存的不在线线程的线程号和状态信息,并注销所述进程注册表中保存的不在线线程的线程号;
第二不在线线程注销模块,用于若所述负载均衡表中存在不在线线程,则删除所述负载均衡表中保存的不在线线程的线程号和状态信息,并注销所述负载均衡表中保存的不在线线程的线程号;
管理互斥锁释放模块,用于释放所述管理互斥锁。
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述资源分配方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述资源分配方法的步骤。
CN201711205195.3A 2017-11-27 2017-11-27 一种资源分配方法及系统 Active CN108052396B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711205195.3A CN108052396B (zh) 2017-11-27 2017-11-27 一种资源分配方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711205195.3A CN108052396B (zh) 2017-11-27 2017-11-27 一种资源分配方法及系统

Publications (2)

Publication Number Publication Date
CN108052396A true CN108052396A (zh) 2018-05-18
CN108052396B CN108052396B (zh) 2021-05-07

Family

ID=62120517

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711205195.3A Active CN108052396B (zh) 2017-11-27 2017-11-27 一种资源分配方法及系统

Country Status (1)

Country Link
CN (1) CN108052396B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109710400A (zh) * 2018-12-17 2019-05-03 平安普惠企业管理有限公司 线程资源分组的方法及装置
CN110362389A (zh) * 2019-05-28 2019-10-22 深圳市道通智能航空技术有限公司 多线程退出方法及移动终端
CN111913810A (zh) * 2020-07-28 2020-11-10 北京百度网讯科技有限公司 多线程场景下的任务执行方法、装置、设备和存储介质
CN112084031A (zh) * 2020-09-14 2020-12-15 海光信息技术股份有限公司 一种进程分配方法、并行处理器及电子设备
CN112153675A (zh) * 2020-09-01 2020-12-29 中国联合网络通信集团有限公司 一种业务开通方法及装置
CN112631802A (zh) * 2019-04-29 2021-04-09 杭州涂鸦信息技术有限公司 一种线程间通信方法及相关装置
CN114221865A (zh) * 2022-02-21 2022-03-22 广州鲲鹏物联科技有限公司 物联网终端的业务功能实现方法、装置、设备及存储介质
CN115086328A (zh) * 2022-04-30 2022-09-20 济南浪潮数据技术有限公司 一种元数据服务业务处理方法、装置、设备及介质
CN117200301A (zh) * 2023-11-08 2023-12-08 深圳海辰储能科技有限公司 基于储能系统的端口调用方法及装置
CN115086328B (zh) * 2022-04-30 2024-10-22 济南浪潮数据技术有限公司 一种元数据服务业务处理方法、装置、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102591722A (zh) * 2011-12-31 2012-07-18 龙芯中科技术有限公司 片上网络多核处理器多线程的资源分配处理方法和系统
CN103605568A (zh) * 2013-10-29 2014-02-26 北京奇虎科技有限公司 一种多线程管理方法及装置
CN106681811A (zh) * 2016-12-08 2017-05-17 腾讯科技(深圳)有限公司 基于线程池的多线程调度方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102591722A (zh) * 2011-12-31 2012-07-18 龙芯中科技术有限公司 片上网络多核处理器多线程的资源分配处理方法和系统
CN103605568A (zh) * 2013-10-29 2014-02-26 北京奇虎科技有限公司 一种多线程管理方法及装置
CN106681811A (zh) * 2016-12-08 2017-05-17 腾讯科技(深圳)有限公司 基于线程池的多线程调度方法及装置

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109710400A (zh) * 2018-12-17 2019-05-03 平安普惠企业管理有限公司 线程资源分组的方法及装置
CN112631802B (zh) * 2019-04-29 2024-04-12 杭州涂鸦信息技术有限公司 一种线程间通信方法及相关装置
CN112631802A (zh) * 2019-04-29 2021-04-09 杭州涂鸦信息技术有限公司 一种线程间通信方法及相关装置
US11853153B2 (en) 2019-05-28 2023-12-26 Autel Robotics Co., Ltd. Multi-thread exit method and mobile terminal
CN110362389A (zh) * 2019-05-28 2019-10-22 深圳市道通智能航空技术有限公司 多线程退出方法及移动终端
CN111913810A (zh) * 2020-07-28 2020-11-10 北京百度网讯科技有限公司 多线程场景下的任务执行方法、装置、设备和存储介质
CN111913810B (zh) * 2020-07-28 2024-03-19 阿波罗智能技术(北京)有限公司 多线程场景下的任务执行方法、装置、设备和存储介质
CN112153675A (zh) * 2020-09-01 2020-12-29 中国联合网络通信集团有限公司 一种业务开通方法及装置
CN112153675B (zh) * 2020-09-01 2023-06-23 中国联合网络通信集团有限公司 一种业务开通方法及装置
CN112084031B (zh) * 2020-09-14 2022-07-08 成都海光微电子技术有限公司 一种进程分配方法、并行处理器及电子设备
CN112084031A (zh) * 2020-09-14 2020-12-15 海光信息技术股份有限公司 一种进程分配方法、并行处理器及电子设备
CN114221865B (zh) * 2022-02-21 2022-05-13 广州鲲鹏物联科技有限公司 物联网终端的业务功能实现方法、装置、设备及存储介质
CN114221865A (zh) * 2022-02-21 2022-03-22 广州鲲鹏物联科技有限公司 物联网终端的业务功能实现方法、装置、设备及存储介质
CN115086328A (zh) * 2022-04-30 2022-09-20 济南浪潮数据技术有限公司 一种元数据服务业务处理方法、装置、设备及介质
CN115086328B (zh) * 2022-04-30 2024-10-22 济南浪潮数据技术有限公司 一种元数据服务业务处理方法、装置、设备及介质
CN117200301A (zh) * 2023-11-08 2023-12-08 深圳海辰储能科技有限公司 基于储能系统的端口调用方法及装置
CN117200301B (zh) * 2023-11-08 2024-01-26 深圳海辰储能科技有限公司 基于储能系统的端口调用方法及装置

Also Published As

Publication number Publication date
CN108052396B (zh) 2021-05-07

Similar Documents

Publication Publication Date Title
CN108052396A (zh) 一种资源分配方法及系统
CN108363623A (zh) Gpu资源调度方法、装置、设备及计算机可读存储介质
CN106547612B (zh) 一种多任务处理方法及装置
CN113641457B (zh) 容器创建方法、装置、设备、介质及程序产品
US10554575B2 (en) Equitable sharing of system resources in workflow execution
CN108446176A (zh) 一种任务分配方法、计算机可读存储介质及终端设备
CN107766160A (zh) 队列消息处理方法及终端设备
CN107729137B (zh) 服务器、区块链验签解密的方法及存储介质
CN109343972B (zh) 任务处理方法及终端设备
CN108256721A (zh) 一种任务调度方法、终端设备及介质
EP3208709A1 (en) Batch processing method and device for system invocation commands
CN110196775A (zh) 一种计算任务处理方法、装置、设备以及可读存储介质
CN108805397A (zh) 电子装置、分配任务的方法及存储介质
CN112150023A (zh) 任务分配方法、装置及存储介质
CN109766172A (zh) 一种异步任务调度方法以及装置
WO2019200762A1 (zh) 保险平台数据处理方法、电子装置及计算机可读存储介质
CN114327894A (zh) 资源分配方法、装置、电子设备及存储介质
CN110417888A (zh) 流量控制方法、流量控制装置和电子设备
CN107864187A (zh) 终端设备联机任务执行方法及服务器
CN108710538A (zh) 一种线程配置方法、计算机可读存储介质及终端设备
CN109582467A (zh) 一种存储系统中io请求的处理方法、系统及相关装置
CN117112222A (zh) 一种请求处理方法、装置、电子设备及存储介质
CN105159615A (zh) 一种动态内存控制方法及系统
CN111352710B (zh) 进程管理方法及装置、计算设备、存储介质
CN107577962A (zh) 一种密码卡多算法并列执行的方法、系统及相关装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A resource allocation method and system

Effective date of registration: 20220701

Granted publication date: 20210507

Pledgee: Bank of Communications Limited Shenzhen Branch

Pledgor: Shenzhen Hengyang Data Co.,Ltd.

Registration number: Y2022340000011

PC01 Cancellation of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Granted publication date: 20210507

Pledgee: Bank of Communications Limited Shenzhen Branch

Pledgor: Shenzhen Hengyang Data Co.,Ltd.

Registration number: Y2022340000011

PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A resource allocation method and system

Granted publication date: 20210507

Pledgee: Bank of Communications Limited Shenzhen Branch

Pledgor: Shenzhen Hengyang Data Co.,Ltd.

Registration number: Y2024980039790