CN104871129A - 基于软件的并行处理中的包有序调度的方法 - Google Patents
基于软件的并行处理中的包有序调度的方法 Download PDFInfo
- Publication number
- CN104871129A CN104871129A CN201380065345.9A CN201380065345A CN104871129A CN 104871129 A CN104871129 A CN 104871129A CN 201380065345 A CN201380065345 A CN 201380065345A CN 104871129 A CN104871129 A CN 104871129A
- Authority
- CN
- China
- Prior art keywords
- queue
- task
- kernel
- subset
- task queue
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
Abstract
一种在网络单元中由第一内核实现并行处理的方法,包括:若入口队列未被其它内核锁定,锁定所述入口队列;当所述入口队列被其它内核锁定时,从多个任务队列的第一默认子集中搜索未锁定的任务队列,其中,所述第一子集与所述多个任务队列的第二默认子集不同,且第二内核从所述第二默认子集开始搜索未锁定的任务队列;当任务队列的第一默认子集中的所有任务队列均被锁定,且所述入口队列也被锁定时,从所述多个任务队列的剩余队列中搜索未锁定的任务队列。
Description
相关申请案交叉申请
本申请要求于2012年12月28日递交的发明名称为“基于软件的并行处理中的包有序调度的方法(Methods for Packet Scheduling with Order inSoftware-Based Parallel Processing)”的第13/730,319号美国专利在先申请优先权,该在先申请的内容以引入的方式并入本文。
技术领域
本发明涉及通信网络,以及在特定实施例中,涉及基于软件的并行处理中的包有序调度的方法。
背景技术
多核处理器是集成了两个或多个独立运行的处理单元或“内核”的单个计算部件(例如,中央处理单元(CPU))。内核是用于读取和执行软件指令的部件,例如,添加或移动数据的指令。多核处理器可同时运行或执行多个指令(即,并行处理),因此提高了在计算机中执行应用的整体速度。通常,多核被集成到单个集成电路中。多核处理器早已普遍运用于服务器、台式计算机和笔记本电脑中,但最近才应用于路由器、交换机和负责在互联网上传输数据包的其它网络节点中。然而,路由器和类似设备的要求和目的与服务器等的要求和目的不同,这对并行处理提出了额外的挑战。
发明内容
在一个实施例中,本发明包括一种在网络单元中由第一内核实现并行处理的方法,包括:若入口队列未被其它内核锁定,锁定所述入口队列;当所述入口队列被其它内核锁定时,从多个任务队列的第一子集中搜索未锁定的任务队列,其中,所述第一子集与所述多个任务队列的第二子集不同,且第二内核从所述第二子集开始搜索未锁定的任务队列;当任务队列的第一默认子集中的所有任务队列均被锁定,且所述入口队列也被锁定时,从所述多个任务队列的剩余队列中搜索未锁定的任务队列。
在另一个实施例中,本发明包括一种并行处理的网络单元,包括:多个内核和与所述多个内核耦合的存储器,其中,所述存储器包括多个入口队列、多个任务队列,以及顺序队列,其中:所有内核均可访问任意入口队列、任务队列以及顺序队列;通过配置内核使得:当一个内核或内核子集锁定所述入口队列时,其它内核搜索未锁定的任务队列,其中,每个内核与任务队列的子集关联,并从所述子集开始搜索未锁定的任务队列,而且针对至少两个内核的子集是不同的。
在另一个实施例中,本发明包括一种网络单元中的可由多核内核执行的计算机程序产品,所述计算机程序产品包括存储在非瞬时性计算机可读存储介质中的计算机可执行指令,所述计算机可执行指令由所述内核执行时,使得所述网络单元进行如下操作:若入口队列未被其它内核锁定,第一内核锁定所述入口队列;当所述入口队列被其它内核锁定时,其它可用的第一内核从多个任务队列的第一默认子集中搜索未锁定的任务队列,其中,所述第一子集与所述多个任务队列的第二默认子集不同,且第二内核从所述第二默认子集开始搜索未锁定的任务队列;当任务队列的第一默认子集中的所有任务队列均被锁定,且所述入口队列也被锁定时,所述第一内核从所述多个任务队列的剩余队列中搜索未锁定的任务队列。
以下结合附图和权利要求对以上以及其他特征做更清晰明了的详细描述。
附图说明
为了更透彻地理解本发明,现参阅结合附图和具体实施方式而描述的以下简要说明,其中的相同参考标号表示相同部分。
图1为网络单元的公开的实施例示意图,所述网络单元可以是通过网络传送和处理数据的任何设备;
图2为公开的实施例提供的在多核处理器中进行并行处理的系统示意图;
图3A和3B示出了公开的实施例提供的在多核处理器中进行并行处理的方法流程图;
图4示出了适合实现此处公开的部件的一个或多个实施例的典型和通用的网络部件。
具体实施方式
首先应理解,尽管下文提供一项或多项实施例的说明性实施方案,但所公开的系统和/或方法可使用任何数目的技术来实施,无论该技术是当前已知还是存在的。本发明决不应限于下文所说明的说明性实施方案、附图和技术,包括本文所说明并描述的示例性设计和实施方案,而是可在所附权利要求书的范围以及其等效物的完整范围内修改。
对于现在的CPU,一个CPU中可有2至32个内核。然而,产业继续推进实现在一个CPU上配有更多内核。随着多核中央处理单元(CPUs)在产业中的应用,并行处理普遍存在于服务器/计算市场中,且在实现包调度和处理的路由器/交换机中也越来越普遍。然而,由于可能存在大量的内存共享和缓存线问题,现有的包调度器要么使用为少量内核(其性能有限)设计的集中式模型,要么依赖硬件。很多现有的并行处理方法关注集中式模型或分布式模型。通常,分布式模型可随处理单元(例如,CPU/内核)的数量伸缩。然而,需为包和事务处理等任务保持顺序。根据阿姆达尔定律,在并行处理中实施任务执行的顺序可能具有很大的挑战性,尤其是在分布式模型中。大多数(若非所有)已有的方案会导致序列化执行,且可能导致性能差。
公开的方法、装置和系统是当保持任务顺序和提供较佳的性能(例如,15兆包/秒(Mpps))时,将任务基本上均等地分配给处理单元。为了避免内核之间对资源的竞争,并在实质上最大化数据处理系统中所有内核的利用率,公开的系统提供了指示处理器如何选择待执行的功能的规则。所有内核都可以锁定并轮询来自入口队列的任务,但在给定的时间点只有一个内核可锁定入口队列。当入口队列被一个内核锁定时,其它内核可转向对多个任务队列中的一个任务队列进行锁定和轮询。任意内核可锁定和轮询任意任务队列。然而,可为每个内核分配任务队列的一个不同子集,以开始搜索未锁定的任务队列。这可能会减少内核之间的竞争。尽管可能仍会发生竞争,但与其它方法相比,内核之间的竞争率会低得多且是可控制的。如果内核的指定任务队列子集中的所有任务队列被其它内核锁定,则内核可试图从剩下的任务队列寻找到未锁定的任务队列,因此保证了内核不会空闲,且本质上对处理资源进行了最优化。如果所有的任务队列均被锁定(即使有可能,这也很少发生),内核可再次重复检查相同的入口队列/任务队列。
图1为网络单元100的实施例示意图,所述网络单元100可以是通过网络传送和处理数据的任何设备。所述网络单元100可包括与接收器(Rx)112耦合的一个或多个入端口或单元110,其中,所述接收器112用于从其它网络部件接收信号和帧/数据。所述网络单元100可包括逻辑单元120,用于确定向哪些网络部件发送数据。可以使用硬件、软件或二者结合实现所述逻辑单元120。所述逻辑单元120可包括多个中央处理单元(CPUs)或内核122(此处也可称为“处理器”)。所述多个内核122可包括多个单独的芯片,或者可包括配有多个内核的单个芯片。所述逻辑单元120还可包括包调度器124、入口队列126、任务队列127和顺序队列128。可以使用硬件、软件或二者结合实现所述包调度器124。为了减少所述内核122之间的竞争,可动态改变所述包调度器124,以改变所述内核122访问所述入口队列126、所述任务队列127和所述顺序队列128的方式。当两个或多个内核124试图锁定/更新同一个数据结构时,内核122之间会出现竞争。内核122之间的竞争可能大幅降低所述网络单元100的性能。所述入口队列126可包括多个入口包。所述任务队列127可包括多个任务队列,其中,每个任务队列与0到多个不同任务对应。所述顺序队列128可包括任务,其中所述任务可按照其在所述顺序队列128中的出现顺序进行处理。在存储器或数据存储器中,每个所述入口队列126、每个所述任务队列127以及顺序队列128可包括先进先出(FIFO)的数据结构。所述网络单元100还可包括与发射器(Tx)132耦合的一个或多个出端口或单元130,其中,所述发射器132用于向其它网络部件传输信号、数据包以及帧/数据。所述网络单元100的部件可按照图1所示进行部署,或者可根据其它实施例进行配置。
所述包调度器124可向内核124提供包,以供解析、查看、特性处理以及发送至出口路径。所述包调度器124可向内核122提供预处理的包。在一个实施例中,当内核122可用时,包调度器可向内核122提供包。所述包调度器124可由一个或所有可用的内核122组成,且可包括可由一个或多个可用的内核122执行的调度器功能。每个执行调度器功能的内核可确定是否轮询入口队列126、是否从一个任务队列127中抽出任务并将所述任务放入顺序队列128中以处理所述任务,或者实施顺序以移除在所述顺序队列128头部的任务。每个内核122可指定任务队列128的子集,从所述子集开始搜索未锁定的任务队列。如果内核122之间的竞争成为问题或超过阈值,为了减少内核122之间的竞争,可动态改变任务队列128的每个子集的成员和/或内核122的任务队列128子集分配。例如,所述阈值可为内核122处于空闲的最长时间,或者可为内核122的最大尝试次数,其中所述尝试是指内核122尝试取得任务队列128的锁,由于任务队列128被其它内核122锁定,该尝试可能失败。
图2为公开的实施例提供的使用多核处理器进行包并行处理的系统200的示意图。所述系统200可由图1中的网络单元100实现。所述系统200可包括多个入口队列202、多个任务队列204、多个内核206以及多个顺序队列208。来自同一个路径的多个包(例如,5/7元组)可按照其被接收的顺序依次到达入口队列202。多个内核206可几乎同时处理包。然而,需将这些包按照它们的接收顺序转发给出端口。内核206可将包封装到任务中,以供调度。一组内核206可轮询来自入端口的任务,并基于任务优先级、任务处理流程和/或任务顺序类型,将每个任务放入不同的任务队列204中。顺序类型可为顺序/空/等。在一个实施例中,可为顺序类型为“顺序”的任务保持任务顺序。
与很多已有的包调度系统相比,一组内核206可全部轮询任务。为了减少内核之间的竞争,在可用的内核206中,仅有一个内核206(例如,来自内核“i”的子集的内核“a”)可锁定入口队列202,并在一段时间内主动轮询任务。由于入口队列202被内核“a”206锁定,其它内核206(例如,内核“j”的子集)不能锁定所述入口队列202,这些其它内核206可转向对一个任务队列204进行操作。为了减少锁定成本(例如,300个CPU周期),内核“a”206可每次轮询n个任务。这样,每个任务的锁定成本可约为时间/n。内核“a”206可将入口队列202中轮询的每个任务推送到任务队列204中的单个TaskQ[1-m]中。
几乎在内核“a”206轮询入口队列202中的任务的同时,所有其它的内核206(例如,内核“i”至内核“j”的子集,内核“a”除外)可轮询任务队列204中任意TaskQ[1-m]中的任务,以对任务进行处理。然而,如果多个内核206几乎同时试图轮询一个TaskQ,内核206之间会产生较激烈的竞争。因此,在一个实施例中,可建立内核206和任务队列204之间的伪亲和。因此,每个内核206可基于任务队列优先级,从TaskQ的不同子集开始(例如,内核“1”从TaskQ[1-4]开始,内核“2”从TaskQ[5-8]开始等),并可锁定一个任务队列204,以便将任务移到顺序队列208。伪亲和与真亲和的区别是:在伪亲和中,每个任务队列204可有多个使用者(例如,内核1和内核2)。另外,如果任务队列204中其默认子集被锁定,内核206可移向任何其它可用的任务队列204。这样,内核之间可能仍会发生竞争,但竞争率要低得多且是可控制的。
每个内核206可将从任务队列204中检索到的任务移到顺序队列208中。顺序队列208可为可锁定的或无锁的队列。可在顺序队列208中处理顺序队列208中的每个任务(例如,包查看、修改以及转发等)。当任务在所述顺序队列208的头部时,所述任务可从所述顺序队列208中退出。
图3A和3B示出了公开的实施例提供的在多核处理器中进行并行处理的方法300的流程图。所述方法300可在网络单元100中实现。所述方法300可从块302开始,在所述块302上,多核处理器的内核可试图锁定入口队列。所述入口队列可包括包,而所述包可包括任务。在块304上,所述内核可确定所述入口队列是否被其它内核锁定。如果在块304上,所述队列未被其它内核锁定,则所述方法300转到块306,在所述块306上,所述内核可获取所述入口队列的锁。在块308上,内核可封装任务,并基于所述任务的优先级、处理流程和/或顺序类型,将所述任务从所述入口队列移到任务队列。在一个实施例中,所述内核每次可轮询指定数量(n)的任务。每个任务的锁定成本可为入口队列被锁定的时间除以任务的数量n(例如,时间/n)。将任务的数量限制为指定的数量可减少锁定成本(例如,时间)。所述方法300可转到块310,在所述块310上,所述内核可释放所述入口队列的锁,之后,可结束所述方法300。
如果在块304上,入口队列被其它内核锁定,则所述方法300可转到块312,在所述块312上,所述内核可试图锁定指定的任务队列子集中的任务队列。在块314上,所述内核可确定所述任务队列子集中是否有任务队列被锁定。如果在块314上,所述任务队列子集中的任务队列均未被锁定,则所述方法300可转到块316,在所述块316上,所述内核可获取在所述任务队列子集中遇到的第一个未锁定任务队列的锁。在块318上,所述内核可将来自所述任务队列的任务放入顺序队列中,然后释放所述任务队列的锁,之后,可结束所述方法300。
如果在块314上,所述任务队列子集中的所有任务队列均被锁定,则所述方法300可转到块320,在所述块320上,所述内核可在任务队列的剩余队列中寻找第一个未锁定任务队列的锁。在块322上,所述内核可确定所有剩下的任务队列是否均被锁定。如果在块322上,所述内核确定所有剩下的任务队列均被锁定,则所述方法300转到块302上。
如果在块322上,并非所有剩下的任务队列均被锁定,则所述方法300可转到块324,在所述块324上,所述内核可获取所述内核在剩下的任务队列中遇到的第一个未锁定任务队列的锁。所述方法300可转到块318,在所述块318上,所述内核可将来自任务队列的任务放入顺序队列中,之后,可结束所述方法300。
尽管主要结合交换机、路由器以及通过网络传输包的其它设备进行了描述,但本发明公开的方法、系统和装置不仅仅限于此类设备,也可在集成了多个处理器和/或一个多核处理器的任何设备中实现。例如,图4示出了适合实现此处公开的部件的一个或多个实施例的典型和通用的网络部件400。所述网络部件400包括处理器402(其可称为CPU),所述处理器402与存储设备通信,包括辅助存储器404、只读存储器(ROM)406、随机存取存储器(RAM)408、输入/输出(I/O)设备410和网络连通设备412。所述处理器402可包括多个处理器和/或一个多核处理器,以使所述处理器402可进行并行计算。所述网络部件400可包括入口队列、任务队列和顺序队列,例如,图1中的入口队列126、任务队列127和顺序队列128。入口队列可包括包或可传送或提供给所述处理器处理的任何其它数据。待处理的数据不仅仅限于数据包。
辅助存储器404通常包括一个或多个磁盘驱动器或磁带机,用于数据的非易失性存储,并且在RAM 408不能容纳所有工作数据时用作溢出数据存储设备。当选择执行载入RAM 408的程序时,所述辅助存储器404可用于存储这些程序。所述ROM 406可用于存储在程序执行期间读取的指令或数据。ROM 406为一种非易失性存储设备,与拥有更大存储能力的辅助存储器404相比,它通常具有很小的存储能力。所述RAM 408可用于储存易失性数据或存储指令。访问ROM 406和RAM 408通常要比访问辅助存储器404的速度更快。
本发明公开了至少一项实施例,而且所属领域的一般技术人员对实施例和/或实施例的特征做出的变化、组合和/或修改均在本发明的范围内。通过组合、整合和/或忽略各项实施例的特征而得到的替代性实施例也在本发明的范围内。在明确说明数字范围或限制的情况下,此类表达范围或限制应被理解成包括在明确说明的范围或限制内具有相同大小的迭代范围或限制(例如,从约为1到约为10包括2、3、4等;大于0.10包括0.11、0.12、0.13等)。例如,只要公开具有下限Rl和上限Ru的数字范围,则明确公开了此范围内的任何数字。具体而言,在所述范围内的以下数字是明确公开的:R=R1+k*(Ru–R1),其中k为从1%到100%范围内以1%递增的变量,即,k为1%、2%、3%、4%、7%……70%、71%、72%……97%、96%、97%、98%、99%或100%。此外,由上文所定义的两个数字R定义的任何数字范围也是明确公开的。除非另有说明,否则使用术语约是指随后数字的±10%。相对于权利要求的任一元素使用术语“选择性地”意味着所述元素是需要的,或者所述元素是不需要的,两种替代方案均在所述权利要求的范围内。使用如“包括”、“包含”和“具有”等较广术语应被理解为提供对如由“……组成”、“基本上由……组成”以及“大体上由……组成等较窄术语的支持。”因此,保护范围不受上文所陈述的说明限制,而是由所附权利要求书界定,所述范围包含所附权利要求书的标的物的所有等效物。每一和每条权利要求作为进一步揭示内容并入说明书中,且所附权利要求书是本发明的实施例。对所述揭示内容中的参考进行的论述并非承认其为现有技术,尤其是具有在本申请案的在先申请优先权日期之后的公开日期的任何参考。本发明中所引用的所有专利、专利申请案和公开案的揭示内容特此以引用的方式并入本文本中,其提供补充本发明的示例性、程序性或其它细节。
虽然本发明中已提供若干实施例,但应理解,在不脱离本发明的精神或范围的情况下,本发明所公开的系统和方法可以以许多其他特定形式来体现。本发明的实例应被视为说明性而非限制性的,且本发明并不限于本文本所给出的细节。例如,各种元件或部件可以在另一系统中组合或合并,或者某些特征可以省略或不实施。
此外,在不脱离本发明的范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可以与其它系统、模块、技术或方法进行组合或合并。展示或论述为彼此耦合或直接耦合或通信的其他项也可以采用电方式、机械方式或其它方式通过某一接口、设备或中间部件间接地耦合或通信。其他变化、替代和改变的示例可以由本领域的技术人员在不脱离本文精神和所公开的范围的情况下确定。
Claims (20)
1.一种在网络单元中实现并行处理的方法,其特征在于,包括:
若入口队列未被其它内核锁定,第一内核锁定所述入口队列;
当所述入口队列被其它内核锁定时,所述第一内核从多个任务队列的第一子集中搜索未锁定的任务队列,其中,所述第一子集与所述多个任务队列的第二子集不同,且第二内核从所述第二子集开始搜索未锁定的任务队列;
当任务队列的第一默认子集中的所有任务队列均被锁定,且所述入口队列也被锁定时,所述第一内核从所述多个任务队列的剩余队列中搜索未锁定的任务队列。
2.根据权利要求1所述的方法,其特征在于,还包括:将包封装到任务中以供调度。
3.根据权利要求1所述的方法,其特征在于,还包括;基于优先级、处理流程和顺序类型中的至少一个,将来自所述入口队列的任务推送到所述多个任务队列中的一个任务队列。
4.根据权利要求1所述的方法,其特征在于,还包括:当所述入口队列被所述第一内核锁定时,轮询来自所述入口队列的预定数量的任务。
5.根据权利要求1所述的方法,其特征在于,还包括:锁定所述多个任务队列中的一个任务队列,且将来自所述多个任务队列的一个任务队列中的任务放入顺序队列中以待处理。
6.根据权利要求1所述的方法,其特征在于,还包括:当内核之间的竞争超过阈值时,动态改变作为所述多个任务队列中的第一子集的成员的任务队列。
7.根据权利要求1所述的方法,其特征在于,顺序队列是无锁的。
8.根据权利要求1所述的方法,其特征在于,顺序队列是可锁定的。
9.一种并行处理的网络单元,其特征在于,包括:
多个内核;
与所述多个内核耦合的存储器,其中,所述存储器包括多个入口队列、多个任务队列,以及顺序队列,其中:
所有内核均可访问任意入口队列、任务队列以及顺序队列;
通过配置内核使得:当一个内核锁定所述入口队列时,其它内核搜索未锁定的任务队列,其中:
每个内核与任务队列的子集关联,并从所述子集开始搜索未锁定的任务队列;
针对至少两个内核的子集是不同的。
10.根据权利要求9所述的网络单元,其特征在于,一个内核用于在其锁定所述入口队列的时间周期内仅轮询所述入口队列中的任务的子集。
11.根据权利要求9所述的网络单元,其特征在于,一个内核用于:当其锁定所述入口队列时,基于任务的优先级、处理流程和顺序类型中的一个,将从所述入口队列获得的任务放入一个任务队列中。
12.根据权利要求9所述的网络单元,其特征在于,所述多个内核用于:当内核之间的竞争超过阈值时,动态改变子集。
13.一种网络单元中的可由多核处理器执行的计算机程序产品,所述计算机程序产品包括存储在非瞬时性计算机可读存储介质中的计算机可执行指令,所述计算机可执行指令由所述多核处理器执行时,使得所述网络单元进行如下操作:
若入口队列未被其它内核锁定,第一内核锁定所述入口队列;
当所述入口队列被其它内核锁定时,所述第一内核从多个任务队列的第一默认子集中搜索未锁定的任务队列,其中,所述第一子集与所述多个任务队列的第二默认子集不同,且第二内核从所述第二默认子集开始搜索未锁定的任务队列;
当任务队列的第一默认子集中的所有任务队列均被锁定,且所述入口队列也被锁定时,所述第一内核从所述多个任务队列的剩余队列中搜索未锁定的任务队列。
14.根据权利要求13所述的计算机程序产品,其特征在于,还包括指令,所述指令使得所述第一内核将包封装到任务中以供调度。
15.根据权利要求13所述的计算机程序产品,其特征在于,还包括指令,所述指令使得所述第一内核基于优先级、处理流程和顺序类型中的至少一个,将来自所述入口队列的任务放入所述多个任务队列中的一个任务队列中。
16.根据权利要求13所述的计算机程序产品,其特征在于,还包括指令,所述指令使得:当所述入口队列被所述第一内核锁定时,所述第一内核轮询来自所述入口队列的预定数量的任务。
17.根据权利要求13所述的计算机程序产品,其特征在于,还包括指令,所述指令使得所述第一内核锁定所述多个任务队列中的一个任务队列,且将来自所述多个任务队列的一个任务队列中的任务放入顺序队列中以待处理。
18.根据权利要求13所述的计算机程序产品,其特征在于,还包括指令,所述指令使得所述网络单元在内核之间的竞争超过阈值时,动态改变任务队列,其中,所述任务队列为所述多个任务队列中的第一子集的成员。
19.根据权利要求13所述的计算机程序产品,其特征在于,顺序队列是无锁的。
20.根据权利要求13所述的计算机程序产品,其特征在于,顺序队列是可锁定的。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/730,319 US9274826B2 (en) | 2012-12-28 | 2012-12-28 | Methods for task scheduling through locking and unlocking an ingress queue and a task queue |
US13/730,319 | 2012-12-28 | ||
PCT/CN2013/090709 WO2014101834A1 (en) | 2012-12-28 | 2013-12-27 | Methods for packet scheduling with order in software-based parallel processing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104871129A true CN104871129A (zh) | 2015-08-26 |
CN104871129B CN104871129B (zh) | 2017-11-24 |
Family
ID=51018910
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380065345.9A Active CN104871129B (zh) | 2012-12-28 | 2013-12-27 | 基于软件的并行处理中的包有序调度的方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9274826B2 (zh) |
EP (1) | EP2926250B1 (zh) |
CN (1) | CN104871129B (zh) |
WO (1) | WO2014101834A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106020979A (zh) * | 2016-05-17 | 2016-10-12 | 青岛海信移动通信技术股份有限公司 | 进程的调度方法及装置 |
CN109582456A (zh) * | 2017-09-28 | 2019-04-05 | 北京国双科技有限公司 | 报表执行方法和装置 |
CN110928711A (zh) * | 2019-11-26 | 2020-03-27 | 多点(深圳)数字科技有限公司 | 任务处理方法、装置、系统、服务器及存储介质 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9921879B2 (en) * | 2014-05-13 | 2018-03-20 | International Business Machines Corporation | Using queues corresponding to attribute values associated with units of work to select the units of work to process |
US9575800B2 (en) * | 2014-05-13 | 2017-02-21 | International Business Machines Corporation | Using queues corresponding to attribute values and priorities associated with units of work and sub-units of the unit of work to select the units of work and their sub-units to process |
US9563366B2 (en) | 2014-05-13 | 2017-02-07 | International Business Machines Corporation | Using queues corresponding to attribute values associated with units of work and sub-units of the unit of work to select the units of work and their sub-units to process |
CN104506935A (zh) * | 2014-12-31 | 2015-04-08 | 成都东方盛行电子有限责任公司 | 一种基于分片技术的音视频文件合成方法 |
CN106557366B (zh) * | 2015-09-28 | 2020-09-08 | 阿里巴巴集团控股有限公司 | 任务分发方法、装置及系统 |
CN108694084A (zh) * | 2017-04-11 | 2018-10-23 | 北京京东尚科信息技术有限公司 | 用于调用数据的方法和装置 |
CN107395872B (zh) * | 2017-06-30 | 2020-06-16 | Oppo广东移动通信有限公司 | 应用启动方法、装置、存储介质及电子设备 |
US10608961B2 (en) | 2018-05-08 | 2020-03-31 | Salesforce.Com, Inc. | Techniques for handling message queues |
CN109756565A (zh) * | 2018-12-26 | 2019-05-14 | 成都科来软件有限公司 | 一种基于统计表的多任务数据推送方法 |
CN113535361A (zh) * | 2021-07-23 | 2021-10-22 | 百果园技术(新加坡)有限公司 | 任务调度方法、装置、设备及存储介质 |
CN116542413B (zh) * | 2023-04-28 | 2024-04-16 | 北京大数据先进技术研究院 | 基于时间坐标的任务处理方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020133593A1 (en) * | 2000-03-03 | 2002-09-19 | Johnson Scott C. | Systems and methods for the deterministic management of information |
CN101069170A (zh) * | 2004-09-10 | 2007-11-07 | 卡威姆网络有限公司 | 数据包队列、调度和排序 |
CN101616083A (zh) * | 2009-08-06 | 2009-12-30 | 杭州华三通信技术有限公司 | 一种报文转发方法和装置 |
CN102685001A (zh) * | 2012-04-26 | 2012-09-19 | 汉柏科技有限公司 | 网络设备任务的高效处理方法及系统 |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6728959B1 (en) * | 1995-08-08 | 2004-04-27 | Novell, Inc. | Method and apparatus for strong affinity multiprocessor scheduling |
US5970049A (en) | 1997-03-27 | 1999-10-19 | Lucent Technologies Inc. | Apparatus and method for template-based scheduling processes using regularity measures |
US6016305A (en) | 1997-03-27 | 2000-01-18 | Lucent Technologies Inc. | Apparatus and method for template-based scheduling processes using regularity measure lower bounds |
US6981260B2 (en) | 2000-05-25 | 2005-12-27 | International Business Machines Corporation | Apparatus for minimizing lock contention in a multiple processor system with multiple run queues when determining the threads priorities |
US6665495B1 (en) | 2000-10-27 | 2003-12-16 | Yotta Networks, Inc. | Non-blocking, scalable optical router architecture and method for routing optical traffic |
US7042906B2 (en) | 2001-03-28 | 2006-05-09 | Brilliant Optical Networks | Method to control a special class of OBS/LOBS and other burst switched network devices |
US7626987B2 (en) | 2003-11-12 | 2009-12-01 | Cisco Technology, Inc. | Using ordered locking mechanisms to maintain sequences of items such as packets |
US7664110B1 (en) | 2004-02-07 | 2010-02-16 | Habanero Holdings, Inc. | Input/output controller for coupling the processor-memory complex to the fabric in fabric-backplane interprise servers |
US7990994B1 (en) | 2004-02-13 | 2011-08-02 | Habanero Holdings, Inc. | Storage gateway provisioning and configuring |
US7561571B1 (en) | 2004-02-13 | 2009-07-14 | Habanero Holdings, Inc. | Fabric address and sub-address resolution in fabric-backplane enterprise servers |
US7873693B1 (en) | 2004-02-13 | 2011-01-18 | Habanero Holdings, Inc. | Multi-chassis fabric-backplane enterprise servers |
US8145785B1 (en) | 2004-02-13 | 2012-03-27 | Habanero Holdings, Inc. | Unused resource recognition in real time for provisioning and management of fabric-backplane enterprise servers |
US7685281B1 (en) | 2004-02-13 | 2010-03-23 | Habanero Holdings, Inc. | Programmatic instantiation, provisioning and management of fabric-backplane enterprise servers |
US7843907B1 (en) | 2004-02-13 | 2010-11-30 | Habanero Holdings, Inc. | Storage gateway target for fabric-backplane enterprise servers |
US7860961B1 (en) | 2004-02-13 | 2010-12-28 | Habanero Holdings, Inc. | Real time notice of new resources for provisioning and management of fabric-backplane enterprise servers |
US7860097B1 (en) | 2004-02-13 | 2010-12-28 | Habanero Holdings, Inc. | Fabric-backplane enterprise servers with VNICs and VLANs |
US7843906B1 (en) | 2004-02-13 | 2010-11-30 | Habanero Holdings, Inc. | Storage gateway initiator for fabric-backplane enterprise servers |
US7953903B1 (en) | 2004-02-13 | 2011-05-31 | Habanero Holdings, Inc. | Real time detection of changed resources for provisioning and management of fabric-backplane enterprise servers |
US7895431B2 (en) * | 2004-09-10 | 2011-02-22 | Cavium Networks, Inc. | Packet queuing, scheduling and ordering |
JP4483535B2 (ja) | 2004-11-05 | 2010-06-16 | 株式会社日立製作所 | ネットワーク装置 |
US8194690B1 (en) | 2006-05-24 | 2012-06-05 | Tilera Corporation | Packet processing in a parallel processing environment |
US7990974B1 (en) * | 2008-09-29 | 2011-08-02 | Sonicwall, Inc. | Packet processing on a multi-core processor |
JP5176830B2 (ja) * | 2008-09-29 | 2013-04-03 | 沖電気工業株式会社 | 同期符号分割多重通信方法及び同期符号分割多重通信システム |
CN101436989B (zh) | 2008-12-26 | 2010-10-27 | 福建星网锐捷网络有限公司 | 一种转发报文的方法及装置 |
US8943507B2 (en) * | 2009-04-27 | 2015-01-27 | Deepak Mital | Packet assembly module for multi-core, multi-thread network processors |
US9081742B2 (en) | 2009-04-27 | 2015-07-14 | Intel Corporation | Network communications processor architecture |
US8949501B1 (en) * | 2010-10-31 | 2015-02-03 | Integrated Device Technology, Inc. | Method and apparatus for a configurable packet routing, buffering and scheduling scheme to optimize throughput with deadlock prevention in SRIO-to-PCIe bridges |
CN102685002A (zh) | 2012-04-26 | 2012-09-19 | 汉柏科技有限公司 | 多核多线程的报文转发方法及系统 |
US9329912B2 (en) * | 2012-07-13 | 2016-05-03 | Freescale Semiconductor, Inc. | Core-affine processing on symmetric multiprocessing systems |
US8693490B1 (en) * | 2012-12-20 | 2014-04-08 | Unbound Networks, Inc. | Parallel processing using multi-core processor |
-
2012
- 2012-12-28 US US13/730,319 patent/US9274826B2/en not_active Expired - Fee Related
-
2013
- 2013-12-27 CN CN201380065345.9A patent/CN104871129B/zh active Active
- 2013-12-27 WO PCT/CN2013/090709 patent/WO2014101834A1/en active Application Filing
- 2013-12-27 EP EP13869382.5A patent/EP2926250B1/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020133593A1 (en) * | 2000-03-03 | 2002-09-19 | Johnson Scott C. | Systems and methods for the deterministic management of information |
CN101069170A (zh) * | 2004-09-10 | 2007-11-07 | 卡威姆网络有限公司 | 数据包队列、调度和排序 |
CN101616083A (zh) * | 2009-08-06 | 2009-12-30 | 杭州华三通信技术有限公司 | 一种报文转发方法和装置 |
CN102685001A (zh) * | 2012-04-26 | 2012-09-19 | 汉柏科技有限公司 | 网络设备任务的高效处理方法及系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106020979A (zh) * | 2016-05-17 | 2016-10-12 | 青岛海信移动通信技术股份有限公司 | 进程的调度方法及装置 |
CN106020979B (zh) * | 2016-05-17 | 2019-05-31 | 青岛海信移动通信技术股份有限公司 | 进程的调度方法及装置 |
CN109582456A (zh) * | 2017-09-28 | 2019-04-05 | 北京国双科技有限公司 | 报表执行方法和装置 |
CN110928711A (zh) * | 2019-11-26 | 2020-03-27 | 多点(深圳)数字科技有限公司 | 任务处理方法、装置、系统、服务器及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104871129B (zh) | 2017-11-24 |
EP2926250A1 (en) | 2015-10-07 |
US9274826B2 (en) | 2016-03-01 |
EP2926250A4 (en) | 2015-12-16 |
WO2014101834A1 (en) | 2014-07-03 |
US20140189695A1 (en) | 2014-07-03 |
EP2926250B1 (en) | 2017-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104871129A (zh) | 基于软件的并行处理中的包有序调度的方法 | |
US10412021B2 (en) | Optimizing placement of virtual machines | |
CN103914399B (zh) | 一种并行计算系统中的磁盘缓存方法及装置 | |
US8381230B2 (en) | Message passing with queues and channels | |
CN107360206A (zh) | 一种区块链共识方法、设备及系统 | |
CN105224692A (zh) | 支持多核处理器的sdn多级流表并行查找的系统及方法 | |
CN107493314A (zh) | 基于多租户的服务提供系统及方法 | |
CN107454019A (zh) | 软件定义网络动态带宽分配方法、装置、设备及存储介质 | |
CN101577705A (zh) | 一种多核并行的网络业务流负载均衡方法及其系统 | |
CN104361296B (zh) | 一种并行的大容量访问控制列表的查找方法 | |
CN106533826A (zh) | 网络状态的探测方法及系统 | |
US10601726B2 (en) | Systems and methods for allocating shared resources in multi-tenant environments | |
CN110324204A (zh) | 一种在fpga中实现的高速正则表达式匹配引擎及方法 | |
WO2015088557A1 (en) | Data stream processing based on a boundary parameter | |
US8543722B2 (en) | Message passing with queues and channels | |
CN105049372A (zh) | 一种扩展消息中间件吞吐量的方法及系统 | |
US20090300333A1 (en) | Hardware support for work queue management | |
CN103530130A (zh) | 实现多入多出队列的方法和设备 | |
CN106815128A (zh) | 日志输出方法及装置、电子设备 | |
CN109508243A (zh) | 业务请求处理方法、装置、计算机设备和存储介质 | |
Pentelas et al. | Network service embedding with multiple resource dimensions | |
CN111737274B (zh) | 交易数据的处理方法、装置和服务器 | |
Anselmi et al. | Service consolidation with end-to-end response time constraints | |
WO2022225669A1 (en) | Dynamic relocation of pods to optimize inter-pod networking | |
US20220374283A1 (en) | System For Optimizing Resources For Cloud-Based Scalable Distributed Search Data Analytics Service |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |