掌桥专利:专业的专利平台
掌桥专利
首页

基于端口带宽预留模式的多任务协同流量调度系统与方法

文献发布时间:2024-04-18 19:59:31


基于端口带宽预留模式的多任务协同流量调度系统与方法

技术领域

本发明属于协同流量调度技术领域,尤其涉及一种基于端口带宽预留模式的多任务协同流量调度系统与方法。

背景技术

网络业务从实时性要求上一般可以分为实时业务和非实时业务。其中,实时业务对网络质量变化感知明显,对网络的稳定性要求比较高,如实时大数据处理类业务、高性能计算类业务、大模型训练类业务以及语音视频通话类业务等。尤其在云计算平台日益普及的现状下,同一计算集群需要处理多租户、多业务的场景更是屡见不鲜。使每个计算任务拥有独立的运行环境以保障计算任务的高效执行需要的成本则愈发高昂,对于集群环境的整体运行效率也充满了挑战。

对于一个分布式计算集群而言,调度的目标不仅要提高单任务的执行效率,还要提升多任务的整体效率和带宽资源利用率。此外,分布式计算集群的管理系统还应能考虑高优先级计算任务的处理,并能在减少其它任务丢包的基础上,优先为高优先级任务提供计算和网络资源。

发明内容

本发明的目的是针对现有技术不足,提出了一种基于端口带宽预留模式的多任务协同流量调度系统与方法。

本发明是通过以下技术方案来实现的:

本发明实施例的第一方面提供了一种基于端口带宽预留模式的多任务协同流量调度方法,所述方法包括:

获取协同流量调度仿真任务参数和仿真任务服务质量要求;

当协同流量调度仿真任务启动时,根据仿真任务参数和仿真任务服务质量要求进行任务带宽资源申请,得到协同流量调度仿真任务的网络带宽资源池,完成任务级资源分配;

当协同流量调度仿真任务启动时或任一协同流量传输子任务传输完成时,根据仿真任务中各计算阶段和传输阶段的依赖关系、以及传输阶段对应的特征,申请任务中各传输子任务占该任务总资源的百分比,完成流量级资源分配;

根据任务级资源分配策略和流量级资源分配策略,同时根据任务优先级进行仿真任务的资源动态调整与调度。

本发明实施例的第二方面提供了一种基于端口带宽预留模式的多任务协同流量调度系统,所述系统包括:

分布式计算任务发包组件,用于获取协同流量调度仿真任务参数和仿真任务服务质量要求,并发出任务级资源分配申请、流量级资源分配申请;当任务网络带宽资源发生变化时,发送任务网络带宽资源变化通告报文至分布式计算任务收包组件;

分布式计算任务收包组件,用于接收分布式计算任务发包组件发送的协同流量并完成报文解析和统计;在任一协同流量传输完成后反馈协同流量传输结束确认报文至分布式计算任务发包组件的监听端口;响应于任务网络带宽资源变化通告报文,构造并发送资源变化通告确认报文至分布式计算任务发包组件的监听端口;

网络调度组件,响应于分布式计算任务发包组件发出的任务级资源分配申请以分配网络带宽资源,制定任务级资源分配策略;响应于分布式计算任务发包组件发出的流量级资源分配申请以生成各传输阶段资源占比,制定流量级资源分配策略;并根据任务优先级进行任务的资源动态调整;

SDN交换机,所述SDN交换机包括控制平面和数据平面;所述控制平面响应于网络调度组件下发的流量级资源分配策略并生成流表,同时响应网络调度组件的网络带宽资源查询请求;所述数据平面接收控制平面下发的流表,根据流表为不同任务进行带宽资源的预留并转发任务流量到下一跳SDN交换机或分布式计算任务收包组件。

本发明实施例的第三方面提供了一种电子设备,包括一个或多个处理器,用于实现上述的基于端口带宽预留模式的多任务协同流量调度方法。

本发明实施例的第四方面提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,用于实现上述的基于端口带宽预留模式的多任务协同流量调度方法。

与现有技术相比,本发明的有益效果是:

本发明在多计算任务场景下,基于分布式计算任务计算阶段和传输阶段的特征设计了多个分布式计算任务基于带宽资源预留的两级调度机制(任务级资源分配、流量级资源分配),以优化整体任务用时以及单任务用时,既提升集群网络的利用率,又能引导资源分配算法实现满足更多任务需求的目标。同时,本发明将允许高优先级的任务进行抢占式资源调用,基于资源池使用情况、各任务特征及执行状态进行资源调整,并设计了一种资源变化通告机制和通告协议以保障任务流量的丢包率。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的基于端口带宽预留模式的多任务协同流量调度系统的架构示意图;

图2是本发明实施例提供的业务报文格式和资源变化通告报文的示意图;

图3是本发明实施例提供的总带宽资源变化通告的流程示意图;

图4是本发明实施例提供的发包组件业务流程图;

图5是本发明实施例提供的网络调度组件的示意图;

图6是本发明实施例提供的一种电子设备的示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

下面结合附图,对本发明进行详细说明。在不冲突的情况下,下述的实施例及实施方式中的特征可以相互组合。

如图1所示,本发明实施例提供了一种基于端口带宽预留模式的多任务协同流量调度方法,所述方法包括:

步骤S1,获取协同流量调度仿真任务参数和仿真任务服务质量要求。

进一步地,所述协同流量调度仿真任务参数包括:分布式计算任务唯一标识job_id、分布式计算任务中各计算阶段的统计特征(包括数据处理效率ω、随机参数θ)、分布式计算任务各传输阶段的统计特征(即协同流量的大小)、分布式计算任务表征各计算阶段和传输阶段的依赖关系的有向无环图(在本实例中,该有向无环图使用邻接矩阵M

进一步地,所述仿真任务服务质量要求包括:分布式计算任务的优先级priority

步骤S2,当协同流量调度仿真任务启动时,根据仿真任务参数进行任务带宽资源申请,得到协同流量调度仿真任务的网络带宽资源池,完成任务级资源分配。

具体地,当协同流量调度仿真任务启动时,将仿真任务的唯一标识job_id、任务优先级priority

步骤S3,当协同流量调度仿真任务启动时或任一协同流量传输子任务传输完成时,根据仿真任务中各计算阶段和传输阶段的依赖关系、以及传输阶段对应的特征,申请任务中各传输子任务占该任务总资源的百分比,完成流量级资源分配。

具体地,当协同流量调度仿真任务启动时或任一协同流量传输子任务传输完成时,将仿真任务的依赖关系矩阵

步骤S4,根据任务级资源分配策略和流量级资源分配策略,同时根据任务优先级进行仿真任务的资源动态调整与调度。

所述方法还包括:

当仿真任务中的计算阶段对应的任务总带宽和/或仿真任务中的传输任务对应的带宽占比被调整时,响应于资源变化通告报文(图2),如图3所示,开启一个新的线程,如计算节点k,根据入度流量总值

需要说明的是,所述仿真任务中的计算阶段是指完成计算阶段所有的前置传输任务,即入度流量传输完成后开始执行。

本发明实施例提出了一种基于端口带宽预留模式的多任务协同流量调度系统,所述系统包括:

分布式计算任务发包组件,如图4所示,用于获取协同流量调度仿真任务参数和仿真任务服务质量要求,并发出任务级资源分配申请、流量级资源分配申请;当任务网络带宽资源发生变化时,发送任务网络带宽资源变化通告报文至分布式计算任务收包组件。

所述协同流量调度仿真任务参数包括:分布式计算任务唯一标识job_id、分布式计算任务中各计算阶段的统计特征、分布式计算任务中各传输阶段的统计特征、分布式计算任务中用于表征各计算阶段和各传输阶段的依赖关系;

所述分布式计算任务中各计算阶段的统计特征包括数据处理效率ω、随机参数θ;

所述分布式计算任务中各传输阶段的统计特征包括协同流量的大小;

所述仿真任务服务质量要求包括:分布式计算任务的优先级priority

进一步地,如图2所示,所述业务报文包括:Coflow Payload、Coflow Header、UDPHeader和IP Header,其中,Coflow Header包括:job id、pkt_flag、coflow_from、coflow_to、pkt_num、monitor_port、rate_limit、job_finish和cf_finish。

进一步地,如图2所示,所述任务网络带宽资源变化通告报文包括:CoflowPayload、Coflow Header、UDP Header和IP Header,其中,Coflow Header包括:job id、pkt_flag、adjust_ack、adjust_ack和monitor_port。

分布式计算任务收包组件,用于接收分布式计算任务发包组件发送的协同流量并完成报文的解析和统计;在任一协同流量传输完成后反馈协同流量传输结束确认报文至分布式计算任务发包组件的监听端口;响应于任务网络带宽资源变化通告报文,构造并发送资源变化通告确认报文至分布式计算任务发包组件的监听端口。

需要说明的是,当任务网络带宽资源发生变化时,分布式计算任务发包组件需要与分布式计算任务收包组件实现通告及确认,其具体过程包括:由分布式计算任务发包组件发送任务网络带宽资源变化通告报文,分布式计算任务收包组件接收任务网络带宽资源变化通告报文并回复确认报文,完成通告及确认后分布式计算任务发包组件将按照更新的任务网络带宽资源配比进行业务报文的发送。

进一步地,当任务网络带宽资源发生变化时,即当仿真任务中的计算阶段对应的任务总带宽和/或仿真任务中的传输任务对应的带宽占比被调整时,响应于资源变化通告报文,开启一个计算阶段对应的新的线程,将计算节点记为k,根据入度流量总值

网络调度组件,如图5所示,响应于分布式计算任务发包组件发出的任务级资源分配申请以分配网络带宽资源,制定任务级资源分配策略;响应于分布式计算任务发包组件发出的流量级资源分配申请以生成各传输阶段资源占比,制定流量级资源分配策略;并根据任务优先级进行任务的资源动态调整。

进一步地,当协同流量调度仿真任务启动时,将仿真任务的唯一标识job_id、任务优先级priority

进一步地,当协同流量调度仿真任务启动时或任一协同流量传输子任务传输完成时,分布式计算任务中用于表征各计算阶段和各传输阶段的依赖关系

SDN交换机,所述SDN交换机包括控制平面和数据平面;所述控制平面响应于网络调度组件下发的流量级资源分配策略并生成流表,同时响应网络调度组件的网络带宽资源查询请求;所述数据平面接收控制平面下发的流表,根据流表为不同任务进行带宽资源的预留并转发任务流量到下一跳SDN交换机或分布式计算任务收包组件。

进一步地,数据平面对接收的业务报文进行解析,根据分布式计算任务唯一标识job_id将任务的流量按照网络调度组件制定的带宽资源进行转发。

进一步地,所述网络调度组件持续监听仿真任务的请求,为各仿真任务制定任务级资源分配策略和流量级资源分配策略的两层级策略,与分布式计算任务发包组件交互用来完成仿真任务的状态获取和策略制定,与SDN交换机交互用来完成网络环境状态的获取和策略下发。

本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述数据同步的方法。

本说明书还提供了图6所示的电子设备的示意结构图。如图6所述,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述数据同步的方法。

当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field ProgrammableGateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera HardwareDescriptionLanguage)、Confluence、CUPL(Cornell University ProgrammingLanguage)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。

控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本说明书的实施例可提供为方法、系统、或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

相关技术
  • 一种红糖间歇式蒸煮用调节装置
  • 一种红糖连续煮糖装置
  • 一种用于籽类坚果食品的连续式高压蒸煮装置
  • 一种家用大米留胚切割、研磨、淘洗、蒸煮一体装置
  • 一种受热均匀的红糖糖浆节能蒸煮装置
  • 一种红糖糖浆蒸煮装置
技术分类

06120116519831