CN111814981B - 一种分布式实时规则推理调度方法 - Google Patents
一种分布式实时规则推理调度方法 Download PDFInfo
- Publication number
- CN111814981B CN111814981B CN202010581392.0A CN202010581392A CN111814981B CN 111814981 B CN111814981 B CN 111814981B CN 202010581392 A CN202010581392 A CN 202010581392A CN 111814981 B CN111814981 B CN 111814981B
- Authority
- CN
- China
- Prior art keywords
- data
- graph
- inference
- vertex
- task
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/043—Distributed expert systems; Blackboards
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种分布式实时规则推理调度方法,其步骤包括:1)建立产生式规则集所对应的规则图;2)将所述规则图转化成数据操作图;3)规则推理系统根据收到的事实对象将所述数据操作图切分为多个子图,并为每个子图生成一个推理作业;4)根据推理作业的处理时间长短设置推理作业的优先级,并在规则推理系统中创建n个调度队列,分别为每个调度队列设置不同的权值属性,根据优先级与权值的对应关系将推理作业调入对应的调度队列中;5)当不同调度队列中同时有就绪任务提交时,选择权值最大的调度队列中的推理作业,创建并执行推理任务;6)推理任务执行结束时将其对应的推理作业从所属调度队列中删除,直至所有调度队列都为空。
Description
技术领域
本发明属于规则系统和实时技术领域,具体涉及一种分布式实时规则推理调度方法。
背景技术
规则推理将领域知识表示为规则,通过规则与事实的匹配,触发并执行规则,从而进行自动决策。它已被广泛应用于医疗诊断、地质勘探、智能决策等各种专家系统中。
近几年来,随着物联网技术的普及,物联网被广泛应用于各类工业领域。此时,物联网应用通过一系列传感器采集外部环境数据,对连续不断的事件流进行监视,从中识别出需要关注的场景并进行自动决策,从而实时地执行动作对识别出的场景做出响应。因此,规则推理开始应用于生产过程监控、在线故障诊断、电网自愈控制等典型物联网应用。
物联网应用周期性地接收海量传感数据,且必须在每个周期内将接收到的数据尽可能多地处理完,否则将会由于处理延迟而导致数据积压,直至丢失,从而无法对需要关注的场景做出及时响应。为此,规则推理也需具有截止期(在此,从一个数据采集周期开始系统接收数据到这个周期的结束被定义为推理截止期,即推理截止期为一个数据采集周期)。例如,在工厂仓库的火灾监测中,当温度过高、湿度过低和烟雾浓度异常时,判断出可能发生火灾并发出报警信息。假设系统周期性地每5秒接收一批温度和烟雾浓度等传感器数据,那么相应的推理截止期即为5秒。此时,规则推理必须在其推理截止期内,尽可能多地处理系统接收的数据,触发相应规则,从而对需要关注的场景给予实时响应。
传统规则推理系统,包括CLIPS、Drools以及JESS等由于其单机的局限性,导致规则匹配效率偏低,公开号CN107145949A的专利申请对此做出改进,利用计算机多核资源的性能优势,设计了一种多核环境下的实时规则推理方法,使得规则的匹配效率得到了一定程度的提高,但由于其规则推理还是基于本地的单机系统,其性能仍然难以满足海量实时数据处理所带来的系统资源需求。
目前,学者们已经提出了一些面向流式数据的分布式实时推理方法(张琦.基于MapReduce的分布式规则匹配系统的研究与实现[D].浙江大学,2011;Yi Chen,BehzadBordbar.DRESS:A Rule Engine on Spark for Event Stream Processing.BDCAT 2016;Zhang J,Yang J,Li J.When Rule Engine Meets Big Data:Design and Implementationof a Distributed Rule Engine Using Spark,2017IEEE Third InternationalConference on Big Data Computing Service and Applications(BigDataService).IEEE,2017.),这些方法通过使用分布式计算框架,实现了规则的并行推理,公开号CN108549939A的专利申请在此基础之上提出一种负载均衡的任务分配算法,进一步地提升了规则推理的效率,但这些方法都没有考虑推理的截止期,无法在截止期前尽可能多的处理数据,从而无法保证对所需关注场景的及时响应。
发明内容
针对现有规则推理系统的不足,本发明的目的在于提供一种新的面向海量数据的分布式实时规则推理调度方法,该方法可在分布式环境下,通过分配推理作业的优先级,安排规则匹配的顺序,从而能在推理截止期内尽可能多地处理数据,进而尽可能多地触发规则。
本发明为一种分布式实时规则推理调度方法,包括以下步骤:
1.建立产生式规则集所对应的规则图。建立产生式规则集对应的规则图是指将系统中的规则集解析生成RETE网络(RETE网络的概念与原理以及建立过程具体过程可以参考Charles Forgy:Rete:A Fast Algorithm for the Many Pattern/Many Object PatternMatch Problem.In:Artificial Intelligence,vol.19,pp.17-37,1982.或公开号CN107145949 A的专利文献)。规则集中的每条规则都可以被表示成形如IF C1^C2^...^Cn THEN A的形式,其中Ci(1≤i≤n)被称为条件元素,条件元素Ci可以和事实(fact)相匹配;事实由类型名和若干属性名-属性值组成,可以被表示成(TypeName:attr1 x1,attr2 x2,...,attrmxm),其中TypeName是事实类型名称,attrj是属性名,xj是对应的属性值(常量)(1≤j≤m)。条件元素Ci(condition)可以被表示成(TypeName,constraint(attri,xi))(1≤i≤m)。constraint(attri,xi)是对类型为TypeName的事实中属性attri所对应变量xi取值的约束(简称为条件元素xi的一个约束)。条件元素Ci对应于RETE网络中的一个α节点,用来过滤不满足约束中属性值与常量进行比较的事实数据,规则集中所有条件元素Ci(1≤j≤n)对应的α节点形成了RETE网络中的α网络,通过了α节点即满足α节点对应约束的事实数据,这部分事实数据存入α内存,这个过程被称为alpha匹配(Alpha Match,AM)。RETE网络中的β网络则由若干个β节点连接而成,不同条件元素间的逻辑组合被表示为一个β节点,例如C1,C1^C2,C1^...^Cj^...^Cn(1≤j≤n),均各自对应了β网络中的一个β节点,通过了β节点即满足β节点对应约束的事实数据,这部分事实数据存入β内存,这个过程被称为部分匹配(PartialMatch,PM)。
2.将规则图转化成相应的数据操作图。数据操作图表示为一个有向无环图,称之为DAG图。图中每个顶点i表示为一个数据集,也就是事实的集合对应了步骤1中所述的α内存和β内存中的事实和部分匹配。每一个顶点所表示的数据集被划分为多个分区(数据集的每个分区被称为一个数据分区),分布式的存储于集群系统的多个物理节点之中,便于进行并行分布式计算。(为方便起见,将顶点Vx所表示的数据集记为Dx,1≤x≤n,n为DAG图中顶点的数目)。设Op为数据集操作,Op可按一定的步骤将一个或多个数据集变化为一个新的数据集(具体Op类型由应用决定,数据集的具体操作类型以及含义参见“http://spark.apache.org/docs/latest/rdd-programming-guide.html#transformations和http://spark.apache.org/docs/latest/rdd-programming-guide.html#actions”)。设DAG图中有n个顶点,V为数据操作图的顶点集合,V={V1,V2,...,Vn}。对于Vi∈V(1≤i≤n),若有且则对于在DAG图中加入边<Vs,Vi>,其中Vs是Vi的前驱顶点,Vi是Vs的后继顶点。图中没有后继的顶点称之为终止顶点,其所对应的数据集包含了满足规则所有条件元素约束的所有完全匹配(完全匹配的概念参见“http://www.clipsrules.net/?q=Documentation/”)。规则推理过程中只涉及filter操作(数据集过滤操作,过滤数据集中不符合给定条件的某个约束的数据)和cartesian操作(对两个数据集进行笛卡尔积计算,形成新的数据集,并在此数据集中过滤不符合不同条件元素间属性约束的数据)。将规则图转化成相应的数据操作图具体步骤如下:
2.1.创建一个根节点root。
2.2.依次处理RETE网络中的α节点,在数据操作图G中加入一个新顶点表示当前α节点对应的α内存中的事实。对于RETE网络中的两个α节点x,y,若两节点x,y之间存在边<x,y>,则在数据操作图中添加边<Vx,Vy>。其中Vx表示α节点x对应的α内存中所有事实形成的数据集Dx对应的顶点,Vy表示α节点y对应的α内存中的所有事实形成的数据集Dy对应的顶点,且边所对应的操作为filter操作,filter操作可过滤数据集Dx中不符合α节点y所对应约束的事实,从而得到数据集Dy。
2.3.依次处理RETE网络中的β节点,在数据操作图G中加入一个新顶点表示当前β节点对应的β内存中的部分匹配。对于RETE网络中的α节点x和β节点k若其拥有共同的后继β节点z,则在数据操作图中添加边<Vx,Vz>和边<Vk,Vz>。其中Vx表示α节点x对应的α内存中所有事实所形成的数据集Dx对应的顶点,Vk表示β节点k对应的β内存中所有部分匹配所形成的数据集Dk对应的顶点,Vz表示β节点z对应的β内存中所有部分匹配所形成的数据集Dz对应的顶点,且两条边所对应的操作为cartesian操作,cartesian操作首先对数据集Dx和数据集Dk进行笛卡尔积,再过滤这些笛卡尔积中不符合β节点z所对应的不同条件元素间约束的部分匹配,从而得到β节点z对应的数据集Dz。
3.将步骤2中获得的数据操作图切分为多个子图,为每个子图生成一个Job推理作业;当系统接收到事实(在此,事实即为输入系统的流式数据,例如,可将传感器采集数据的数据类型、当前值以及时间戳封装成事实对象并发送给规则推理系统)时,根据数据操作图生成多个推理作业(Job)。生成Job的具体步骤为:
3.1.找到数据操作图的所有终止顶点。
3.2.对于每一个终止顶点V,使用宽度优先遍历找到顶点V的所有祖先节点(若顶点V1到顶点V2存在一条路径则顶点V1是顶点Vy的祖先顶点)。为顶点V及其祖先顶点构成的子图上所有数据集的一系列数据集操作(在此,数据集操作的含义与步骤2中所述相同)生成一个Job(为方便起见,将上述子图称为Job的执行图,将终止顶点称为Job的执行终点,每张执行图表示一条规则)。
3.3.重复步骤3.1直到数据操作图中所有终止顶点被处理完,数据操作图被切分为多张执行图,每张执行图表示一个推理作业。
4.对步骤3中生成的推理作业进行优先级设置。根据推理作业的处理时间长短设置不同的优先级,同时在系统中创建n个调度队列Q={q1,q2,...,qn}(n为规则数,每条规则对应一个调度队列),并分别对每个队列设置不同的权值属性,根据优先级与权值的对应关系将作业调入队列中处理,优先级越高的作业对应放入权值越大的队列。具体的作业优先级设置步骤如下:
4.1.根据步骤3中处理完的所有Job执行图,假设规则推理系统所有执行器的执行速度一致,进行一次计算的时间为μ。取出第i个Job执行图,从其起始顶点开始宽度优先遍历:设置初始数据元组个数为0,若后继顶点由前驱顶点经过filter操作而来,则直接将初始数据元组个数累加前驱顶点中元组个数;若后继顶点由前驱顶点经过cartesian操作而来,则将数据元组个数加上其前驱顶点中元组的乘积,直到终止顶点结束,最后的元组数目总和表示执行完该Job执行图共需要计算的次数,得到最终该Job执行图处理完毕需要进行计算元组的次数Ci。
4.3.重复4.1和4.2得到所有Job优先级的值,该值越小,优先级越高。依次将优先级最高的Job调入权值最大的队列中处理,直到所有Job都调入属于自身相应权值的队列。
5.运行时,当不同队列中同时有就绪任务提交的时候,系统选择权值最大的调度队列qi中的推理作业,创建并执行推理任务。根据Job执行图中节点所代表的数据集以及这些数据集上的操作创建并执行推理任务(task)。图4是Job执行流程图,具体步骤如下:
5.1.将Job执行图的根节点设为当前顶点,依次遍历执行图中各个顶点。
5.2.对于每个顶点Vx,判断Vx的前驱顶点个数。(a):若当前顶点Vx只有一个前驱顶点Vy,则在Dy上执行filter操作得到Dx。若Dy有m个数据分区,则创建m个可并行执行的推理task。每个task在Dy的一个数据分区上执行filter操作产生Dx的一个分区数据,也就是说,生成了满足RETE网中α节点x所对应约束的所有事实形成的数据集(设在步骤2中顶点Vx根据α节点x创建)。(b):若当前顶点Vx有两个前驱顶点Vy和Vz,则意味着在Dy和Dz上执行cartesian操作得到Dx。若Dy有a个数据分区,Dy有b个数据分区,则创建a*b个可并行执行的推理task。每个task在Dy的一个数据分区以及Dz的一个数据分区上执行cartesian操作产生Dx的一个数据分区,也就是说,生成了满足RETE网中β节点x所对应的不同条件间约束的所有部分匹配形成的数据集(设在步骤2中节点Vx根据β节点x创建)。若生成的task是在Job执行终点与其前驱节点所对应数据集上的操作,则称该task为结果任务。
5.3.将生成的task发送给任务分配器,重复步骤5.2直到Job执行图中的所有节点被处理完。
5.4.当任务分配器接收到步骤5.3发来的task时,按照任务分配策略将这些task分配到系统中各个执行器执行。分布式系统中有若干个执行器,系统为每个执行器分配一个CPU核以及内存资源使其可运行推理task,且每个执行器一个时刻只能运行一个task。各个执行器将分配到本地的task按照优先级递减放入到该执行器的task就绪队列(task优先级等于其所属Job的优先级)。对于每一个执行器,当其上运行的task完成时,从其task就绪队列中选择优先级最高的task执行,执行完成后并将该task从队列中删除。当系统分配完该Job执行图表示的作业后,还有执行器资源剩余时,系统将这部分执行器资源分配给剩余队列中优先级最高的就绪Job执行图作业。
当结果任务被执行完成,则表示结果任务所属Job执行图执行完成,即完成了系统接收到的所有事实与Job执行图对应规则的匹配。Job执行图执行结束得到其执行终点所表示数据集。若数据集不为空则表示相应规则被触发,执行规则所定义的动作;若数据集为空则表示相应规则未被触发。
6.推理任务执行结束时将其对应的推理作业从所属调度队列中删除,并判断所属队列是否为空队列:若不是空队列则回到步骤5继续执行;若所有调度队列都为空则表示已完成输入事实与所有规则的匹配。当一个Job执行图执行结束,则将其从所属队列qi中删除,并判断所有队列Q是否都为空:若Q不都为空则返回到步骤5继续执行;若队列Q均为空队列则表示已完成系统接收到的所有事实与所有规则的匹配。
本发明的有益效果:
本发明提供了一种分布式实时规则调度方法,该方法可通过设置多个不同的优先级调度队列的方式使得系统有资源空闲的时候可以并行推理多个规则,实现规则推理过程的并行化;同时,根据规则处理的时间长短来设置不同的优先级,在此,推理等量的事实数据所需时间越少,则该规则的优先级越高,从而使得规则推理系统在截止期前的任一时刻,都能有最大的吞吐率,即,处理完尽可能多的事实,使得规则能够在截止期前尽可能多的完成匹配。该方法适用于各种对实时性要求较高的物联网应用,可以充分提高物联网应用的智能化程度。
附图说明
图1是本发明一个具体例子的RETE网络结构示意图。
图2是图1中具体例子对应的数据操作图的结构示意图。
图3是根据图2中数据操作图切分成的第一子图。
图4是根据图2中数据操作图切分成的第二子图。
图5是本发明中Job执行流程图。
具体实施方式
下面将结合实施例和附图,对本发明的技术方案进行清楚、完整的描述,可以理解的是,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合2条具体规则和相关数据,对本发明进行说明。
(1)图1是由上述两条规则建立的RETE网络结构。在该RETE网中,有5个类型节点A、B、C、D和E,分别判断类型为C1~C5对应的事实数据;4个α节点F、G、H和I,分别对C1、C2、C4和C5中的val值进行判断;4个β节点,J、K、L和M,其中节点K用于检查C2的val值小于5且同时大于C1中的val值加上2后的值,节点L用于检查来自节点K的数据同时满足C3的情况,节点M用于判断满足C4的val值小于10同时C5中的val值大于5的情况,如果规则对应的数据满足了各种测试相应规则被触发。
(2)图2为上述两条规则对应的数据操作图。RDDa所表示的数据集为所有C1类事实,RDDb所表示的数据集为所有C2类事实,在RDDa所表示的数据集和RDDb所表示的数据集上执行Cartesian操作得到数据集RDDab,表示满足C1和C2间属性约束的所有部分匹配。RDDc所表示的数据集为所有C3类事实,在数据集RDDab和RDDc所表示的数据集上执行Cartesian操作得到数据集RDDabc,即满足Rule1所有条件元素约束的完全匹配;RDDa所表示的数据集为所有C4类事实,RDDe所表示的数据集为所有C5类事实,在数据集RDDd和的数据集RDDe上执行Cartesian操作得到数据集RDDae,即满足Rule2所有条件元素约束的完全匹配。
(3)图3为根据(2)中得到的数据操作图创建的Jobl和Job2,其中Job1的执行图为RDDr,RDDa,RDD′a,RDDb,RDD′b,RDDab,RDDc和RDDabc及其边组成的子图,对应规则Rule1;Job2执行图为RDDr,RDDd,RDD′d,RDDe,RDD′e,RDDae及其边组成的子图,对应规则Rule2。
(4)因为有两条规则,对应建立两个权值不同的队列,权值大的队列优先级更高。当多个队列同时有任务处于就绪状态时,系统为优先级高的队列中的任务优先分配集群资源。然后是对两条规则进行优先级的确定。
设系统对一个元素进行一次计算的操作时间为μ,类型为C1~C5的事实中个包含元组的个数为a、b、c、d和e。单个RDD上进行过滤操作时,需要进行计算的次数为前驱RDD中的元素的个数;多个RDD上进行Cartesian操作时,需要进行计算的次数为前驱RDD中的元素个数的乘积。对于规则1处理完,需要处理的数据量和进行计算的次数如表1所示:
表1为规则1输入数据量以及总计算量
输入数据量e1 | 计算次数C<sub>1</sub> |
a+b+c | a+b+a*b+a*b*c |
对于规则2处理完,需要处理的数据量和进行计算的次数如表2所示:
表2为规则2输入数据量以及总计算量
输入数据量e<sub>2</sub> | 计算次数C<sub>2</sub> |
d+e | d+e+d*e |
对t1和t2进行比较,值更小的优先级更高。假设t2<t1,则将规则2对应的Job作业调入权值更大的队列中处理,将规则1对应的Job作业调入另一个权值较小的队列中处理。
(5)假设集群总共有8个执行器,若两个队列中同时任务处于就绪状态,系统先为优先级高的队列中提交的任务分配执行器处理,这里优先选择Job2执行。RDDr从数据源读入数据,根据RDD内部的数据分区个数创建多个并发推理任务。假设图3中RDDd有2个数据分区,RDDe有2个数据分区,因此为C4和C5间属性约束所对应的Cartesian操作创建4个并发推理task,每个执行器上一次只能执行一个task,因此集群多个执行器并行执行计算,4个task执行完成后生成RDDde所表示的数据集,该数据集有4个数据分区。此时,Job2执行结束将其从Job就绪队列删除。
(6)在系统上一步为Job2分配完执行器后,还有4个执行器处于空闲状态,则系统将这部分资源立即分配给Job1,否则要等待Job2的完成,直到释放执行器资源。假设RDDa,RDDb和RDDc都有2个数据分区,为C1,C2以及C3间的属性约束所对应的Cartesian操作创建8个并发推理task,8个task执行结束后生成RDDabc表示的数据集有8个分区。Job2执行结束将其从就绪队列删除,此时所有就绪队列为空队列,表示已完成输入数据与所有规则的匹配。
上述实施例仅为例示性说明本发明的原理及其功效,而非用于限制本发明的范围。任何熟于此技术的本领域技术人员均可在不违背本发明的技术原理及精神下,对实施例作修改与变化。本发明的保护范围应以权利要求书所述为准。
Claims (8)
1.一种分布式实时规则推理调度方法,其步骤包括:
1)建立产生式规则集所对应的规则图;
2)将所述规则图转化成数据操作图;
3)规则推理系统根据收到的事实对象将所述数据操作图切分为多个子图,并为每个子图生成一个推理作业;
4)根据推理作业的处理时间长短设置推理作业的优先级,并在规则推理系统中创建n个调度队列,得到一调度队列集合Q={q1,q2,…,qn};其中n为规则数,每条规则对应一个调度队列,qn为第n条规则对应的调度队列,分别为每个调度队列设置不同的权值属性,根据优先级与权值的对应关系将推理作业调入对应的调度队列中,其中优先级越高的推理作业放入权值越大的调度队列;其中对生成的推理作业进行优先级设置的方法为:41)将每一子图作为一推理作业Job执行图,设规则推理系统中执行器进行一次计算的时间为μ;对于第i个推理作业Job执行图,即推理作业Jobi执行图,从当前推理作业Jobi执行图的起始顶点开始宽度优先遍历:设置初始数据元组个数为0,若后继顶点由前驱顶点经过filter操作而来,则直接将初始数据元组个数累加前驱顶点中元组个数;若后继顶点由前驱顶点经过cartesian操作而来,则将数据元组个数加上其前驱顶点中元组的乘积,直到遍历到当前推理作业Jobi执行图的终止顶点结束,最后的元组数目总和表示执行完该推理作业Jobi执行图总共需要计算的次数Ci;42)统计该推理作业Jobi执行图中涉及的所有输入顶点的数据元组总和ei,则该推理作业Jobi执行图对应的推理作业的优先级为filter操作为数据集过滤操作,用于过滤数据集中不符合给定条件的约束的数据;cartesian操作用于对两个数据集进行笛卡尔积计算,形成新的数据集,并在此新的数据集中过滤不符合不同条件元素间属性约束的数据;
5)当不同调度队列中同时有就绪任务提交时,规则推理系统从有任务就绪的调度队列中选择权值最大的调度队列qi中的推理作业,创建并执行推理任务;
6)推理任务执行结束时将其对应的推理作业从所属调度队列中删除,并判断所属调度队列是否为空队列:若不是空队列则继续执行步骤5),直至所有调度队列都为空。
2.如权利要求1所述的方法,其特征在于,所述规则图为RETE网络;所述数据操作图为有向无环图,即DAG图;将规则图转化成相应的数据操作图的方法为:
21)创建一个根节点root;
22)依次处理RETE网络中的α节点,在数据操作图中加入一个新顶点表示当前α节点对应的α内存中的事实;
23)依次处理RETE网络中的β节点,在数据操作图中加入一个新顶点表示当前β节点对应的β内存中的部分匹配。
3.如权利要求2所述的方法,其特征在于,步骤22)中,对于RETE网络中的两个α节点x,y,若两节点x,y之间存在边<x,y>,则在数据操作图中添加边<Vx,Vy>;其中Vx表示节点x对应的α内存中所有事实形成的数据集Dx对应的顶点,Vy表示节点y对应的α内存中的所有事实形成的数据集Dy对应的顶点。
4.如权利要求3所述的方法,其特征在于,边<Vx,Vy>所对应的操作为filter操作,filter操作用于过滤数据集Dx中不符合节点y所对应约束的事实,从而得到数据集Dy。
5.如权利要求2所述的方法,其特征在于,步骤23)中,对于RETE网络中的α节点x和β节点k,若节点x和节点k拥有共同的后继β节点z,则在数据操作图中添加边<Vx,Vz>和边<Vk,Vz>;其中Vx表示节点x对应的α内存中所有事实所形成的数据集Dx对应的顶点,Vk表示节点k对应的β内存中所有部分匹配所形成的数据集Dk对应的顶点,Vz表示节点z对应的β内存中所有部分匹配所形成的数据集Dz对应的顶点,且边<Vx,Vz>和边<Vk,Vz>所对应的操作均为cartesian操作;所述cartesian操作首先对数据集Dx和数据集Dk进行笛卡尔积,再过滤所得笛卡尔积中不符合节点z所对应的不同条件元素间约束的部分匹配,从而得到节点z对应的数据集Dz。
6.如权利要求1或2所述的方法,其特征在于,将所述数据操作图切分为多个子图,并为每个子图生成一个推理作业的方法为:
31)找到数据操作图的所有终止顶点;
32)对于每一个终止顶点V,使用宽度优先遍历找到终止顶点V的所有祖先节点;将该终止顶点V及其祖先顶点构成的子图为所述数据操作图切分后的一个子图;根据子图上所有数据集的一系列数据集操作生成该子图对应的一个推理作业Job。
7.如权利要求3所述的方法,其特征在于,步骤5)中,创建并执行推理任务的方法为:
51)将所选推理作业对应的子图的根节点设为当前顶点,依次遍历执行当前子图中各个顶点;所述子图为推理作业Job执行图;
52)对于每个顶点Vx,判断Vx的前驱顶点个数:(a)若当前顶点Vx只有一个前驱顶点Vy,则在Dy上执行filter操作得到Dx;若Dy有m个数据分区,则创建m个可并行执行的推理任务task,每个task在Dy的一个数据分区上执行filter操作产生Dx的一个分区数据;
(b)若当前顶点Vx有两个前驱顶点Vy和Vz,则在Dy和Dz上执行cartesian操作得到Dx;若Dy有a个数据分区、Dz有b个数据分区,则创建a*b个可并行执行的推理任务task;每个task在Dy的一个数据分区以及Dz的一个数据分区上执行cartesian操作产生Dx的一个数据分区;若上述生成的推理任务task是在推理作业Job的执行终点与其前驱节点所对应数据集上的操作,则称该推理任务task为结果任务;
53)将生成的推理任务task发送给任务分配器;
54)任务分配器按照任务分配策略将所接收到的推理任务task分配到各执行器执行。
8.如权利要求7所述的方法,其特征在于,每个执行器配置一个CPU核以及内存资源,用于运行推理任务task,且每个执行器一个时刻只能运行一个task;所述执行器将分配到的task按照优先级递减放入到该执行器的task就绪队列;对于每一个执行器,当其上运行的task完成时,从其task就绪队列中选择优先级最高的task执行,执行完成后并将该task从队列中删除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010581392.0A CN111814981B (zh) | 2020-06-23 | 2020-06-23 | 一种分布式实时规则推理调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010581392.0A CN111814981B (zh) | 2020-06-23 | 2020-06-23 | 一种分布式实时规则推理调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111814981A CN111814981A (zh) | 2020-10-23 |
CN111814981B true CN111814981B (zh) | 2021-03-30 |
Family
ID=72845589
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010581392.0A Active CN111814981B (zh) | 2020-06-23 | 2020-06-23 | 一种分布式实时规则推理调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111814981B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112651506A (zh) * | 2020-12-24 | 2021-04-13 | 重庆大学 | 一种智能环境下基于边缘设备规则推理的数据预部署方法 |
CN116702907B (zh) * | 2023-08-02 | 2023-11-14 | 北京大学 | 一种服务器无感知的大语言模型推理系统、方法和设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7990860B2 (en) * | 2006-06-16 | 2011-08-02 | Harris Corporation | Method and system for rule-based sequencing for QoS |
JP5250481B2 (ja) * | 2009-05-21 | 2013-07-31 | 株式会社日立製作所 | ルール設計支援方法およびルール設計支援装置 |
CN108549939A (zh) * | 2018-03-09 | 2018-09-18 | 中国科学院软件研究所 | 一种面向海量流式数据的分布式实时规则推理方法和装置 |
CN110175675A (zh) * | 2019-04-22 | 2019-08-27 | 平安科技(深圳)有限公司 | 自动调整rete网络的方法、装置、计算机设备和存储介质 |
-
2020
- 2020-06-23 CN CN202010581392.0A patent/CN111814981B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111814981A (zh) | 2020-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Hu et al. | Spear: Optimized dependency-aware task scheduling with deep reinforcement learning | |
WO2021008259A1 (zh) | 用于异构架构的数据处理系统及其方法 | |
CN111814981B (zh) | 一种分布式实时规则推理调度方法 | |
Swarup et al. | Task scheduling in cloud using deep reinforcement learning | |
WO2021008260A1 (zh) | 数据执行体及其数据处理方法 | |
Fahmy | A fuzzy algorithm for scheduling non-periodic jobs on soft real-time single processor system | |
CN113742089A (zh) | 异构资源中神经网络计算任务的分配方法、装置和设备 | |
Naik et al. | Workflow scheduling optimisation for distributed environment using artificial neural networks and reinforcement learning | |
CN110838055A (zh) | 一种基于大数据的电力企业财务数据管理系统 | |
Boveiri | An incremental ant colony optimization based approach to task assignment to processors for multiprocessor scheduling | |
CN110175676B (zh) | 一种面向内存受限环境的高性能规则匹配方法 | |
CN108549939A (zh) | 一种面向海量流式数据的分布式实时规则推理方法和装置 | |
CN111061565A (zh) | 一种Spark环境下的两段式流水线任务调度方法及系统 | |
Bryant et al. | On the optimality of the earliest due date rule in stochastic scheduling and in queueing | |
Xu | A petri net-based hybrid heuristic scheduling algorithm for flexible manufacturing system | |
CN115794405A (zh) | 一种基于SSA-XGboost算法的大数据处理框架的动态资源分配方法 | |
Tang et al. | A network load perception based task scheduler for parallel distributed data processing systems | |
Qin et al. | Dependent task scheduling algorithm in distributed system | |
Salmani et al. | A fuzzy-based multi-criteria scheduler for uniform multiprocessor real-time systems | |
Aida et al. | Performance enhancement of scheduling algorithm in heterogeneous distributed computing systems | |
Witkowski | Particle swarm optimization and discrete artificial bee colony algorithms for solving production scheduling problems | |
Sabeghi et al. | A fuzzy algorithm for scheduling soft periodic tasks in preemptive real-time systems | |
Sabeghi et al. | A fuzzy algorithm for real-time scheduling of soft periodic tasks | |
Du et al. | OctopusKing: A TCT-aware task scheduling on spark platform | |
Mahato | Load balanced transaction scheduling in on-demand computing using cuckoo search-ant colony optimization |
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 |