CN111400008B - 计算资源调度方法、装置及电子设备 - Google Patents

计算资源调度方法、装置及电子设备 Download PDF

Info

Publication number
CN111400008B
CN111400008B CN202010179275.1A CN202010179275A CN111400008B CN 111400008 B CN111400008 B CN 111400008B CN 202010179275 A CN202010179275 A CN 202010179275A CN 111400008 B CN111400008 B CN 111400008B
Authority
CN
China
Prior art keywords
computing
data
computing node
node
target
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.)
Active
Application number
CN202010179275.1A
Other languages
English (en)
Other versions
CN111400008A (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.)
Beijing Kuangshi Technology Co Ltd
Original Assignee
Beijing Kuangshi Technology 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 Beijing Kuangshi Technology Co Ltd filed Critical Beijing Kuangshi Technology Co Ltd
Priority to CN202010179275.1A priority Critical patent/CN111400008B/zh
Publication of CN111400008A publication Critical patent/CN111400008A/zh
Priority to PCT/CN2020/119624 priority patent/WO2021179588A1/zh
Application granted granted Critical
Publication of CN111400008B publication Critical patent/CN111400008B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供了一种计算资源调度方法、装置及电子设备,该方法由调度设备执行,该方法包括:在应用计算流程图对目标计算任务的待处理对象进行计算处理过程中,监测计算流程图中的各个计算节点的当前计算负荷;其中,计算流程图中包括多个计算节点和相互连接的计算节点之间的数据传输管道;计算节点用于通过调度设备中的线程执行目标计算任务的子任务,并将执行子任务后的数据通过数据传输管道传输至下游计算节点;当目标计算节点的当前计算负荷达到预设的算力瓶颈状态时,向目标计算节点调度计算资源。本发明能够在有限的计算资源条件下提升调度设备的计算效率。

Description

计算资源调度方法、装置及电子设备
技术领域
本发明涉及计算机技术领域,尤其是涉及一种计算资源调度方法、装置及电子设备。
背景技术
随着机器学习技术的日渐成熟,机器学习技术已经广泛应用于各个领域。由于在使用机器学习技术进行视频或图像处理时,诸如视频结构化,计算量较大,然而在计算资源(诸如调度设备的运算单元数或内存数不变)有限时,容易影响到计算速度,进而导致计算效率低下,为了尽可能地节省硬件成本,如何在有限的计算资源条件下提升调度设备的计算效率成为亟待解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种计算资源调度方法、装置及电子设备,能够在有限的计算资源条件下提升调度设备的计算效率。
为了实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明实施例提供了一种计算资源调度方法,所述方法由调度设备执行,所述方法包括:在应用计算流程图对目标计算任务的待处理对象进行计算处理过程中,监测所述计算流程图中的各个计算节点的当前计算负荷;其中,所述计算流程图中包括多个计算节点和相互连接的所述计算节点之间的数据传输管道;所述计算节点用于通过所述调度设备中的线程执行所述目标计算任务的子任务,并将执行所述子任务后的数据通过所述数据传输管道传输至下游计算节点;当目标计算节点的当前计算负荷达到预设的算力瓶颈状态时,向所述目标计算节点调度计算资源。
进一步,本发明实施例提供了第一方面的第一种可能的实施方式,其中,所述计算流程图为预先通过以下方式构建:获取目标计算任务的各个子任务,为各个所述子任务分配计算节点;根据各个子任务之间的依赖关系设置各个所述计算节点之间的数据传输管道,得到所述目标计算任务的计算流程图。
进一步,本发明实施例提供了第一方面的第二种可能的实施方式,其中,所述数据传输管道包括数据输入管道和数据输出管道;所述数据输入管道是当前计算节点用于接收待处理数据的管道;所述待处理数据是上一级计算节点的输出数据;所述数据输出管道是当前计算节点用于输出目标数据的管道;所述目标数据是当前计算节点执行所述子任务后得到的数据;所述根据各个所述子任务之间的依赖关系设置各个所述计算节点之间的数据传输管道,得到所述目标计算任务的计算流程图的步骤,包括:根据各个计算节点之间的数据流向关系设置数据传输管道;通过以下方式中的至少一种设置数据传输管道的类型:当存在第一目标计算节点时,将所述第一目标计算节点的数据输出管道设置为广播管道;其中,所述第一目标计算节点为将执行所述子任务后的数据同时传输至多个下一级计算节点的节点;当存在第二目标计算节点时,将所述第二目标计算节点的数据输出管道设置为多支路管道;其中,所述第二目标计算节点为需要根据预设条件选择接收目标数据的下一级计算节点的节点,所述目标数据为所述第二目标计算节点执行所述子任务后产生的数据;当存在第三目标计算节点时,将所述第三目标计算节点的数据输入管道设置为合并管道;其中,所述第三目标计算节点为能够接收多个上一级计算节点执行所述子任务后的数据的节点;当存在第四目标计算节点时,将所述第四目标计算节点的数据输出管道设置为保序管道;其中,所述第四目标计算节点为数据的接收顺序与数据的输出顺序须保持一致的节点。
进一步,本发明实施例提供了第一方面的第三种可能的实施方式,其中,所述获取目标计算任务的各个子任务,为各个所述子任务分配计算节点的步骤,包括:判断各个所述子任务是否能进一步分裂为多个子任务;如果是,将能够进一步分裂的子任务的计算节点对应分裂为多个计算节点。
进一步,本发明实施例提供了第一方面的第四种可能的实施方式,其中,所述监测所述计算流程图中的各个计算节点的当前计算负荷的步骤,包括:获取所述计算流程图中的各个计算节点的线程记录的日志信息;其中,所述日志信息包括各个所述线程在执行所述计算节点对应的子任务时接收或发送的数据信息以及各个所述线程执行所述子任务的时间信息;根据各个所述线程记录的日志信息,确定各个所述计算节点的当前计算负荷。
进一步,本发明实施例提供了第一方面的第五种可能的实施方式,其中,所述数据传输管道包括数据输入管道和数据输出管道,其中,所述数据输入管道是当前计算节点用于接收待处理数据的管道;所述待处理数据是上一级计算节点的输出数据;所述数据输出管道是当前计算节点用于输出目标数据的管道;所述目标数据是当前计算节点执行所述子任务后得到的数据;所述根据各个所述线程记录的日志信息,确定各个所述计算节点的当前计算负荷的步骤,包括:根据各个所述线程记录的日志信息,确定各个所述计算节点的节点信息;其中,所述节点信息包括各个所述计算节点的数据输入管道对应的数据量和数据输出管道对应的数据量,各个所述计算节点通过线程进行数据处理的速度以及各计算节点对应的线程执行各个所述计算节点中的子任务的预计消耗时间中的任意一种或多种;根据各个所述计算节点的节点信息确定对应计算节点的当前计算负荷。
进一步,本发明实施例提供了第一方面的第六种可能的实施方式,其中,所述当目标计算节点的当前计算负荷达到预设的算力瓶颈状态时,向所述目标计算节点调度计算资源的步骤,包括:根据各个所述计算节点的节点信息,判断各个所述计算节点的当前计算负荷是否达到预设的算力瓶颈条件;向达到预设的算力瓶颈条件的目标计算节点调度计算资源。
进一步,本发明实施例提供了第一方面的第七种可能的实施方式,其中,所述根据各个所述计算节点的节点信息,判断各个所述计算节点的当前计算负荷是否达到预设的算力瓶颈条件的步骤,包括以下至少之一:如果所述节点信息包括各个所述计算节点的数据输入管道对应的数据量,判断各个所述计算节点的数据输入管道对应的数据量是否达到预设输入数据量,将达到所述预设输入数据量的计算节点确定为达到预设的算力瓶颈条件的目标计算节点;如果所述节点信息包括各个所述计算节点的数据输出管道对应的数据量,判断各个所述计算节点的数据输出管道对应的数据量是否达到预设输出数据量,将达到所述预设输出数据量的计算节点的下游计算节点确定为达到预设的算力瓶颈条件的目标计算节点;其中,所述计算节点通过所述数据输出管道向所述下游计算节点传输数据;如果所述节点信息包括各计算节点对应的线程执行各个所述计算节点中的子任务的预计消耗时间,判断各个所述线程在执行各个所述计算节点中的子任务时预计消耗时间是否大于预设时间,将预计消耗时间大于所述预设时间的计算节点确定为达到预设的算力瓶颈条件的目标计算节点;如果所述节点信息包括各个所述计算节点的数据输入管道对应的数据量和数据输出管道对应的数据量,判断各个所述计算节点的数据输入管道对应的数据量与数据输出管道对应的数据量之间的比值是否达到预设比值,将达到所述预设比值的计算节点确定为达到预设的算力瓶颈条件的目标计算节点。
进一步,本发明实施例提供了第一方面的第八种可能的实施方式,其中,所述向所述目标计算节点调度计算资源的步骤,包括:从执行所述计算流程图的进程中获取空闲线程;将所述空闲线程调度至所述目标计算节点,以使所述目标计算节点通过执行所述目标计算节点的当前线程和所述空闲线程并行处理所述目标计算节点对应的子任务。
第二方面,本发明实施例还提供了一种计算资源调度装置,所述装置设置于调度设备中,所述装置包括:负荷监测模块,用于在应用计算流程图对目标计算任务的待处理对象进行计算处理过程中,监测所述计算流程图中的各个计算节点的当前计算负荷;其中,所述计算流程图中包括多个计算节点和相互连接的所述计算节点之间的数据传输管道;所述计算节点用于通过所述调度设备中的线程执行所述目标计算任务的子任务,并将执行所述子任务后的数据通过所述数据传输管道传输至下游计算节点;资源调度模块,用于在目标计算节点的当前计算负荷达到预设的算力瓶颈状态时,向所述目标计算节点调度计算资源。
第三方面,本发明实施例提供了一种电子设备,包括:处理器和存储装置;所述存储装置上存储有计算机程序,所述计算机程序在被所述处理器运行时执行上述第一方面任一项所述的方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述第一方面任一项所述的方法的步骤。
本发明实施例提供了一种计算资源调度方法、装置及电子设备,该方法由调度设备执行,该方法包括:在应用计算流程图(包括多个计算节点和相互连接的计算节点之间的数据传输管道,其中,上述计算节点用于通过调度设备中的线程执行目标计算任务的子任务,并将执行子任务后的数据通过数据传输管道传输至下游计算节点)对目标计算任务的待处理对象进行计算处理过程中,监测计算流程图中的各个计算节点的当前计算负荷;当目标计算节点的当前计算负荷达到预设的算力瓶颈状态时,向目标计算节点调度计算资源。该方法将数据处理流程中的模型或者模块抽象成为计算节点,根据数据流和计算节点的不同输入输出关系将各计算节点之间用不同类型的数据管道连接,从而得到计算流程图,通过应用计算流程图对待处理对象进行计算处理,并在计算处理过程中监测计算流程图中各个计算节点的当前计算负荷,根据各个计算节点的当前计算负荷可以发现计算流程图中算力瓶颈的计算节点,从而可以高效地调度计算资源,通过向达到预设的算力瓶颈状态的计算节点调度计算资源,可以在有限的计算资源条件下提升调度设备的计算效率。
本发明实施例的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本发明实施例的上述技术即可得知。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明实施例所提供的一种电子设备的结构示意图;
图2示出了本发明实施例所提供的一种计算资源调度方法流程图;
图3示出了本发明实施例所提供的一种计算流程图的局部示意图;
图4示出了本发明实施例所提供的另一种计算流程图的局部示意图;
图5示出了本发明实施例所提供的一种计算资源调度装置结构示意图;
图6示出了本发明实施例所提供的另一种计算资源调度装置结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
考虑到如何在有限的计算资源条件下提升调度设备的计算效率的问题,本发明实施例提供的一种计算资源调度方法、装置及电子设备,可以应用于提升调度设备的计算效率。以下对本发明实施例进行详细介绍。
实施例一:
首先,参照图1来描述用于实现本发明实施例的一种计算资源调度方法、装置及电子设备的示例电子设备100。
如图1所示的一种电子设备的结构示意图,电子设备100包括一个或多个处理器102、一个或多个存储装置104、输入装置106、输出装置108以及图像采集装置110,这些组件通过总线系统112和/或其它形式的连接机构(未示出)互连。应当注意,图1所示的电子设备100的组件和结构只是示例性的,而非限制性的,根据需要,所述电子设备也可以具有其他组件和结构。
所述处理器102可以采用数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)中的至少一种硬件形式来实现,所述处理器102可以是中央处理单元(CPU)、图形处理单元(GPU)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元中的一种或几种的组合,并且可以控制所述电子设备100中的其它组件以执行期望的功能。
所述存储装置104可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器102可以运行所述程序指令,以实现下文所述的本发明实施例中(由处理器实现)的客户端功能以及/或者其它期望的功能。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如所述应用程序使用和/或产生的各种数据等。
所述输入装置106可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。
所述输出装置108可以向外部(例如,用户)输出各种信息(例如,图像或声音),并且可以包括显示器、扬声器等中的一个或多个。
所述图像采集装置110可以拍摄用户期望的图像(例如照片、视频等),并且将所拍摄的图像存储在所述存储装置104中以供其它组件使用。
示例性地,用于实现根据本发明实施例的计算资源调度方法、装置及电子设备的示例电子设备可以被实现为诸如智能手机、平板电脑、计算机等智能终端。
实施例二:
本实施例提供了一种计算资源调度方法,该方法可以由诸如CPU等调度设备执行,参见图2所示的计算资源调度方法流程图,该方法主要包括以下步骤S202~步骤S204:
步骤S202,在应用计算流程图对目标计算任务的待处理对象进行计算处理过程中,监测计算流程图中的各个计算节点的当前计算负荷。
其中,上述计算流程图中包括多个计算节点和相互连接的计算节点之间的数据传输管道;计算节点用于通过调度设备中的线程执行目标计算任务的子任务,并将执行子任务后的数据通过数据传输管道传输至下游计算节点。
上述目标计算任务是对待处理对象进行计算处理的任务,可以是诸如视频结构化或视频解析等计算度较高的计算任务,相应的,上述待处理对象可以是与上述目标计算任务相对应的诸如视频、视频流或图像等对象,待处理对象可以放置在调度设备的缓冲池中,当对待处理对象进行计算处理时,可以根据计算需求从调度设备的缓冲池中获取待处理对象进行计算处理。在对待处理对象进行计算处理的过程中,可以通过监测各个计算节点所连接的传输管道中数据的情况,确定各个计算节点的当前计算负荷。
步骤S204,当目标计算节点的当前计算负荷达到预设的算力瓶颈状态时,向目标计算节点调度计算资源。
上述预设的算力瓶颈状态是指目标计算节点无法或难以执行完成其对应的子任务,为了确定计算节点是否达到预设的算力瓶颈状态,可以通过获取与计算节点相关的参数进行算力瓶颈分析,诸如获取各个计算节点所连接的传输管道中数据的情况或计算节点执行子任务的时间信息,以便在计算节点达到预设的算力瓶颈状态时,及时从执行目标计算任务的进程中调度计算资源至目标计算节点,以扩展目标计算节点的计算力,使目标计算节点尽快完成子任务的执行,从而输出数据至下游计算节点,进而缩短调度设备消耗的计算时间。
本实施例提供的上述计算资源调度方法,通过应用计算流程图对待处理对象进行计算处理,并在计算处理过程中监测计算流程图中各个计算节点的当前计算负荷,根据各个计算节点的当前计算负荷可以发现计算流程图中算力瓶颈的计算节点,从而可以高效地调度计算资源,通过向达到预设的算力瓶颈状态的计算节点调度计算资源,可以在有限的计算资源条件下提升调度设备的计算效率。
为了得到目标计算任务的计算流程图,本实施例提供了预先构建计算流程图的实施方式,具体可参照如下步骤1)~步骤2)执行:
步骤1):获取目标计算任务的各个子任务,为各个子任务分配计算节点。
将上述目标计算任务划分为多个子任务,为每个子任务分配计算节点,诸如,在目标跟踪计算任务中,可以划分为目标检测、路径生成等多个子任务。在构建计算流程图的过程中,为了使各个计算节点尽可能快地完成子任务的执行,若划分得到的子任务仍具有可分裂的属性,即划分得到的子任务仍可以细分为多个子任务,可以将上述目标计算任务划分成多个子任务。
具体的,判断各个子任务是否能进一步分裂为多个子任务;如果是,将能够进一步分裂的子任务的计算节点对应分裂为多个计算节点。将具有可分裂属性的子任务进行进一步划分,也即将该具有可分裂属性的子任务对应的计算节点分裂为多个计算节点,直到得到的每个计算节点对应的子任务不具有可分裂的属性。得到分裂完成的节点后,可将分裂得到的多个计算节点使用广播管道与其上一个节点进行连接,使用合并管道与其下一个节点进行连接。
诸如,计算节点6为执行属性检测子任务的节点,参见如图3所示的计算流程图的局部示意图,计算节点6接收计算节点5传输的图片数据,计算节点6通过调用计算设备中的线程执行属性检测任务,将属性检测结果通过数据传输管道传输至计算节点7,由于上述属性检测任务具有可分裂属性,诸如将属性检测任务划分为分别对车、车牌和人的属性检测,因此,可以将计算节点6进一步划分为计算节点61、计算节点62和计算节点63,其中,计算节点61可以用于执行车的属性检测的子任务,计算节点62可以用于执行车牌的属性检测的子任务,计算节点63可以用于执行人的属性检测的子任务,在进行进一步的节点分裂后,参见如图4所示的计算流程图的局部示意图,图4中示出了节点分裂后的计算流程图,上述计算节点5可以通过广播管道分别与计算节点61、计算节点62和计算节点63连接,上述计算节点6分裂得到的计算节点61、计算节点62和计算节点63通过合并管道与计算节点7连接。
步骤2):根据各个子任务之间的依赖关系设置各个计算节点之间的数据传输管道,得到目标计算任务的计算流程图。
上述数据输入管道是当前计算节点用于接收待处理数据的管道,待处理数据是上一级计算节点的输出数据;上述数据输出管道是当前计算节点用于输出目标数据的管道,目标数据是当前计算节点执行子任务后得到的数据。上述数据传输管道用于将具有数据传输关系的计算节点连接起来,根据不同计算节点之间的连接关系,可以将上述数据传输管道分为广播管道、多支路管道、合并管道和保序管道等。根据各个计算节点之间的数据流向关系设置数据传输管道,可以通过以下方式一~方式四中的至少一种设置数据传输管道的类型:
方式一:当存在第一目标计算节点时,将第一目标计算节点的数据输出管道设置为广播管道。其中,第一目标计算节点为将执行子任务后的数据同时传输至多个下一级计算节点的节点。上述广播管道为将一个计算节点执行子任务产生的数据同时输出给多个下一级的计算节点时使用的多条数据传输管道。
方式二:当存在第二目标计算节点时,将第二目标计算节点的数据输出管道设置为多支路管道。其中,第二目标计算节点为需要根据预设条件选择接收目标数据的下一级计算节点的节点,目标数据为第二目标计算节点执行子任务后产生的数据。上述多支路管道是指将计算节点执行子任务产生的数据根据所满足的条件选择从多条数据输出管道中选择一条进行数据输出,诸如,计算节点1通过多支路管道(数据传输管道a和数据传输管道b)连接了下一级的计算节点2和计算节点3,当上述计算节点1执行子任务产生的数据满足条件A时,计算节点1将产生的数据通过数据传输管道a传输至计算节点2;当上述计算节点1执行子任务产生的数据满足条件B时,计算节点1将产生的数据通过数据传输管道b传输至计算节点3。
方式三:当存在第三目标计算节点时,将第三目标计算节点的数据输入管道设置为合并管道。其中,第三目标计算节点为能够接收多个上一级计算节点执行子任务后的数据的节点。上述合并管道是将多个计算节点执行子任务产生的数据输出给同一个下一级节点时使用的多条数据传输管道。
方式四:当存在第四目标计算节点时,将第四目标计算节点的数据输出管道设置为保序管道。其中,第四目标计算节点为数据的接收顺序与数据的输出顺序须保持一致的节点。上述保序管道是指根据计算节点的输入数据的顺序调节输出数据顺序的数据传输管道,诸如计算节点4所连接的数据传输管道为保序管道,该计算节点4为执行图像检测任务的节点,计算节点在执行图像检测任务时接收到的图像帧号顺序为12345,若计算节点4执行完成图像检测任务后输出的图像检测结果对应的帧号顺序为21453,计算节点4所连接的保序管道可以将图像检测结果对应的帧号顺序修正为12345。
为了更加准确地获取到各个计算节点的当前计算负荷,从而合理调度计算资源,本实施例提供了监测计算流程图中的各个计算节点的当前计算负荷的实施方式,具体可参照如下步骤(1)~步骤(2)执行:
步骤(1):获取计算流程图中的各个计算节点的线程记录的日志信息;其中,日志信息包括各个线程在执行计算节点对应的子任务时接收或发送的数据信息以及各个线程执行子任务的时间信息。
上述各个计算节点的线程记录的日志信息可以是根据各个计算节点所连接的数据传输管道得到的,还可以是根据各个线程执行计算节点对应的子任务时通过记录时间得到的。上述数据传输管道包括数据输入管道和数据输出管道,其中,数据输入管道是当前计算节点用于接收待处理数据的管道;待处理数据是上一级计算节点的输出数据;数据输出管道是当前计算节点用于输出目标数据的管道;目标数据是当前计算节点执行子任务后得到的数据。上述日志信息中记录有各个线程在执行计算节点对应的子任务时计算节点的数据输入管道和数据输出管道中的数据信息,该数据信息可以包括诸如数据类型或数据量等参数。
步骤(2):根据各个线程记录的日志信息,确定各个计算节点的当前计算负荷。
根据各个线程记录的日志信息,确定各个计算节点的节点信息;其中,节点信息包括各个计算节点的数据输入管道对应的数据量和数据输出管道对应的数据量,以及各计算节点对应的线程执行各个计算节点中的子任务的预计消耗时间中的任意一种或多种;根据各个计算节点的节点信息确定对应计算节点的当前计算负荷。根据上述各个线程记录的日志信息中各个线程在执行计算节点对应的子任务时接收或发送的数据信息,可以确定各个线程在执行计算节点对应的子任务时计算节点的数据输入管道对应的数据量和数据输出管道对应的数据量,其中,计算节点的数据输入管道对应的数据量为该计算节点的所有数据输入管道中数据量的总和,计算节点的数据输出管道对应的数据量为该计算节点的各个数据输出管道中数据量。根据上述各个线程记录的日志信息中各个线程执行子任务的时间信息,确定各计算节点对应的线程执行各个计算节点中的子任务的开始时间、预计消耗时间,当线程完成计算节点的子任务执行时,上述日志信息中记录有执行子任务的开始时间、结束时间和总的消耗时间。根据上述计算节点的节点信息中的一种或多种确定计算节点的当前负荷状态。
考虑到如何判定计算节点达到预设的算力瓶颈状态的问题,本实施例提供了当目标计算节点的当前计算负荷达到预设的算力瓶颈状态时,向目标计算节点调度计算资源的实施方式,具体可参照如下步骤a~步骤b执行:
步骤a:根据各个计算节点的节点信息,判断各个计算节点的当前计算负荷是否达到预设的算力瓶颈条件。
由于上述节点信息包括各个计算节点的数据输入管道对应的数据量和数据输出管道对应的数据量,各个计算节点通过线程进行数据处理的速度以及各计算节点对应的线程执行各个计算节点中的子任务的预计消耗时间中的任意一种或多种,对于不同的节点信息,判断计算节点是否达到预设的算力瓶颈条件的实施方式也不相同,具体可参照如下实施方式一~实施方式四执行:
实施方式一:如果节点信息包括各个计算节点的数据输入管道对应的数据量,判断各个计算节点的数据输入管道对应的数据量是否达到预设输入数据量,将达到预设输入数据量的计算节点确定为达到预设的算力瓶颈条件的目标计算节点。通过监测各个计算节点的输入管道对应的数据量,即监测计算节点对应的所有输入管道的总数据量,以根据输入管道的总的数据量判断该计算节点的待处理的任务量。当计算节点的数据输入管道的总数据量达到预设输入数据量时,确定该计算节点为目标计算节点,即目标计算节点的输入管道堵塞,且目标计算节点通过线程进行数据处理的速度远小于待处理数据的接收速度,该目标计算节点即为处于预设的算力瓶颈状态的节点,可以向目标计算节点调度计算资源,以扩展目标计算节点的算力。其中,上述预设输入数据量可以是根据实际的目标计算任务的处理情况,人为设置能够使该目标计算任务尽快完成计算处理的值。
实施方式二:如果节点信息包括各个计算节点的数据输出管道对应的数据量,判断各个计算节点的数据输出管道对应的数据量是否达到预设输出数据量,将达到预设输出数据量的计算节点的下游计算节点确定为达到预设的算力瓶颈条件的目标计算节点。其中,计算节点通过数据输出管道向下游计算节点传输数据。通过监测各个计算节点的输出管道对应的数据量,即监测计算节点的各个数据输出管道中的数据量,可以确定各个数据输出管道的下游计算节点的待处理的数据量,将达到预设输出数据量的计算节点的下游计算节点确定为达到预设的算力瓶颈状态的目标计算节点,可以向目标计算节点调度计算资源,以扩展目标计算节点的算力。其中,该预设数据输出量可以是人为设置的,由于上述预设输出数据量为单个数据输出管道的数据量阈值,该预设数据输出量值的大小可以小于上述预设输入数据量。
实施方式三:如果节点信息包括各计算节点对应的线程执行各个计算节点中的子任务的预计消耗时间,判断各个线程在执行各个计算节点中的子任务时预计消耗时间是否大于预设时间,将预计消耗时间大于预设时间的计算节点确定为达到预设的算力瓶颈条件的目标计算节点。根据各个线程记录的日志信息,可以确定各个计算节点执行子任务时所需计算时间的历史记录,根据各个计算节点执行子任务时所需计算时间的历史记录可以确定各个计算节点执行子任务时的预计消耗时间(例如,根据各个计算节点执行子任务时所需计算时间的历史记录可确定各个计算节点的数据处理速度,根据各个节点的数据处理速度和待处理数据量可以确定各个计算节点执行子任务时的预计消耗时间),当该预计消耗时间较长时,表示该计算节点对应的子任务复杂度较高,当执行计算节点子任务的预计消耗时间达到预设时间时,确定该计算节点为达到预设的算力瓶颈状态的目标计算节点。或者,也可以通过监测各个计算节点通过线程执行子任务的开始时间及当前所消耗时间,判断各个计算节点所对应子任务的复杂程度,当前所消耗时间越长,该计算节点对应子任务的复杂程度越高,当有计算节点通过线程执行其对应子任务的当前所消耗时间达到预设时间时,确定该计算节点为达到预设的算力瓶颈状态的目标计算节点。上述预设之间可以根据计算节点多次执行子任务的实验人为设定。
实施方式四:如果节点信息包括各个计算节点的数据输入管道对应的数据量和数据输出管道对应的数据量,判断各个计算节点的数据输入管道对应的数据量与数据输出管道对应的数据量之间的比值是否达到预设比值,将达到预设比值的计算节点确定为达到预设的算力瓶颈条件的目标计算节点。计算节点的数据输入管道对应的数据量与数据输出管道对应的数据量之间的比值可以间接反映该计算节点的数据处理速度,当计算节点的数据输入管道对应的数据量与数据输出管道对应的数据量之间的比值较大时,表示该计算节点的数据处理速度较慢,且该计算节点的待处理数据较多,出现节点阻塞的可能性较大,因此,将达到预设比值的计算节点确定为达到预设的算力瓶颈条件的目标计算节点。
在一种具体的实施方式中,可以将数据输入管道对应的数据量达到预设输入数据量、且执行子任务的预计消耗时间达到了预设时间的计算节点确定为目标计算节点。还可以将数据输出管道对应的数据量达到预设输出数据量的管道所连接的下游计算节点(且该下游计算节点执行子任务的预计消耗时间达到了预设时间)确定为目标计算节点。
在一种具体的实施方式中,可以用热力图在应用计算流程图中动态显示各个计算节点的当前计算负荷,例如,将当前计算负荷高/算力达到瓶颈状态的计算节点显示为暖色,将当前计算负荷低/算力充裕的计算节点显示为冷色。
步骤b:向达到预设的算力瓶颈条件的目标计算节点调度计算资源。
为了在调度设备有限的计算资源下提升计算效率,从执行计算流程图的进程中获取空闲线程;将空闲线程调度至目标计算节点,以使目标计算节点通过执行目标计算节点的当前线程和空闲线程并行处理目标计算节点对应的子任务。上述执行目标计算任务的计算流程图的进程中可以包括多个线程,调度设备通过调度计算资源,为计算流程图中的各个计算节点分配执行子任务的线程,当目标计算节点达到预设的算力瓶颈状态时,从执行目标计算任务的计算流程图的进程中调度处于空闲状态的空闲线程至目标计算节点,以使目标计算节点通过多个线程并行处理子任务,从而尽快产生输出数据,实现了计算节点与计算资源的独立管理控制。上述空闲线程可以是已经完成计算节点子任务执行的线程,还可以是被分配至目标计算节点的后级节点未开始子任务执行的线程,该空闲线程可以为一个或多个,调度设备根据当前空闲线程的数量和状态,调度一个或多个相应的空闲线程至目标计算节点,以尽可能减小操作系统中线程切换开销。
在实际应用中,上述调度设备可以是具有调度功能的设备,该调度设备通过CPU调用专门的线程执行计算资源调度任务,将空闲线程调度至各个目标计算节点。上述调度设备还可以是没有调度功能的设备,诸如NPU、寒武纪MLU单卡等,该调度设备可以通过CPU对其计算资源进行调度。
本实施例提供的上述计算资源调度方法,通过从目标计算任务中抽象出计算节点和数据传输管道,简化了高复杂度计算任务的数据流时序依赖关系;通过进行算力瓶颈分析,及时发现处于算力瓶颈状态的目标计算节点;通过合理地调度空闲线程至目标计算节点,扩展了目标计算节点的算力,简化了高并发线程的调度,提升了调度设备的计算效率。
实施例三:
在前述实施例的基础上,本实施例提供了一种应用前述计算资源调度方法处理视频结构化任务的具体示例,具体可参照如下步骤1~步骤4执行:
步骤1:获取视频结构化任务的流程图。
上述视频结构化是指根据视频画面中呈现出的各个对象的特征,建立视频大数据结构化平台,视频被结构化后,可以存储在相应的结构化数据库中,其中,上述对象可以包括行人、车辆、颜色或数字等。上述视频结构化任务的流程可以是:获取该视频结构化任务中的待处理对象(视频或图片流),将待处理对象放入缓冲池,从缓冲池中获取一帧一帧的图片,利用检测模块分别检测每帧图片中的车辆、行人和车牌,使用质量判断模块对上述检测模块检测得到的车辆、行人和车牌进行质量判断,利用追踪模块对上述质量判断模块得到的图片进行车辆和行人追踪,利用判断模块根据预设的判断条件得到跟踪到的一系列图像中质量最好的图片,利用属性检测模块对判断模块得到的图片中的车、车牌和人进行属性检测。
步骤2:通过将视频结构化任务的流程图中的计算模块抽象为计算节点,确定该视频结构化任务的计算流程图。
上述检测模块、质量判断模块、追踪模块、判断模块和属性检测模块均为上述视频结构化任务的流程图中的计算模块,将各个计算模块分别作为不同的计算节点,并根据各个模块间的数据传输关系,使用数据传输管道连接各个计算节点。其中,上述质量判断模块对应的计算节点可以进一步分裂为三个计算节点,分别用于通过线程对检测模块检测出的车辆、车牌和行人进行质量判断,即上述质量判断的子任务可以进一步分为三个子任务。上述属性检测模块对应的计算节点也可以进一步分裂为三个计算节点,分别用于通过线程对车、车牌和人的属性进行检测。通过连接视频结构化任务的各个子任务对应的计算节点,得到视频结构化任务的计算流程图。
步骤3:监测上述计算流程图中各个计算节点的数据输入管道或数据输出管道的状态,并根据数据输入管道或数据输出管道的状态确定处于算力瓶颈状态的计算节点。
监测各个计算节点的数据传输管道中的数据信息,如果某个计算节点的数据输入管道中待处理的任务很多,且每个待处理任务都需要较长的计算处理时间,将该计算节点确定为处于算力瓶颈状态的计算节点;如果某个计算节点的数据输出管道中的待处理任务很多,且每个待处理任务都需要较长的计算处理时间,将该数据输出管道连接的下游计算节点确定为处于算力瓶颈状态的计算节点。
步骤4:向处于算力瓶颈状态的计算节点调度计算资源。
从执行上述视频结构化任务的进程中获取空闲线程;将空闲线程调度至处于算力瓶颈状态的计算节点,以使处于算力瓶颈状态的计算节点通过当前线程和空闲线程并行处理其对应的子任务。
本实施例提供的上述计算资源调度方法,能够使视频结构化的计算任务具有在p4显卡上20路以上、寒武纪MLU单卡10路以上的计算能力,且便于切换异构设备以及对调度设备的算力分配。
实施例四:
对于实施例二中所提供的计算资源调度方法,本发明实施例提供了一种计算资源调度装置,参见图5所示的一种计算资源调度装置结构示意图,该装置包括以下模块:
负荷监测模块51,用于在应用计算流程图对目标计算任务的待处理对象进行计算处理过程中,监测计算流程图中的各个计算节点的当前计算负荷;其中,计算流程图中包括多个计算节点和相互连接的计算节点之间的数据传输管道;计算节点用于通过调度设备中的线程执行目标计算任务的子任务,并将执行子任务后的数据通过数据传输管道传输至下游计算节点。
资源调度模块52,用于在目标计算节点的当前计算负荷达到预设的算力瓶颈状态时,向目标计算节点调度计算资源。
本实施例提供的上述计算资源调度装置,通过应用计算流程图对待处理对象进行计算处理,并在计算处理过程中监测计算流程图中各个计算节点的当前计算负荷,根据各个计算节点的当前计算负荷可以发现计算流程图中算力瓶颈的计算节点,从而可以高效地调度计算资源,通过向达到预设的算力瓶颈状态的计算节点调度计算资源,可以在有限的计算资源条件下提升调度设备的计算效率。
在一种实施方式中,参见图6所示的另一种计算资源调度装置结构示意图,上述装置还包括:
流程图构建模块60,用于预先通过以下方式构建计算流程图:获取目标计算任务的各个子任务,为各个子任务分配计算节点;根据各个子任务之间的依赖关系设置各个计算节点之间的数据传输管道,得到目标计算任务的计算流程图。
在一种实施方式中,上述数据传输管道包括数据输入管道和数据输出管道;数据输入管道是当前计算节点用于接收待处理数据的管道;待处理数据是上一级计算节点的输出数据;数据输出管道是当前计算节点用于输出目标数据的管道;目标数据是当前计算节点执行子任务后得到的数据;上述流程图构建模块60,进一步用于根据各个计算节点之间的数据流向关系设置数据传输管道;通过以下方式中的至少一种设置数据传输管道的类型:当存在第一目标计算节点时,将第一目标计算节点的数据输出管道设置为广播管道;其中,第一目标计算节点为将执行子任务后的数据同时传输至多个下一级计算节点的节点;当存在第二目标计算节点时,将第二目标计算节点的数据输出管道设置为多支路管道;其中,第二目标计算节点为需要根据预设条件选择接收目标数据的下一级计算节点的节点,目标数据为第二目标计算节点执行子任务后产生的数据;当存在第三目标计算节点时,将第三目标计算节点的数据输入管道设置为合并管道;其中,第三目标计算节点为能够接收多个上一级计算节点执行子任务后的数据的节点;当存在第四目标计算节点时,将第四目标计算节点的数据输出管道设置为保序管道;其中,第四目标计算节点为数据的接收顺序与数据的输出顺序须保持一致的节点。
在一种实施方式中,上述流程图构建模块60,进一步用于判断各个子任务是否能进一步分裂为多个子任务;如果是,将能够进一步分裂的子任务的计算节点对应分裂为多个计算节点。
在一种实施方式中,上述负荷监测模块51,进一步用于获取计算流程图中的各个计算节点的线程记录的日志信息;其中,日志信息包括各个线程在执行计算节点对应的子任务时接收或发送的数据信息以及各个线程执行子任务的时间信息;根据各个线程记录的日志信息,确定各个计算节点的当前计算负荷。
在一种实施方式中,上述数据传输管道包括数据输入管道和数据输出管道;数据输入管道是当前计算节点用于接收待处理数据的管道;待处理数据是上一级计算节点的输出数据;数据输出管道是当前计算节点用于输出目标数据的管道;目标数据是当前计算节点执行子任务后得到的数据;上述负荷监测模块51,进一步用于根据各个线程记录的日志信息,确定各个计算节点的节点信息;其中,节点信息包括各个计算节点的数据输入管道对应的数据量和数据输出管道对应的数据量,以及各计算节点对应的线程执行各个计算节点中的子任务的预计消耗时间中的任意一种或多种;根据各个计算节点的节点信息确定对应计算节点的当前计算负荷。
在一种实施方式中,上述资源调度模块52,进一步用于根据各个计算节点的节点信息,判断各个计算节点的当前计算负荷是否达到预设的算力瓶颈条件;向达到预设的算力瓶颈条件的目标计算节点调度计算资源。
在一种实施方式中,上述资源调度模块52,进一步用于根据以下至少之一判断各个计算节点的当前计算负荷是否达到预设的算力瓶颈条件:
如果节点信息包括各个计算节点的数据输入管道对应的数据量,判断各个计算节点的数据输入管道对应的数据量是否达到预设输入数据量,将达到预设输入数据量的计算节点确定为达到预设的算力瓶颈条件的目标计算节点;如果节点信息包括各个计算节点的数据输出管道对应的数据量,判断各个计算节点的数据输出管道对应的数据量是否达到预设输出数据量,将达到预设输出数据量的计算节点的下游计算节点确定为达到预设的算力瓶颈条件的目标计算节点;其中,计算节点通过数据输出管道向下游计算节点传输数据;如果节点信息包括各计算节点对应的线程执行各个计算节点中的子任务的预计消耗时间,判断各个线程在执行各个计算节点中的子任务时预计消耗时间是否大于预设时间,将预计消耗时间大于预设时间的计算节点确定为达到预设的算力瓶颈条件的目标计算节点;如果节点信息包括各个计算节点的数据输入管道对应的数据量和数据输出管道对应的数据量,判断各个计算节点的数据输入管道对应的数据量与数据输出管道对应的数据量之间的比值是否达到预设比值,将达到预设比值的计算节点确定为达到预设的算力瓶颈条件的目标计算节点。
在一种实施方式中,上述资源调度模块52,进一步用于从执行计算流程图的进程中获取空闲线程;将空闲线程调度至目标计算节点,以使目标计算节点通过执行目标计算节点的当前线程和空闲线程并行处理目标计算节点对应的子任务。
本实施例提供的上述计算资源调度装置,通过从目标计算任务中抽象出计算节点和数据传输管道,简化了高复杂度计算任务的数据流时序依赖关系;通过进行算力瓶颈分析,及时发现处于算力瓶颈状态的目标计算节点;通过合理地调度空闲线程至目标计算节点,扩展了目标计算节点的算力,简化了高并发线程的调度,提升了调度设备的计算效率。
本实施例所提供的装置,其实现原理及产生的技术效果和前述实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统具体工作过程,可以参考前述实施例中的对应过程,在此不再赘述。
本发明实施例所提供的计算资源调度方法、装置及电子设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (12)

1.一种计算资源调度方法,其特征在于,所述方法由调度设备执行,所述方法包括:
在应用计算流程图对目标计算任务的待处理对象进行计算处理过程中,监测所述计算流程图中的各个计算节点的当前计算负荷;其中,所述计算流程图中包括多个计算节点和相互连接的所述计算节点之间的数据传输管道;所述计算节点用于通过所述调度设备中的线程执行所述目标计算任务的子任务,并将执行所述子任务后的数据通过所述数据传输管道传输至下游计算节点;所述数据传输管道包括数据输入管道和数据输出管道,所述数据输入管道是当前计算节点用于接收待处理数据的管道,所述待处理数据是上一级计算节点的输出数据;所述数据输出管道是当前计算节点用于输出目标数据的管道,所述目标数据是当前计算节点执行所述子任务后得到的数据;所述当前计算负荷是基于所述计算节点的数据输入管道对应的数据量和数据输出管道对应的数据量、所述计算节点通过线程进行数据处理的速度以及所述计算节点对应的线程执行所述计算节点中的子任务的预计消耗时间中的任意一种或多种确定的;
当目标计算节点的当前计算负荷达到预设的算力瓶颈状态时,向所述目标计算节点调度计算资源。
2.根据权利要求1所述的方法,其特征在于,所述计算流程图为预先通过以下方式构建:
获取目标计算任务的各个子任务,为各个所述子任务分配计算节点;
根据各个所述子任务之间的依赖关系设置各个所述计算节点之间的数据传输管道,得到所述目标计算任务的计算流程图。
3.根据权利要求2所述的方法,其特征在于,所述根据各个所述子任务之间的依赖关系设置各个所述计算节点之间的数据传输管道,得到所述目标计算任务的计算流程图的步骤,包括:
根据各个计算节点之间的数据流向关系设置数据传输管道;
通过以下方式中的至少一种设置数据传输管道的类型:
当存在第一目标计算节点时,将所述第一目标计算节点的数据输出管道设置为广播管道;其中,所述第一目标计算节点为将执行所述子任务后的数据同时传输至多个下一级计算节点的节点;
当存在第二目标计算节点时,将所述第二目标计算节点的数据输出管道设置为多支路管道;其中,所述第二目标计算节点为需要根据预设条件选择接收目标数据的下一级计算节点的节点,所述目标数据为所述第二目标计算节点执行所述子任务后产生的数据;
当存在第三目标计算节点时,将所述第三目标计算节点的数据输入管道设置为合并管道;其中,所述第三目标计算节点为能够接收多个上一级计算节点执行所述子任务后的数据的节点;
当存在第四目标计算节点时,将所述第四目标计算节点的数据输出管道设置为保序管道;其中,所述第四目标计算节点为数据的接收顺序与数据的输出顺序须保持一致的节点。
4.根据权利要求2所述的方法,其特征在于,所述获取目标计算任务的各个子任务,为各个所述子任务分配计算节点的步骤,包括:
判断各个所述子任务是否能进一步分裂为多个子任务;
如果是,将能够进一步分裂的子任务的计算节点对应分裂为多个计算节点。
5.根据权利要求1所述的方法,其特征在于,所述监测所述计算流程图中的各个计算节点的当前计算负荷的步骤,包括:
获取所述计算流程图中的各个计算节点的线程记录的日志信息;其中,所述日志信息包括各个所述线程在执行所述计算节点对应的子任务时接收或发送的数据信息以及各个所述线程执行所述子任务的时间信息;
根据各个所述线程记录的日志信息,确定各个所述计算节点的当前计算负荷。
6.根据权利要求5所述的方法,其特征在于,所述根据各个所述线程记录的日志信息,确定各个所述计算节点的当前计算负荷的步骤,包括:
根据各个所述线程记录的日志信息,确定各个所述计算节点的节点信息;其中,所述节点信息包括各个所述计算节点的数据输入管道对应的数据量和数据输出管道对应的数据量,各个计算节点通过线程进行数据处理的速度以及各计算节点对应的线程执行各个所述计算节点中的子任务的预计消耗时间中的任意一种或多种;
根据各个所述计算节点的节点信息确定对应计算节点的当前计算负荷。
7.根据权利要求6所述的方法,其特征在于,所述当目标计算节点的当前计算负荷达到预设的算力瓶颈状态时,向所述目标计算节点调度计算资源的步骤,包括:
根据各个所述计算节点的节点信息,判断各个所述计算节点的当前计算负荷是否达到预设的算力瓶颈条件;
向达到预设的算力瓶颈条件的目标计算节点调度计算资源。
8.根据权利要求7所述的方法,所述根据各个所述计算节点的节点信息,判断各个所述计算节点的当前计算负荷是否达到预设的算力瓶颈条件的步骤,包括以下至少之一:
如果所述节点信息包括各个所述计算节点的数据输入管道对应的数据量,判断各个所述计算节点的数据输入管道对应的数据量是否达到预设输入数据量,将达到所述预设输入数据量的计算节点确定为达到预设的算力瓶颈条件的目标计算节点;
如果所述节点信息包括各个所述计算节点的数据输出管道对应的数据量,判断各个所述计算节点的数据输出管道对应的数据量是否达到预设输出数据量,将达到所述预设输出数据量的计算节点的下游计算节点确定为达到预设的算力瓶颈条件的目标计算节点;其中,所述计算节点通过所述数据输出管道向所述下游计算节点传输数据;
如果所述节点信息包括各计算节点对应的线程执行各个所述计算节点中的子任务的预计消耗时间,判断各个所述线程在执行各个所述计算节点中的子任务时预计消耗时间是否大于预设时间,将预计消耗时间大于所述预设时间的计算节点确定为达到预设的算力瓶颈条件的目标计算节点;
如果所述节点信息包括各个所述计算节点的数据输入管道对应的数据量和数据输出管道对应的数据量,判断各个所述计算节点的数据输入管道对应的数据量与数据输出管道对应的数据量之间的比值是否达到预设比值,将达到所述预设比值的计算节点确定为达到预设的算力瓶颈条件的目标计算节点。
9.根据权利要求1-8任一项所述的方法,其特征在于,所述向所述目标计算节点调度计算资源的步骤,包括:
从执行所述计算流程图的进程中获取空闲线程;
将所述空闲线程调度至所述目标计算节点,以使所述目标计算节点通过执行所述目标计算节点的当前线程和所述空闲线程并行处理所述目标计算节点对应的子任务。
10.一种计算资源调度装置,其特征在于,所述装置设置于调度设备中,所述装置包括:
负荷监测模块,用于在应用计算流程图对目标计算任务的待处理对象进行计算处理过程中,监测所述计算流程图中的各个计算节点的当前计算负荷;其中,所述计算流程图中包括多个计算节点和相互连接的所述计算节点之间的数据传输管道;所述计算节点用于通过所述调度设备中的线程执行所述目标计算任务的子任务,并将执行所述子任务后的数据通过所述数据传输管道传输至下游计算节点;所述数据传输管道包括数据输入管道和数据输出管道,所述数据输入管道是当前计算节点用于接收待处理数据的管道,所述待处理数据是上一级计算节点的输出数据;所述数据输出管道是当前计算节点用于输出目标数据的管道,所述目标数据是当前计算节点执行所述子任务后得到的数据;所述当前计算负荷是基于所述计算节点的数据输入管道对应的数据量和数据输出管道对应的数据量、所述计算节点通过线程进行数据处理的速度以及所述计算节点对应的线程执行所述计算节点中的子任务的预计消耗时间中的任意一种或多种确定的;
资源调度模块,用于在目标计算节点的当前计算负荷达到预设的算力瓶颈状态时,向所述目标计算节点调度计算资源。
11.一种电子设备,其特征在于,包括:处理器和存储装置;
所述存储装置上存储有计算机程序,所述计算机程序在被所述处理器运行时执行如权利要求1至9任一项所述的方法。
12.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行上述权利要求1至9任一项所述的方法的步骤。
CN202010179275.1A 2020-03-13 2020-03-13 计算资源调度方法、装置及电子设备 Active CN111400008B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010179275.1A CN111400008B (zh) 2020-03-13 2020-03-13 计算资源调度方法、装置及电子设备
PCT/CN2020/119624 WO2021179588A1 (zh) 2020-03-13 2020-09-30 计算资源调度方法、装置、电子设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010179275.1A CN111400008B (zh) 2020-03-13 2020-03-13 计算资源调度方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN111400008A CN111400008A (zh) 2020-07-10
CN111400008B true CN111400008B (zh) 2023-06-02

Family

ID=71436289

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010179275.1A Active CN111400008B (zh) 2020-03-13 2020-03-13 计算资源调度方法、装置及电子设备

Country Status (2)

Country Link
CN (1) CN111400008B (zh)
WO (1) WO2021179588A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111400008B (zh) * 2020-03-13 2023-06-02 北京旷视科技有限公司 计算资源调度方法、装置及电子设备
CN114489963A (zh) * 2020-11-12 2022-05-13 华为云计算技术有限公司 人工智能应用任务的管理方法、系统、设备及存储介质
CN112784755A (zh) * 2021-01-25 2021-05-11 瑞芯微电子股份有限公司 一种轻型的人脸跟踪方法和存储设备
CN113220459B (zh) * 2021-05-26 2023-10-10 杭州海康威视数字技术股份有限公司 一种任务处理方法及装置
CN113067898B (zh) * 2021-06-02 2021-08-10 支付宝(杭州)信息技术有限公司 为业务流程合约调度计算服务的方法
CN113259465B (zh) * 2021-06-02 2021-10-15 支付宝(杭州)信息技术有限公司 基于链外的计算服务的业务执行方法
CN113918298B (zh) * 2021-10-12 2024-05-14 北京字节跳动网络技术有限公司 多媒体数据的处理方法、系统及设备
CN114625534B (zh) * 2022-03-01 2024-04-09 航天科工智能运筹与信息安全研究院(武汉)有限公司 基于灵活配置实现性能提优的复杂算力系统并行处理系统
CN114518917B (zh) * 2022-04-20 2022-08-09 浙江大华技术股份有限公司 算法模块调度方法、算法模块调度装置以及可读存储介质
CN114780226B (zh) * 2022-06-14 2022-09-16 小米汽车科技有限公司 资源调度方法、装置,计算机可读存储介质及车辆
CN115237581B (zh) * 2022-09-21 2022-12-27 之江实验室 一种面向异构算力的多策略智能调度方法和装置
CN116680064B (zh) * 2023-08-03 2023-10-10 中航信移动科技有限公司 一种任务节点的管理方法、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103870340A (zh) * 2014-03-06 2014-06-18 华为技术有限公司 流计算系统中的数据处理方法、控制节点及流计算系统
CN106339252A (zh) * 2015-07-08 2017-01-18 阿里巴巴集团控股有限公司 分布式dag系统的自适应优化方法和装置
CN106844027A (zh) * 2017-01-13 2017-06-13 广西电网有限责任公司电力科学研究院 一种基于节点负载的任务调度方法
CN106933669A (zh) * 2015-12-29 2017-07-07 伊姆西公司 用于数据处理的装置和方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100157800A1 (en) * 2008-12-19 2010-06-24 Inventec Corporation Method for processing network traffic loading balance
CN102281329B (zh) * 2011-08-02 2013-11-20 北京邮电大学 一种PaaS云平台的资源调度方法和系统
US10110412B2 (en) * 2012-10-17 2018-10-23 Disney Enterprises, Inc. Dynamically allocated computing method and system for distributed node-based interactive workflows
US9548941B2 (en) * 2014-06-18 2017-01-17 Adobe Systems Incorporated Data flow node provisioning
CN106385381B (zh) * 2016-08-23 2019-05-10 广东科学技术职业学院 一种匹配计算的资源调度分配方法及其系统
CN110247979B (zh) * 2019-06-21 2021-08-17 北京邮电大学 一种调度方案确定方法、装置及电子设备
CN111400008B (zh) * 2020-03-13 2023-06-02 北京旷视科技有限公司 计算资源调度方法、装置及电子设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103870340A (zh) * 2014-03-06 2014-06-18 华为技术有限公司 流计算系统中的数据处理方法、控制节点及流计算系统
CN106339252A (zh) * 2015-07-08 2017-01-18 阿里巴巴集团控股有限公司 分布式dag系统的自适应优化方法和装置
CN106933669A (zh) * 2015-12-29 2017-07-07 伊姆西公司 用于数据处理的装置和方法
CN106844027A (zh) * 2017-01-13 2017-06-13 广西电网有限责任公司电力科学研究院 一种基于节点负载的任务调度方法

Also Published As

Publication number Publication date
CN111400008A (zh) 2020-07-10
WO2021179588A1 (zh) 2021-09-16

Similar Documents

Publication Publication Date Title
CN111400008B (zh) 计算资源调度方法、装置及电子设备
CN109409513B (zh) 一种基于神经网络的任务处理方法及相关设备
Yang et al. Re-thinking CNN frameworks for time-sensitive autonomous-driving applications: Addressing an industrial challenge
CN107479990A (zh) 一种分布式软件服务系统
CN109656782A (zh) 可视化调度监控方法、装置及服务器
CN111209310B (zh) 基于流计算的业务数据处理方法、装置和计算机设备
CN109033814B (zh) 智能合约触发方法、装置、设备及存储介质
CN111506434B (zh) 一种任务处理方法、装置及计算机可读存储介质
CN103999121A (zh) 用于将图像基元部署至计算构造的图像流管线控制器
CN111507257B (zh) 图片处理方法、装置、系统、介质及程序
CN109542642A (zh) 一种前端任务处理的方法及装置
Maruf et al. Extending resources for avoiding overloads of mixed‐criticality tasks in cyber‐physical systems
CN115600676A (zh) 深度学习模型推理方法、装置、设备及存储介质
CN111124644A (zh) 任务调度资源的确定方法、装置及系统
CN115617532B (zh) 一种目标追踪处理方法、系统及相关装置
CN116402318B (zh) 面向配电网的多级算力资源分配方法、装置及网络架构
CN115981871B (zh) 一种gpu资源调度方法、装置、设备及存储介质
CN111813541A (zh) 一种任务调度方法、装置、介质和设备
WO2020001427A1 (zh) 一种分析任务执行方法、装置、系统及电子设备
CN111984393A (zh) 分布式大规模实时数据调度引擎系统及其数据调度方法
CN110955461A (zh) 计算任务的处理方法、装置、系统、服务器和存储介质
CN115098254A (zh) 子任务序列的触发执行方法、系统及电子设备
CN113992493A (zh) 视频处理方法、系统、设备及存储介质
CN114356713A (zh) 线程池监控方法、装置、电子设备及存储介质
Ong et al. Accelerating low-cost edge-based real-time video analytics using task scheduling

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