CN118170521A - 任务分配方法与任务分配装置 - Google Patents

任务分配方法与任务分配装置 Download PDF

Info

Publication number
CN118170521A
CN118170521A CN202410430777.5A CN202410430777A CN118170521A CN 118170521 A CN118170521 A CN 118170521A CN 202410430777 A CN202410430777 A CN 202410430777A CN 118170521 A CN118170521 A CN 118170521A
Authority
CN
China
Prior art keywords
task
queue
target
information
queues
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.)
Pending
Application number
CN202410430777.5A
Other languages
English (en)
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.)
Shanghai Bi Ren Technology Co ltd
Beijing Bilin Technology Development Co ltd
Original Assignee
Shanghai Bi Ren Technology Co ltd
Beijing Bilin Technology Development Co 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 Shanghai Bi Ren Technology Co ltd, Beijing Bilin Technology Development Co ltd filed Critical Shanghai Bi Ren Technology Co ltd
Priority to CN202410430777.5A priority Critical patent/CN118170521A/zh
Publication of CN118170521A publication Critical patent/CN118170521A/zh
Pending legal-status Critical Current

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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/5038Allocation 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 execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供一种任务分配方法与任务分配装置。该方法包括:配置软件中间层与多个任务队列;获取多个运算任务并将多个运算任务缓存于软件中间层;获取与多个运算任务有关的任务信息,其中任务信息反映多个运算任务的类型;获取与多个任务队列有关的队列信息,其中队列信息反映多个任务队列的使用状况;以及根据任务信息与队列信息,将缓存于软件中间层的至少一目标运算任务分配至多个任务队列中的至少一目标任务队列。藉此,可提升系统整体的运作效能。

Description

任务分配方法与任务分配装置
技术领域
本发明涉及人工智能技术领域,尤其涉及一种任务管理技术,且特别是有关于一种任务分配方法与任务分配装置。
背景技术
随着人工智能技术的逐渐普及,对于作为人工智能的大脑使用的运算模型与实际执行运算的硬件设备的效能需求也持续提高,以提供用户更佳的操作体验。然而,实务上可能遭遇的问题是,即便作为人工智能的大脑使用的运算模型不断优化且实际执行运算的硬件设备的效能也不断提升,若针对运算模型与硬件设备之间的运算任务的调度管理不当,则系统整体的运算效能可能会被严重拖累。
发明内容
本发明提供一种任务分配方法与任务分配装置,可针对运算任务的分配方式进行优化,以改善上述问题并提升系统整体的运作效能。
本发明的实施例提供一种任务分配方法,其包括:配置软件中间层与多个任务队列;获取多个运算任务并将所述多个运算任务缓存于所述软件中间层;获取与所述多个运算任务有关的任务信息,其中所述任务信息反映所述多个运算任务的类型;获取与所述多个任务队列有关的队列信息,其中所述队列信息反映所述多个任务队列的使用状况;以及根据所述任务信息与所述队列信息,将缓存于所述软件中间层的至少一目标运算任务分配至所述多个任务队列中的至少一目标任务队列。
本发明的实施例另提供一种任务分配装置,其包括存储电路与处理器。所述处理器连接至所述存储电路并用以:配置软件中间层与多个任务队列;获取多个运算任务并将所述多个运算任务缓存于所述软件中间层;获取与所述多个运算任务有关的任务信息,其中所述任务信息反映所述多个运算任务的类型;获取与所述多个任务队列有关的队列信息,其中所述队列信息反映所述多个任务队列的使用状况;以及根据所述任务信息与所述队列信息,将缓存于所述软件中间层的至少一目标运算任务分配至所述多个任务队列中的至少一目标任务队列。
基于上述,在配置软件中间层与多个任务队列后,多个运算任务可被缓存于软件中间层。与所述多个运算任务有关的任务信息及与所述多个任务队列有关的队列信息可被获取。所述任务信息反映所述多个运算任务的类型。所述队列信息反映所述多个任务队列的使用状况。然后,根据所述任务信息与所述队列信息,缓存于所述软件中间层的至少一目标运算任务可被动态分配至所述多个任务队列中的至少一目标任务队列。换言之,通过对运算任务的分配方式进行优化,本发明的实施例所提出的任务分配方法与任务分配装置,可有效提升系统整体的运作效能。
附图说明
图1是根据本发明的实施例所示出的任务分配装置的示意图;
图2是根据本发明的实施例所示出的任务分配的示意图;
图3是根据本发明的实施例所示出的分配任务至相对空闲的任务队列的示意图;
图4是根据本发明的实施例所示出的第一管理表格与第二管理表格的示意图;
图5是根据本发明的实施例所示出的任务分配方法的流程图。
具体实施方式
现将详细地参考本发明的示范性实施例,示范性实施例的实例说明于附图中。只要有可能,相同元件符号在图式和描述中用来表示相同或相似部分。
图1是根据本发明的实施例所示出的任务分配装置的示意图。请参照图1,装置(亦称为任务分配装置)10可为智能手机、平板计算机、笔记本计算机、桌上型计算机、工业用计算机、服务器或车载计算机等各式具有运算及信息处理功能的电子装置,且任务分配装置10的类型不限于此。
任务分配装置10包括处理器11、存储电路12及硬件设备13。处理器11连接至存储电路12与硬件设备13。处理器11可用以负责任务分配装置10的整体或部分运作。例如,处理器11可包括中央处理器(Central Processing Unit, CPU)、图形处理器(graphicsprocessing unit, GPU)或是其他可编程的一般用途或特殊用途的微处理器、数字信号处理器(Digital Signal Processor, DSP)、可编程控制器、专用集成电路(ApplicationSpecific Integrated Circuits, ASIC)、可编程逻辑器件(Programmable Logic Device,PLD)或其他类似装置或这些装置的组合。
存储电路12可用以存储数据。例如,存储电路12可包括易失性存储电路与非易失性存储电路。易失性存储电路用以易失性的储存数据。例如,易失性存储电路可包括随机存取存储器(Random Access Memory, RAM)或类似的易失性存储媒体。非易失性存储电路用以非易失性的储存数据。例如,非易失性存储电路可包括只读存储器(Read Only Memory,ROM)、固态硬盘(solid state disk, SSD)、传统硬盘(Hard disk drive, HDD)或类似的非易失性存储媒体。
硬件设备13可用以提供实体上的运算及信息处理功能。例如,硬件设备13可包括图形处理器、通用图形处理器(General-purpose computing on graphics processingunits, GPGPU)、视频处理单元(Video Processing Unit, VPU)、神经网络处理单元(Neural-network Processing Unit, NPU)、张量处理单元(Tensor Processing Unit,TPU)或其他具有运算及信息处理功能的硬件设备,且硬件设备13的类型不限于此。此外,硬件设备13的数量可为一或多个,本发明不加以限制。在一实施例中,硬件设备13亦可设置于任务分配装置10外部并可通过有线或无线方式连接至任务分配装置10,本发明不加以限制。
在一实施例中,存储电路12可用以存储运算模型101。运算模型101可包括机器学习(machine learning)模型、深度学习(deep learning)模型、神经网络(Neural-network)模型、各式决策模型、各式数学模型及各式演算法模型中的至少一种运算模型,且运算模型101的类型不限于此。运算模型101可通过函式、函式库、程序码、指令码及机器码的至少其中之一或其他类型的各式功能性描述语言来实现。此外,运算模型101的数量可为一或多个,本发明不加以限制。
在一实施例中,硬件设备13可搭配运算模型101使用。例如,运算模型101可提供与一或多种运算相关的指示。硬件设备13的内部电路可用以执行运算模型101所指示的运算,并将运算结果回传给运算模型101。
图2是根据本发明的实施例所示出的任务分配的示意图。请参照图2,在一实施例中,处理器11可配置软件中间层21与任务队列(queue)22(1)~22(m)。m可为任意大于1的整数。软件中间层21包括以软件形式实现的一或多个管理模块。任务队列22(1)~22(m)可分别用以存放一或多个任务(亦称为运算任务)。在配置软件中间层21与任务队列22(1)~22(m)后,处理器11可接收运算任务201(1)~201(n)并将运算任务201(1)~201(n)缓存于软件中间层21。n可为任意大于1的整数。
在一实施例中,处理器11可实时获取与当前缓存于软件中间层21的运算任务201(1)~201(n)有关的信息(亦称为任务信息)。例如,此任务信息可反映运算任务201(1)~201(n)的类型。以运算任务201(i)为例,处理器11可通过软件中间层21分析运算任务201(i)(例如分析运算任务201(i)的至少部分信息内容),以获得对应于运算任务201(i)的任务信息。此任务信息可反映出运算任务201(i)的类型。i为介于1至n之间的整数。此外,此任务信息还可反映与运算任务201(1)~201(n)的至少其中之一有关的任何有用的信息,本发明不加以限制。
在一实施例中,处理器11可实时获取与任务队列22(1)~22(m)有关的信息(亦称为队列信息)。此队列信息可反映任务队列22(1)~22(m)的使用状况。例如,每一个任务队列的使用状况可与该任务队列中存放的任务(亦称为待执行任务)的总数有关。例如,对应于任务队列22(j)的使用状况可反映当前任务队列22(j)中存放的待执行任务的总数。j为介于1至m之间的整数。此外,此队列信息还可反映与任务队列22(1)~22(m)的至少其中之一有关的任何有用的信息,本发明不加以限制。
在一实施例中,处理器11可根据所获得的任务信息与队列信息,将当前缓存于软件中间层21的运算任务201(1)~201(n)的至少其中之一(亦称为目标运算任务)分配至任务队列22(1)~22(m)的至少其中之一(亦称为目标任务队列)。例如,根据所获得的任务信息与队列信息,处理器11可将运算任务201(i)决定为目标运算任务并将任务队列22(j)决定为目标任务队列。然后,处理器11可将运算任务201(i)分配(例如加入)至任务队列22(j)。在将运算任务201(i)分配至任务队列22(j)后,运算任务201(i)可成为任务队列22(j)中的一个新的待执行任务。例如,运算任务201(i)可基于先进先出(First In, First Out, FIFO)的配置方式分配至任务队列22(j)中。
在一实施例中,处理器11可优先将目标运算任务分配至任务队列22(1)~22(m)中相对空闲的任务队列(即目标任务队列)。须注意的是,相对空闲的任务队列是指,在任务队列22(1)~22(m)中,当下存放的运算任务的总数相对较少的任务队列。藉此,可有效对任务队列22(1)~22(m)执行任务队列彼此间的负载平衡。
图3是根据本发明的实施例所示出的分配任务至相对空闲的任务队列的示意图。请参照图3,在一实施例中,在接收运算任务301后,处理器11可将运算任务301缓存于软件中间层21。
在一实施例中,假设对应于任务队列22(1)、22(2)及22(3)的队列信息反映出当前存放于任务队列22(1)、22(2)及22(3)中的待执行任务的总数分别为“3”、“1”及“5”(即任务队列22(1)中当前存放了3个待执行任务,任务队列22(2)中当前存放了1个待执行任务,且任务队列22(3)中当前存放了5个待执行任务)。根据此队列信息,处理器11可判定在任务队列22(1)~22(3)中,任务队列22(2)中存放了相对较少(或最少)的运算任务。也就是说,根据此队列信息,处理器11可判定在任务队列22(1)~22(3)中,相对空闲的任务队列是任务队列22(2)。因此,处理器11可将任务队列22(2)决定为目标任务队列并优先将运算任务301(即目标运算任务)分配至任务队列22(2)。
在一实施例中,处理器11可根据所获得的队列信息,来比较任务队列22(1)~22(m)当前的使用状况。然后,处理器11可根据使用状况的比较结果,从任务队列22(1)~22(m)中决定目标任务队列。以图3为例,任务队列22(1)~22(3)的使用状况的比较结果可反映出,任务队列22(2)在任务队列22(1)~22(3)中相对空闲(即相较于任务队列22(1)与22(3),任务队列22(2)中存放了相对较少的运算任务)。因此,处理器11可将任务队列22(2)决定为目标任务队列。
在一实施例中,处理器11还可根据所述任务信息获取当前缓存于软件中间层21中的某一个目标运算任务(亦称为第一目标运算任务)的执行时间信息。此执行时间信息可反映第一目标运算任务被完整执行所需的时间。例如,处理器11可根据第一目标运算任务的类型,通过查表等方式获得对应于第一目标运算任务的执行时间信息。此外,不同类型的运算任务,被完整执行所需的时间可能不同。然后,处理器11可根据此执行时间信息与所述队列信息,将第一目标运算任务分配至某一个目标任务队列(亦称为第一目标任务队列)。在一实施例中,通过考虑所述任务信息与所述队列信息来将目标运算任务分配至目标任务队列,可进一步对所配置的各个任务队列进行负载平衡。
在一实施例中,假设第一目标运算任务被完整执行所需的时间较长(即第一目标运算任务的执行速度较慢),则处理器11除了可优先将第一目标运算任务分配至相对空闲的任务队列(即第一目标任务队列)外,还可进一步执行减少后续被分配至第一目标任务队列的运算任务的总数、降低后续被分配至第一目标任务队列的运算任务的机率、及将后续被分配至第一目标任务队列的运算任务尽量控制为完整执行所需的时间较短的运算任务(即执行速度较快的运算任务)的至少其中之一。藉此,可达到对第一目标任务队列进行运算任务彼此间的负载平衡的有益技术效果。
在一实施例中,假设第一目标运算任务被完整执行所需的时间较短(即第一目标运算任务的执行速度较快),则处理器11除了可优先将第一目标运算任务分配至相对空闲的任务队列(即第一目标任务队列)外,还可进一步执行增加后续被分配至第一目标任务队列的运算任务的总数、增加后续被分配至第一目标任务队列的运算任务的机率、及将后续被分配至第一目标任务队列的运算任务尽量控制为完整执行所需的时间较长的运算任务(即执行速度较慢的运算任务)的至少其中之一。藉此,同样可达到对第一目标任务队列进行运算任务彼此间的负载平衡的有益技术效果。
换言之,通过考虑所述任务信息与所述队列信息来将目标运算任务分配至较为空闲的目标任务队列,可促进多个任务队列彼此间的负载平衡。此外,通过考虑所述任务信息与所述队列信息来控制或筛选分配至目标任务队列的目标运算任务,则可进一步促进运算任务彼此间的负载平衡。
在一实施例中,处理器11可通过软件中间层21搭配特定的规则或演算法来执行前述运算任务及任务队列的挑选。相关的操作细节已详述于上,在此不多加赘述。
在一实施例中,处理器11可通过管理表格来记载所述任务信息、所述队列信息及各个运算任务(即目标运算任务)的执行结果。例如,处理器11可建立第一管理表格与第二管理表格。处理器11可将所述任务信息与所述队列信息记载于第一管理表格。此外,处理器11可将各个运算任务(即目标运算任务)的执行结果记载于第二管理表格。藉此,在分配目标运算任务的期间,处理器11可查询第一管理表格及第二管理表格的至少其中之一,以获得所需的各种信息。此外,在一实施例中,处理器11也可根据第二管理表格中的信息,来更新第一管理表格中的信息,以将最新的各个任务队列的使用状况更新至第一管理表格中。
图4是根据本发明的实施例所示出的第一管理表格与第二管理表格的示意图。请参照图4,假设管理表格41为第一管理表格,且管理表格42为第二管理表格。管理表格41可用以记载与当前缓存于软件中间层21的多个运算任务有关的任务信息。例如,针对当前缓存于软件中间层21的运算任务001、002及003,管理表格41可记载运算任务001的类型为“A”,运算任务002的类型为“B”,及运算任务003的类型为“C”等,依此类推。在一实施例中,管理表格41还可记载类型为“A”的运算任务001被执行完毕所需的时间T(A),类型为“B”的运算任务002被执行完毕所需的时间T(B),及类型为“C”的运算任务003被执行完毕所需的时间T(C))等,依此类推。
此外,管理表格41还可用以记载与当前配置的多个任务队列有关的队列信息。例如,管理表格41可记载任务队列Q(1)中存放的待执行任务的总数为S(1),任务队列Q(2)中存放的待执行任务的总数为S(2),及任务队列Q(3)中存放的待执行任务的总数为S(3)等,依此类推。
另一方面,管理表格42可用以记载各个已分配的运算任务的执行结果。例如,在将运算任务001、002及003分配至目标任务队列后,管理表格42中的信息可反映出运算任务001、002及003当前的执行结果分别为“完成”、“执行中”及“排程中(即尚未被执行)”。
在一实施例中,第一管理表格亦称为统一任务队列表。在一实施例中,第二管理表格亦称为统一任务执行结构表。在一实施例中,第一管理表格及第二管理表格的信息记载形式及所记载的信息的类型皆可根据实务需求调整(例如增加或减少所记载的信息的类型),本发明不加以限制,只要有利于执行前述关于运算任务的分配即可。
请回到图2,在一实施例中,运算任务201(1)~201(n)可由运算模型101提供以完成运算模型101指示的运算。例如,针对所需执行的特定运算,运算模型101可产生运算任务201(i)。因此,运算任务201(i)可用以完成运算模型101指示的所述特定运算。在一实施例中,处理器11可将由运算模型101依序或并行提供的运算任务201(1)~201(n)缓存至软件中间层21,以等待被分配至任务队列22(1)~22(m)中。
在一实施例中,处理器11还可通过软件中间层21来建立任务队列22(1)~22(m)与硬件队列23(1)~23(p)之间的映射关系。p可为任意大于1的整数。例如,此映射关系包括任务队列22(1)与硬件队列23(1)之间的映射关系,任务队列22(j)与硬件队列23(k)之间的映射关系,及任务队列22(m)与硬件队列23(p)之间的映射关系,依此类推。k为介于1至p之间的整数。需注意的是,任务队列22(1)~22(m)的总数(即m)可相同或不同于硬件队列23(1)~23(p)的总数(即p),本发明不加以限制。
在一实施例中,处理器11可根据此映射关系,将各个任务队列中的待执行任务依序传送至硬件队列23(1)~23(p)中相对应的硬件队列,以等待被图1的硬件设备13执行。从另一角度而言,在将目标运算任务分配至目标任务队列后,根据所述映射关系,处理器11可进一步将位于目标任务队列中的目标运算任务传送至硬件队列23(1)~23(p)的至少其中之一(亦称为目标硬件队列),以等待被图1的硬件设备13执行。在一实施例中,各个任务队列中的待执行任务依序传送至硬件队列23(1)~23(p)中相对应的硬件队列的行为也可以是自动执行的,而不需由处理器11控制。
在一实施例中,图1的硬件设备包括硬件执行单元24(1)~24(t)。t可为大于1的任意正整数。硬件队列23(1)~23(p)可通过预定的多个传输通道连接至硬件执行单元24(1)~24(t)。例如,硬件队列23(1)连接至硬件执行单元24(1),硬件队列23(k)连接至硬件执行单元24(s),且硬件队列23(p)连接至硬件执行单元24(t),依此类推。s为介于1至t之间的整数。
在一实施例中,假设运算任务201(i)通过软件中间层21被分配至任务队列22(j)。在任务队列22(j)中,基于先进先出(FIFO)的规则,运算任务201(i)可进一步被传送至硬件队列23(k)。然后,硬件执行单元24(s)可基于先进先出(FIFO)的规则,来执行硬件队列23(k)中的运算任务201(i)。在一实施例中,在硬件执行单元24(s)完成运算任务201(i)后,处理器11可将硬件执行单元24(s)对运算任务201(i)的执行结果回传给运算模型101,以供运算模型101执行后续运算。
图5是根据本发明的实施例所示出的任务分配方法的流程图。请参照图5,在步骤S501中,配置软件中间层与多个任务队列。在步骤S502中,获取多个运算任务并将所述多个运算任务缓存于所述软件中间层。在步骤S503中,获取与所述多个运算任务有关的任务信息,其中所述任务信息反映所述多个运算任务的类型。在步骤S504中,获取与所述多个任务队列有关的队列信息,其中所述队列信息反映所述多个任务队列的使用状况。在步骤S505中,根据所述任务信息与所述队列信息,将缓存于所述软件中间层的至少一目标运算任务分配至所述多个任务队列中的至少一目标任务队列。
在一实施例中,所述多个任务队列的所述使用状况可与所述多个任务队列中的每一个任务队列中的待执行任务的总数有关。
在一实施例中,步骤S505包括:优先将所述至少一目标运算任务分配至所述多个任务队列中相对空闲的所述至少一目标任务队列。
在一实施例中,步骤S505包括:根据所述队列信息,比较所述多个任务队列的所述使用状况;以及根据所述使用状况的比较结果,从所述多个任务队列中决定所述至少一目标任务队列。
在一实施例中,步骤S505包括:根据所述任务信息获取所述至少一目标运算任务中的第一目标运算任务的执行时间信息,其中所述执行时间信息反映所述第一目标运算任务被完整执行所需的时间;以及根据所述执行时间信息与所述队列信息,将所述第一目标运算任务分配至所述至少一目标任务队列中的第一目标任务队列。
在一实施例中,其中所述多个运算任务是由运算模型提供以完成所述运算模型指示的运算。
在一实施例中,所述的任务分配方法还包括:通过所述软件中间层建立所述多个任务队列与多个硬件队列之间的映射关系;以及根据所述映射关系,将位于所述至少一目标任务队列中的所述至少一目标运算任务传送至所述多个硬件队列中的至少一目标硬件队列,以等待被硬件设备执行。
在一实施例中,所述的任务分配方法还包括:建立第一管理表格与第二管理表格;将所述任务信息与所述队列信息记载于所述第一管理表格;以及在所述至少一目标运算任务被执行完毕后,将所述至少一目标运算任务的执行结果记载于所述第二管理表格。
综上所述,本发明的实施例所提出的任务分配方法与任务分配装置,可通过额外设置的软件中间层来妥善分配运算任务至多个任务队列中,以解决传统上用户(或前端的应用程序)无法对后端的硬件队列(或硬件执行单元)进行排程管理的技术问题。此外,通过单独执行多个任务对列彼此间的负载平衡、单独执行多个运算任务彼此间的负载平衡、或者同步执行任务对列彼此间的负载平衡及运算任务彼此间的负载平衡,系统整体的运作效能也可显著提升。
然而,图5中各步骤已详细说明如上,在此便不再赘述。值得注意的是,图5中各步骤可以实作为多个程序码或是电路,本发明不加以限制。此外,图5的方法可以搭配以上范例实施例使用,也可以单独使用,本发明不加以限制。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (16)

1.一种任务分配方法,其特征在于,包括:
配置软件中间层与多个任务队列;
获取多个运算任务并将所述多个运算任务缓存于所述软件中间层;
获取与所述多个运算任务有关的任务信息,其中所述任务信息反映所述多个运算任务的类型;
获取与所述多个任务队列有关的队列信息,其中所述队列信息反映所述多个任务队列的使用状况;以及
根据所述任务信息与所述队列信息,将缓存于所述软件中间层的至少一目标运算任务分配至所述多个任务队列中的至少一目标任务队列。
2.根据权利要求1所述的任务分配方法,其中所述多个任务队列的所述使用状况与所述多个任务队列中的每一个任务队列中的待执行任务的总数有关。
3.根据权利要求1所述的任务分配方法,其中根据所述任务信息与所述队列信息,将缓存于所述软件中间层的所述至少一目标运算任务分配至所述多个任务队列中的所述至少一目标任务队列的步骤包括:
优先将所述至少一目标运算任务分配至所述多个任务队列中相对空闲的所述至少一目标任务队列。
4. 根据权利要求1所述的任务分配方法,其中根据所述任务信息与所述队列信息,将缓存于所述软件中间层的所述至少一目标运算任务分配至所述多个任务队列中的所述至少一目标任务队列的步骤包括:
根据所述队列信息,比较所述多个任务队列的所述使用状况;以及
根据所述使用状况的比较结果,从所述多个任务队列中决定所述至少一目标任务队列。
5. 根据权利要求1所述的任务分配方法,其中根据所述任务信息与所述队列信息,将缓存于所述软件中间层的所述至少一目标运算任务分配至所述多个任务队列中的所述至少一目标任务队列的步骤包括:
根据所述任务信息获取所述至少一目标运算任务中的第一目标运算任务的执行时间信息,其中所述执行时间信息反映所述第一目标运算任务被完整执行所需的时间;以及
根据所述执行时间信息与所述队列信息,将所述第一目标运算任务分配至所述至少一目标任务队列中的第一目标任务队列。
6.根据权利要求1所述的任务分配方法,其中所述多个运算任务是由运算模型提供以完成所述运算模型指示的运算。
7. 根据权利要求1所述的任务分配方法,还包括:
通过所述软件中间层建立所述多个任务队列与多个硬件队列之间的映射关系;以及
根据所述映射关系,将位于所述至少一目标任务队列中的所述至少一目标运算任务传送至所述多个硬件队列中的至少一目标硬件队列,以等待被硬件设备执行。
8.根据权利要求1所述的任务分配方法,还包括:
建立第一管理表格与第二管理表格;
将所述任务信息与所述队列信息记载于所述第一管理表格;以及
在所述至少一目标运算任务被执行完毕后,将所述至少一目标运算任务的执行结果记载于所述第二管理表格。
9. 一种任务分配装置,其特征在于,包括:
存储电路;以及
处理器,连接至所述存储电路并用以:
配置软件中间层与多个任务队列;
获取多个运算任务并将所述多个运算任务缓存于所述软件中间层;
获取与所述多个运算任务有关的任务信息,其中所述任务信息反映所述多个运算任务的类型;
获取与所述多个任务队列有关的队列信息,其中所述队列信息反映所述多个任务队列的使用状况;以及
根据所述任务信息与所述队列信息,将缓存于所述软件中间层的至少一目标运算任务分配至所述多个任务队列中的至少一目标任务队列。
10.根据权利要求9所述的任务分配装置,其中所述多个任务队列的所述使用状况与所述多个任务队列中的每一个任务队列中的待执行任务的总数有关。
11.根据权利要求9所述的任务分配装置,其中根据所述任务信息与所述队列信息,将缓存于所述软件中间层的所述至少一目标运算任务分配至所述多个任务队列中的所述至少一目标任务队列的步骤包括:
优先将所述至少一目标运算任务分配至所述多个任务队列中相对空闲的所述至少一目标任务队列。
12. 根据权利要求9所述的任务分配装置,其中根据所述任务信息与所述队列信息,将缓存于所述软件中间层的所述至少一目标运算任务分配至所述多个任务队列中的所述至少一目标任务队列的步骤包括:
根据所述队列信息,比较所述多个任务队列的所述使用状况;以及
根据所述使用状况的比较结果,从所述多个任务队列中决定所述至少一目标任务队列。
13. 根据权利要求9所述的任务分配装置,其中根据所述任务信息与所述队列信息,将缓存于所述软件中间层的所述至少一目标运算任务分配至所述多个任务队列中的所述至少一目标任务队列的步骤包括:
根据所述任务信息获取所述至少一目标运算任务中的第一目标运算任务的执行时间信息,其中所述执行时间信息反映所述第一目标运算任务被完整执行所需的时间;以及
根据所述执行时间信息与所述队列信息,将所述第一目标运算任务分配至所述至少一目标任务队列中的第一目标任务队列。
14.根据权利要求9所述的任务分配装置,其中所述存储电路用以存储运算模型,且所述多个运算任务是由所述运算模型提供以完成所述运算模型指示的运算。
15. 根据权利要求9所述的任务分配装置,还包括:
硬件设备,连接至所述处理器,并且
所述处理器还用以:
通过所述软件中间层建立所述多个任务队列与多个硬件队列之间的映射关系;以及
根据所述映射关系,将位于所述至少一目标任务队列中的所述至少一目标运算任务传送至所述多个硬件队列中的至少一目标硬件队列,以等待被所述硬件设备执行。
16.根据权利要求9所述的任务分配装置,其中所述处理器还用以:
建立第一管理表格与第二管理表格;
将所述任务信息与所述队列信息记载于所述第一管理表格;以及
在所述至少一目标运算任务被执行完毕后,将所述至少一目标运算任务的执行结果记载于所述第二管理表格。
CN202410430777.5A 2024-04-11 2024-04-11 任务分配方法与任务分配装置 Pending CN118170521A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410430777.5A CN118170521A (zh) 2024-04-11 2024-04-11 任务分配方法与任务分配装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410430777.5A CN118170521A (zh) 2024-04-11 2024-04-11 任务分配方法与任务分配装置

Publications (1)

Publication Number Publication Date
CN118170521A true CN118170521A (zh) 2024-06-11

Family

ID=91358228

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410430777.5A Pending CN118170521A (zh) 2024-04-11 2024-04-11 任务分配方法与任务分配装置

Country Status (1)

Country Link
CN (1) CN118170521A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113327053A (zh) * 2021-06-21 2021-08-31 中国农业银行股份有限公司 任务处理方法及装置
CN113986511A (zh) * 2021-11-03 2022-01-28 广州图普网络科技有限公司 任务管理方法及相关装置
CN115292016A (zh) * 2022-08-09 2022-11-04 中国平安财产保险股份有限公司 基于人工智能的任务调度方法及相关设备
CN117421167A (zh) * 2023-10-26 2024-01-19 上海幻电信息科技有限公司 硬件存储设备的性能瓶颈检测方法、装置及计算设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113327053A (zh) * 2021-06-21 2021-08-31 中国农业银行股份有限公司 任务处理方法及装置
CN113986511A (zh) * 2021-11-03 2022-01-28 广州图普网络科技有限公司 任务管理方法及相关装置
CN115292016A (zh) * 2022-08-09 2022-11-04 中国平安财产保险股份有限公司 基于人工智能的任务调度方法及相关设备
CN117421167A (zh) * 2023-10-26 2024-01-19 上海幻电信息科技有限公司 硬件存储设备的性能瓶颈检测方法、装置及计算设备

Similar Documents

Publication Publication Date Title
US12001681B2 (en) Distributed storage system and data processing method
CN112529169B (zh) 数据处理方法、模型优化装置和模型执行装置
US20220083389A1 (en) Ai inference hardware resource scheduling
CN105103144B (zh) 用于存储器的自适应控制的设备及方法
US9442760B2 (en) Job scheduling using expected server performance information
US20200201763A1 (en) Memory hierarchy-aware processing
CN113590508B (zh) 动态可重构的内存地址映射方法及装置
CN113342477A (zh) 一种容器组部署方法、装置、设备及存储介质
CN110413776B (zh) 一种基于cpu-gpu协同并行的文本主题模型lda高性能计算方法
WO2021022852A1 (zh) 访问请求的处理方法、装置、设备及存储介质
CN115129621B (zh) 一种内存管理方法、设备、介质及内存管理模块
CN101341471B (zh) 动态高速缓存管理的设备和方法
EP4372563A1 (en) Systems, methods, and apparatus for operating computational devices
Chen et al. Data prefetching and eviction mechanisms of in-memory storage systems based on scheduling for big data processing
WO2021115082A1 (zh) 作业调度方法以及作业调度装置
CN116382599B (zh) 一种面向分布式集群的任务执行方法、装置、介质及设备
CN116089477B (zh) 分布式训练方法及系统
WO2023098794A1 (zh) 一种训练加速方法及相关装置
JP6194875B2 (ja) キャッシュ装置、キャッシュシステム、キャッシュ方法、及びキャッシュプログラム
Subedi et al. Rise: Reducing i/o contention in staging-based extreme-scale in-situ workflows
Wang et al. Improved intermediate data management for mapreduce frameworks
CN118170521A (zh) 任务分配方法与任务分配装置
CN115203076B (zh) 数据结构优化的专用存储器缓存
US11797280B1 (en) Balanced partitioning of neural network based on execution latencies
WO2017018978A1 (en) Scheduling jobs in a computing cluster

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