CN111538714A - 一种指令执行方法、装置、电子设备和存储介质 - Google Patents
一种指令执行方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN111538714A CN111538714A CN202010334625.7A CN202010334625A CN111538714A CN 111538714 A CN111538714 A CN 111538714A CN 202010334625 A CN202010334625 A CN 202010334625A CN 111538714 A CN111538714 A CN 111538714A
- Authority
- CN
- China
- Prior art keywords
- instruction set
- vertex
- execution
- executed
- instruction
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明实施例提供了一种指令执行方法、装置、电子设备和存储介质,在执行指令的过程中,按照指令集之间的关联关系执行,以使得并行的指令能够并行执行,提高指令的执行效率。同时,每次执行某一第二指令集之前,需要保证在该第二指令集之前,且与该第二指令集关联的第一指令集均执行结束,避免未执行结束的第一指令集影响该第二指令集的执行结果,保证指令执行的正确性。
Description
技术领域
本发明涉计算机技术领域,尤其是涉及一种指令执行方法、装置、电子设备和存储介质。
背景技术
随着移动互联网技术的快速发展,使得用户产生和应用的数据呈现飞速增长的趋势,海量数据的出现和数据结构的改变,给电信行业运营商管理和分析处理数据带来了巨大的挑战。在超大规模数据处理的场景下,传统基于关系型数据库的处理方法已经无法有效地对日益增长的新型的业务数据进行存储和处理。
为了解决针对超大规模数据的计算处理问题,现有技术提供了云计算大数据平台这一解决方案。大规模数据并行处理技术是云计算中的关键技术。当前最流行的大规模处理的编程模型是MapReduce编程模型。Hadoop是MapReduce编程模型开源实现最广泛的分布式计算平台。Hadoop可以使用户在不了解底层细节的情况下开发MapReduce程序,并在价格低廉的商用集群上进行运算和存储,具有可扩展、高容错、经济、可靠、高效等优点。
Hadoop的核心组件由两个部分组成:分布式文件系统(HDFS)和分布式计算模型MapReduce。HDFS是Hadoop的旗舰级文件系统,它以流式数据访问模式来存储超大文件,运行于商用硬件集群上;MapReduce是一个编程模型,用以进行稳定、高效、超大数据量的分析计算。
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据表,并提供完整的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行。具体的,MapReduce框架是主从结构的。MapReduce运行时,主机(master)启动一个JobTracker(任务调度)进程,用于任务调度。从机(slave)启动数个JobTracker进程,作为运算实体。JobTracker的主要职责就是启动、跟踪和调度各个从机的任务执行,JobTracker中存储着任务状态信息。可见,现有的Hive执行语句方式有都只能一步步顺序执行,无法进行并行执行提高执行效率。
为了提高执行效率,虽然也存在实现指令并行执行的方法,但是现有的并行执行方法无法保证上一层的所有关联指令均执行完毕后再执行当前指令,导致指令的执行出错率较高。
发明内容
本发明实施例提供一种指令执行方法、装置、电子设备和存储介质,用以解决现有的并行执行方法无法保证上一层的所有关联指令均执行完毕后再执行当前指令,导致指令的执行出错率较高的问题。
针对以上技术问题,第一方面,本发明实施例提供一种指令执行方法,包括:
根据各指令集之间的关联关系,获取与当前正在执行或执行结束的各第一指令集关联,且还未执行的至少一个第二指令集;
对每一第二指令集,将各第一指令集中与所述第二指令集关联的第一指令集作为目标指令集,在目标指令集执行结束后,执行所述第二指令集。
可选地,所述根据各指令集之间的关联关系,获取与当前正在执行或执行结束的各第一指令集关联,且还未执行的至少一个第二指令集,包括:
根据所述关联关系生成有向图,并根据所述有向图生成表示所述关联关系的关联矩阵,其中,所述关联矩阵根据所述有向图各顶点之间的邻接关系确定;
根据所述有向图中各顶点与指令集的对应关系和所述关联矩阵,获取与当前正在执行或执行结束的各第一指令集关联,且还未执行的至少一个第二指令集。
可选地,所述根据所述有向图中各顶点与指令集的对应关系和所述关联矩阵,获取与当前正在执行或执行结束的各第一指令集关联,且还未执行的至少一个第二指令集,包括:
根据所述对应关系在所述有向图的各顶点插入指令集,得到以各指令集封装的顶点数据结构;
根据所述顶点数据结构和所述关联矩阵,获取与当前正在执行或执行结束的各第一指令集关联,且还未执行的至少一个第二指令集。
可选地,还包括:
对所述有向图中各顶点对应的指令集的执行状态进行监控,并根据各顶点对应的执行状态生成执行状态标识。
可选地,所述根据所述顶点数据结构和所述关联矩阵,获取与当前正在执行或执行结束的各第一指令集关联,且还未执行的至少一个第二指令集,包括:
根据所述有向图中各顶点对应的执行状态标识,获取当前正在执行或执行结束的第一指令集对应的第一顶点;
根据获取的执行状态标识和所述关联矩阵,获取与第一顶点邻接,且还未执行指令集的第二顶点;
根据所述顶点数据结构获取与第二顶点对应的第二指令集。
可选地,所述对每一第二指令集,将各第一指令集中与所述第二指令集关联的第一指令集作为目标指令集,在目标指令集执行结束后,执行所述第二指令集,包括:
对每一第二指令集对应的第二顶点,将各第一顶点中与所述第二顶点关联的第一顶点作为目标顶点,根据所述关联矩阵和获取的执行状态标识,判断所述目标顶点对应的第一指令集是否执行结束;
若所述目标顶点对应的第一指令集执行结束,则根据所述顶点数据结构执行与所述第二顶点对应的第二指令集。
可选地,还包括:
根据所述关联矩阵,将所述有向图的各顶点加入队列;
其中,对每一第二顶点,若所述目标顶点对应的第一指令集执行结束,则使得所述第二顶点出队。
第二方面,本发明实施例提供一种指令执行装置,包括:
获取模块,用于根据各指令集之间的关联关系,获取与当前正在执行或执行结束的各第一指令集关联,且还未执行的至少一个第二指令集;
执行模块,用于对每一第二指令集,将各第一指令集中与所述第二指令集关联的第一指令集作为目标指令集,在目标指令集执行结束后,执行所述第二指令集。
第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以上所述的指令执行方法的步骤。
第四方面,本发明实施例提供一种非暂态可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以上任一项所述的指令执行方法的步骤。
本发明的实施例提供了一种指令执行方法、装置、电子设备和存储介质,在执行指令的过程中,按照指令集之间的关联关系执行,以使得并行的指令能够并行执行,提高指令的执行效率。同时,每次执行某一第二指令集之前,需要保证在该第二指令集之前,且与该第二指令集关联的第一指令集均执行结束,避免未执行结束的第一指令集影响该第二指令集的执行结果,保证指令执行的正确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的指令执行方法的流程示意图;
图2是本发明另一实施例提供的根据各SQL语句的关联关系绘制的有向图;
图3是本发明另一实施例提供的指令执行装置的结构框图;
图4是本发明另一实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
作为对比,此处提供一种SQL语句并行执行的方法,该方法通过识别出流程控制标签的顺序标记,将所有顺序标记进行比对,得到代码段的执行顺序,对顺序标记相同的代码段进行并行执行,实现了多条SQL语句并行执行的控制过程。然而,一方面,由于需要在SQL语句前插入标签,因此需要对原始的脚本进行较大的改动。另一方面,该方法在执行某一SQL语句时,无法保证执行顺序在该SQL语句之前,且与该SQL语句关联的每一SQL均执行结束,导致无法保证该SQL具有正确的输入参数。若需保证与该SQL语句关联的每一SQL均执行结束,则需要人为参与控制,增加了执行过程的复杂性。
为了解决这一技术问题,本申请提供了一种指令执行方法,该方法适用于任一设备,例如,计算机、服务器或手机等。本申请中的指令可以是任一计算机语言编写的指令,例如,通过SQL编写的指令,或者通过Java编写的指令。因此,该方法适用于SQL语句的执行过程,也适用于任一应用程序的代码的执行过程。图1为本实施例提供的指令执行方法的流程示意图,参见图1,该方法包括:
步骤101:根据各指令集之间的关联关系,获取与当前正在执行或执行结束的各第一指令集关联,且还未执行的至少一个第二指令集。
其中,关联关系包括指令集之间的顺序执行关系和并行执行关系。
其中,指令集包括至少一条指令。例如,指令集中包括一条SQL语句或者多条SQL语句。
步骤102:用于对每一第二指令集,将各第一指令集中与所述第二指令集关联的第一指令集作为目标指令集,在目标指令集执行结束后,执行所述第二指令集。
目标指令集是各第一指令集中与所述第二指令集关联的指令集,即该第二指令集的上一级指令集。保证每一目标指令集均执行结束后,再执行该目标指令集,能够保证第二指令集执行时每一输入量的正确性,从而保证整个指令集能够正确执行,实现相应的功能。
本实施例提供了一种指令执行方法、装置、电子设备和存储介质,在执行指令的过程中,按照指令集之间的关联关系执行,以使得并行的指令能够并行执行,提高指令的执行效率。同时,每次执行某一第二指令集之前,需要保证在该第二指令集之前,且与该第二指令集关联的第一指令集均执行结束,避免未执行结束的第一指令集影响该第二指令集的执行结果,保证指令执行的正确性。
为了方便指令集执行过程中对各指令集关联关系的读取过程,本实施采用有向图生成的关联矩阵表示关联关系,使得执行指令集的过程中,能够通过关联矩阵快速读取各指令集之间的关联关系。进一步地,在上述实施例的基础上,步骤101具体包括:
根据所述关联关系生成有向图,并根据所述有向图生成表示所述关联关系的关联矩阵,其中,所述关联矩阵根据所述有向图各顶点之间的邻接关系确定;
根据所述有向图中各顶点与指令集的对应关系和所述关联矩阵,获取与当前正在执行或执行结束的各第一指令集关联,且还未执行的至少一个第二指令集。
其中,有向图的概念为:假设V是一个非空集合,A是一个由V中元素的有序对构成的多重集,有序对D=<V,A>称为一个有向图,其中,V称为顶点集,其中的元素称为顶点或点;A称为弧集,其中的元素是弧。
现以每一指令集包括一个SQL语句为例,说明关联关系的生成过程:
系统可以从SQL脚本中获取到Hive SQL执行方法对应的SQL语句,并根据对该些获取到的SQL语句的分析,确定各条SQL语句之间的关联关系,进而根据该确定的关联关系绘制生成有向图。例如,假设系统获取到的SQL脚本中包含有9条SQL语句,分别为:SQL_1,SQL_2,SQL_3,SQL_4,SQL_5,SQL_6,SQL_7,SQL_8,SQL_9,经过分析可以确定:SQL_1,SQL_2顺序执行;SQL_3,SQL_4,SQL_5并行执行;SQL_6的执行需要依赖于SQL_3以及SQL_4执行后的结果;SQL_7的执行需要依赖于SQL_5的结果;SQL_6与SQL_7互不影响;SQL8以及SQL9顺序执行。基于此,图2为本实施根据各SQL语句的关联关系绘制的有向图,有向图中顶点V1~V9表示获取到的九条SQL语句。
基于该有向图,可以用关联矩阵表示有向图中各个顶点间的相邻关系,用一个顺序表来存储顶点信息图的矩阵设G=(V,E)是具有n个顶点的图,则G的关联矩阵是具有如下公式所示的n阶方阵:
先对顶点集合进行SQL插入初始化操作。即对数据结构进行代码段SQL_1,SQL_2,...,SQL_9存储操作,SQL_i代表顶点Vi。然后按照上述公式进行输入,可以绘制如下关联矩阵:
其中,关联矩阵中1表示具有邻接关系的顶点,例如,第一个行向量中的1表示V1与V2顶点邻接。第二个行向量中的1表示V2与V3、V4和V5均邻接。
本实施例通过绘制有向图准确表示出个指令集的关联关系,并通过有向图实现了关联矩阵的快速生成,通过简单快速地方式实现了对关联关系的表示。
进一步地,在上述各实施例的基础上,所述根据所述有向图中各顶点与指令集的对应关系和所述关联矩阵,获取与当前正在执行或执行结束的各第一指令集关联,且还未执行的至少一个第二指令集,包括:
根据所述对应关系在所述有向图的各顶点插入指令集,得到以各指令集封装的顶点数据结构;
根据所述顶点数据结构和所述关联矩阵,获取与当前正在执行或执行结束的各第一指令集关联,且还未执行的至少一个第二指令集。
需要说明的是,顶点数据结构能够表示出各指令集与有向图的顶点之间的对应关系,且以顶点数据结构封装的指令集,无需在指令集之间插入语句,保留了原程序代码。
具体地,为例更清楚地说明本申请提供的方法,以每一指令集包括一个SQL语句为例,SQL语句的执行过程包括:
步骤1:系统可以获取到历史Hive SQL执行方法,通过对该历史数据的分析,确定在Hive中各条SQL语句之间的关联关系,进而根据该确定的关联关系,系统可以自动绘制生成有向图;
步骤2:系统可以在通过执行步骤1构建的有向图的各个顶点上插入一条SQL语句,并利用Hive执行状态器存储有向图中每个顶点SQL语句的当前状态;
步骤3:初始化顶点,将所有顶点设置为尚未访问,并进行有向图广度优先遍历执行,访问当前顶点,通过Hive执行状态器判断上一层所有顶点是否结束。如果未结束,则等待直至上一层所有顶点结束(该操作通过获知Hive执行器状态得知)。如果结束则执行当前顶点所属SQL,且不断的更新Hive执行状态器。接着利用邻接矩阵获得该节点的所有邻接节点,进行并行执行SQL,更新Hive执行状态器。并将这些节点的访问状态设置为已访问。
在上述步骤2中,可以通过在顶点V1插入SQL_1,在顶点V5插入SQL_5的方式,构建顶点数据结构。
本实施例通过在有向图的各顶点插入指令集,将指令集封装为顶点数据结构,配合关联矩阵实现指令集按照关联关系执行。顶点数据结构能够使得原有的程序代码不作改动,避免打乱原有代码的逻辑,降低出错率。
进一步地,在上述各实施例的基础上,还包括:
对所述有向图中各顶点对应的指令集的执行状态进行监控,并根据各顶点对应的执行状态生成执行状态标识。
其中,通过状态执行器存储执行状态标识。
其中,状态执行器每隔预设时长读取系统执行状态表或日志,得到各顶点对应的指令集的执行状态,并更新当前存储的执行状态标识。
例如,若顶点对应的指令集当前正在执行,执行状态标识设置为1(例如,State_i=1),若顶点对应的指令集当前还未执行,执行状态标识设置为0(例如,State_i=0),若顶点对应的指令集当前执行结束,执行状态标识设置为2(例如,State_i=2)。
具体来说,在本方案中,初始化Hive执行状态器可以是一个数据库表,Hive执行状态器存储每个顶点Hive SQL的当前状态,设置执行状态器的初始状态为:“查询是否有SQL执行”。如果没有则将所有顶点状态全部置换成0,如果有则等待直至完成后再继续。例如,State_i=0表示未执行,State_i=1表示第i个顶点正在执行,State_i=2第i个顶点执行完毕。
本实施例通过执行状态标识存储了各顶点对应的指令集的执行状态,通过该执行状态标识能够准确判断各指令集的执行状态,从而保证在上一层关联的指令集执行完毕之后再进行当前指令集的执行,降低了指令执行过程中的出错率。
进一步地,在上述各实施例的基础上,所述根据所述顶点数据结构和所述关联矩阵,获取与当前正在执行或执行结束的各第一指令集关联,且还未执行的至少一个第二指令集,包括:
根据所述有向图中各顶点对应的执行状态标识,获取当前正在执行或执行结束的第一指令集对应的第一顶点;
根据获取的执行状态标识和所述关联矩阵,获取与第一顶点邻接,且还未执行指令集的第二顶点;
根据所述顶点数据结构获取与第二顶点对应的第二指令集。
进一步地,在上述各实施例的基础上,所述对每一第二指令集,将各第一指令集中与所述第二指令集关联的第一指令集作为目标指令集,在目标指令集执行结束后,执行所述第二指令集,包括:
对每一第二指令集对应的第二顶点,将各第一顶点中与所述第二顶点关联的第一顶点作为目标顶点,根据所述关联矩阵和获取的执行状态标识,判断所述目标顶点对应的第一指令集是否执行结束;
若所述目标顶点对应的第一指令集执行结束,则根据所述顶点数据结构执行与所述第二顶点对应的第二指令集。
本实施例结合执行状态标识、关联矩阵和顶点数据结构实现了第二指令集的获取过程,以及在保证上一层关联的第一指令集执行完毕后,对第二指令集的执行过程。
进一步地,在上述各实施例的基础上,还包括:
根据所述关联矩阵,将所述有向图的各顶点加入队列;
其中,对每一第二顶点,若所述目标顶点对应的第一指令集执行结束,则使得所述第二顶点出队。
为了进一步简化指令执行过程,避免每次需要通过扫描关联矩阵确定第二指令集,本实施例通过队列使得上层关联顶点执行结束后,下层顶点能够快速出队,进而执行快速出队的各顶点对应的指令集。例如,在图2所示的有向图中,当顶点V2中的指令集执行完毕后,顶点V3、V4和V5出队,对V3、V4和V5的指令集进行并行执行。
本实施例通过顶点从队列出队的方式触发指令集的执行,避免对关联矩阵的重复扫描,提高了执行效率。
具体来说,可以通过下述步骤更新Hive执行状态器:
子步骤31:开启Hive单条SQL JOB并行化执行操作;
子步骤32:初始化所有的顶点的访问标志;
子步骤33:获取当前已经遍历的顶点SQL,检查Hive执行程序是否运行结束,且必须保证上一层的所有顶点执行结束;
子步骤34:执行当前顶点所属Hive SQL语句;
子步骤35:将顶点i添加到队列里面,保证队列不为空;
子步骤36:选择每一层的顶点,将其出队;
子步骤37:遍历所有未被访问的邻接顶点,放入队列,即访问这一层剩下的未被访问的顶点。
综上,在本方案所提供的方法中,首先系统可以获取到历史Hive SQL执行方法,通过对该历史数据的分析,确定在Hive中各条SQL语句之间的关联关系,进而根据该确定的关联关系,系统可以自动绘制生成有向图;进而系统可以在构建的有向图的各个顶点上插入一条SQL语句,并利用Hive执行状态器存储有向图中每个顶点SQL语句的当前状态,初始状态是查询是否有SQL执行。如果没有则将所有顶点状态全部置换成0。如果有则等待直至完成后再继续。访问当前顶点,通过Hive执行状态器判断上一层所有顶点是否结束;如果未结束,则等待直至上一层所有顶点结束;如果结束则执行当前顶点所属SQL,且不断的更新Hive执行状态器。接着利用邻接矩阵获得该节点的所有邻接节点,进行并行执行SQL,更新Hive执行状态器,并将这些节点的访问状态设置为已访问。从而实现Hive SQL的并行执行,极大地提高了Hive SQL的执行效率。
图3为本实施例提供的指令执行装置的结构框图,参见图3,所述指令执行装置包括获取模块301和执行模块302,其中,
获取模块301,用于根据各指令集之间的关联关系,获取与当前正在执行或执行结束的各第一指令集关联,且还未执行的至少一个第二指令集;
执行模块302,用于对每一第二指令集,将各第一指令集中与所述第二指令集关联的第一指令集作为目标指令集,在目标指令集执行结束后,执行所述第二指令集。
本实施例提供的指令执行装置适用于上述各实施例提供的指令执行方法,在此不再赘述。
本发明的实施例提供了一种指令执行方法、装置、电子设备和存储介质,在执行指令的过程中,按照指令集之间的关联关系执行,以使得并行的指令能够并行执行,提高指令的执行效率。同时,每次执行某一第二指令集之前,需要保证在该第二指令集之前,且与该第二指令集关联的第一指令集均执行结束,避免未执行结束的第一指令集影响该第二指令集的执行结果,保证指令执行的正确性。。
可选地,所述根据各指令集之间的关联关系,获取与当前正在执行或执行结束的各第一指令集关联,且还未执行的至少一个第二指令集,包括:
根据所述关联关系生成有向图,并根据所述有向图生成表示所述关联关系的关联矩阵,其中,所述关联矩阵根据所述有向图各顶点之间的邻接关系确定;
根据所述有向图中各顶点与指令集的对应关系和所述关联矩阵,获取与当前正在执行或执行结束的各第一指令集关联,且还未执行的至少一个第二指令集。
可选地,所述根据所述有向图中各顶点与指令集的对应关系和所述关联矩阵,获取与当前正在执行或执行结束的各第一指令集关联,且还未执行的至少一个第二指令集,包括:
根据所述对应关系在所述有向图的各顶点插入指令集,得到以各指令集封装的顶点数据结构;
根据所述顶点数据结构和所述关联矩阵,获取与当前正在执行或执行结束的各第一指令集关联,且还未执行的至少一个第二指令集。
可选地,还包括:
对所述有向图中各顶点对应的指令集的执行状态进行监控,并根据各顶点对应的执行状态生成执行状态标识。
可选地,所述根据所述顶点数据结构和所述关联矩阵,获取与当前正在执行或执行结束的各第一指令集关联,且还未执行的至少一个第二指令集,包括:
根据所述有向图中各顶点对应的执行状态标识,获取当前正在执行或执行结束的第一指令集对应的第一顶点;
根据获取的执行状态标识和所述关联矩阵,获取与第一顶点邻接,且还未执行指令集的第二顶点;
根据所述顶点数据结构获取与第二顶点对应的第二指令集。
可选地,所述对每一第二指令集,将各第一指令集中与所述第二指令集关联的第一指令集作为目标指令集,在目标指令集执行结束后,执行所述第二指令集,包括:
对每一第二指令集对应的第二顶点,将各第一顶点中与所述第二顶点关联的第一顶点作为目标顶点,根据所述关联矩阵和获取的执行状态标识,判断所述目标顶点对应的第一指令集是否执行结束;
若所述目标顶点对应的第一指令集执行结束,则根据所述顶点数据结构执行与所述第二顶点对应的第二指令集。
可选地,还包括:
根据所述关联矩阵,将所述有向图的各顶点加入队列;
其中,对每一第二顶点,若所述目标顶点对应的第一指令集执行结束,则使得所述第二顶点出队。
图4示例了一种电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)401、通信接口(Communications Interface)402、存储器(memory)403和通信总线404,其中,处理器401,通信接口402,存储器403通过通信总线404完成相互间的通信。处理器401可以调用存储器403中的逻辑指令,以执行如下方法:根据各指令集之间的关联关系,获取与当前正在执行或执行结束的各第一指令集关联,且还未执行的至少一个第二指令集;对每一第二指令集,将各第一指令集中与所述第二指令集关联的第一指令集作为目标指令集,在目标指令集执行结束后,执行所述第二指令集。
此外,上述的存储器403中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
进一步地,本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:根据各指令集之间的关联关系,获取与当前正在执行或执行结束的各第一指令集关联,且还未执行的至少一个第二指令集;对每一第二指令集,将各第一指令集中与所述第二指令集关联的第一指令集作为目标指令集,在目标指令集执行结束后,执行所述第二指令集。
另一方面,本发明实施例还提供一种非暂态可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的传输方法,例如包括:根据各指令集之间的关联关系,获取与当前正在执行或执行结束的各第一指令集关联,且还未执行的至少一个第二指令集;对每一第二指令集,将各第一指令集中与所述第二指令集关联的第一指令集作为目标指令集,在目标指令集执行结束后,执行所述第二指令集。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种指令执行方法,其特征在于,包括:
根据各指令集之间的关联关系,获取与当前正在执行或执行结束的各第一指令集关联,且还未执行的至少一个第二指令集;
对每一第二指令集,将各第一指令集中与所述第二指令集关联的第一指令集作为目标指令集,在目标指令集执行结束后,执行所述第二指令集。
2.根据权利要求1所述的指令执行方法,其特征在于,所述根据各指令集之间的关联关系,获取与当前正在执行或执行结束的各第一指令集关联,且还未执行的至少一个第二指令集,包括:
根据所述关联关系生成有向图,并根据所述有向图生成表示所述关联关系的关联矩阵,其中,所述关联矩阵根据所述有向图各顶点之间的邻接关系确定;
根据所述有向图中各顶点与指令集的对应关系和所述关联矩阵,获取与当前正在执行或执行结束的各第一指令集关联,且还未执行的至少一个第二指令集。
3.根据权利要求2所述的指令执行方法,其特征在于,所述根据所述有向图中各顶点与指令集的对应关系和所述关联矩阵,获取与当前正在执行或执行结束的各第一指令集关联,且还未执行的至少一个第二指令集,包括:
根据所述对应关系在所述有向图的各顶点插入指令集,得到以各指令集封装的顶点数据结构;
根据所述顶点数据结构和所述关联矩阵,获取与当前正在执行或执行结束的各第一指令集关联,且还未执行的至少一个第二指令集。
4.根据权利要求2所述的指令执行方法,其特征在于,还包括:
对所述有向图中各顶点对应的指令集的执行状态进行监控,并根据各顶点对应的执行状态生成执行状态标识。
5.根据权利要求3所述的指令执行方法,其特征在于,所述根据所述顶点数据结构和所述关联矩阵,获取与当前正在执行或执行结束的各第一指令集关联,且还未执行的至少一个第二指令集,包括:
根据所述有向图中各顶点对应的执行状态标识,获取当前正在执行或执行结束的第一指令集对应的第一顶点;
根据获取的执行状态标识和所述关联矩阵,获取与第一顶点邻接,且还未执行指令集的第二顶点;
根据所述顶点数据结构获取与第二顶点对应的第二指令集。
6.根据权利要求5所述的指令执行方法,其特征在于,所述对每一第二指令集,将各第一指令集中与所述第二指令集关联的第一指令集作为目标指令集,在目标指令集执行结束后,执行所述第二指令集,包括:
对每一第二指令集对应的第二顶点,将各第一顶点中与所述第二顶点关联的第一顶点作为目标顶点,根据所述关联矩阵和获取的执行状态标识,判断所述目标顶点对应的第一指令集是否执行结束;
若所述目标顶点对应的第一指令集执行结束,则根据所述顶点数据结构执行与所述第二顶点对应的第二指令集。
7.根据权利要求6所述的指令执行方法,其特征在于,还包括:
根据所述关联矩阵,将所述有向图的各顶点加入队列;
其中,对每一第二顶点,若所述目标顶点对应的第一指令集执行结束,则使得所述第二顶点出队。
8.一种指令执行装置,其特征在于,包括:
获取模块,用于根据各指令集之间的关联关系,获取与当前正在执行或执行结束的各第一指令集关联,且还未执行的至少一个第二指令集;
执行模块,用于对每一第二指令集,将各第一指令集中与所述第二指令集关联的第一指令集作为目标指令集,在目标指令集执行结束后,执行所述第二指令集。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述的指令执行方法的步骤。
10.一种非暂态可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7任一项所述的指令执行方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010334625.7A CN111538714B (zh) | 2020-04-24 | 2020-04-24 | 一种指令执行方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010334625.7A CN111538714B (zh) | 2020-04-24 | 2020-04-24 | 一种指令执行方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111538714A true CN111538714A (zh) | 2020-08-14 |
CN111538714B CN111538714B (zh) | 2023-10-17 |
Family
ID=71973149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010334625.7A Active CN111538714B (zh) | 2020-04-24 | 2020-04-24 | 一种指令执行方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111538714B (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1737803A (zh) * | 2004-07-30 | 2006-02-22 | 微软公司 | 借助于矩阵索引变换和改进的高速缓存而有效地分级网页 |
US20060206869A1 (en) * | 1999-02-04 | 2006-09-14 | Lewis Brad R | Methods and systems for developing data flow programs |
US20100161651A1 (en) * | 2008-12-23 | 2010-06-24 | Business Objects, S.A. | Apparatus and Method for Processing Queries Using Oriented Query Paths |
CN102317933A (zh) * | 2009-01-02 | 2012-01-11 | 苹果公司 | 用于文档重构的方法和系统 |
US20120290867A1 (en) * | 2011-05-12 | 2012-11-15 | Microsoft Corporation | Matrix computation framework |
CN104699466A (zh) * | 2015-03-26 | 2015-06-10 | 中国人民解放军国防科学技术大学 | 一种面向vliw体系结构的多元启发式指令选择方法 |
US20150169304A1 (en) * | 2013-12-17 | 2015-06-18 | International Business Machines Corporation | Adaptable and Extensible Runtime and System for Heterogeneous Computer Systems |
CN105404690A (zh) * | 2015-12-16 | 2016-03-16 | 华为技术服务有限公司 | 查询数据库的方法和装置 |
CN107133085A (zh) * | 2017-06-26 | 2017-09-05 | 努比亚技术有限公司 | 优化oat中冗余指令的方法及移动终端 |
CN108874954A (zh) * | 2018-06-04 | 2018-11-23 | 深圳市华傲数据技术有限公司 | 一种数据库查询的优化方法、介质及设备 |
CN110362298A (zh) * | 2018-04-09 | 2019-10-22 | 搜游网络科技(北京)有限公司 | 一种基于浏览器的目标对象绘制方法、装置和浏览器 |
CN110427259A (zh) * | 2019-08-05 | 2019-11-08 | 北京奇艺世纪科技有限公司 | 一种任务处理方法及装置 |
CN110516789A (zh) * | 2019-08-09 | 2019-11-29 | 苏州浪潮智能科技有限公司 | 卷积网络加速器中指令集的处理方法、装置及相关设备 |
CN110659070A (zh) * | 2018-06-29 | 2020-01-07 | 赛灵思公司 | 高并行度计算系统及其指令调度方法 |
-
2020
- 2020-04-24 CN CN202010334625.7A patent/CN111538714B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060206869A1 (en) * | 1999-02-04 | 2006-09-14 | Lewis Brad R | Methods and systems for developing data flow programs |
CN1737803A (zh) * | 2004-07-30 | 2006-02-22 | 微软公司 | 借助于矩阵索引变换和改进的高速缓存而有效地分级网页 |
US20100161651A1 (en) * | 2008-12-23 | 2010-06-24 | Business Objects, S.A. | Apparatus and Method for Processing Queries Using Oriented Query Paths |
CN102317933A (zh) * | 2009-01-02 | 2012-01-11 | 苹果公司 | 用于文档重构的方法和系统 |
US20120290867A1 (en) * | 2011-05-12 | 2012-11-15 | Microsoft Corporation | Matrix computation framework |
US20150169304A1 (en) * | 2013-12-17 | 2015-06-18 | International Business Machines Corporation | Adaptable and Extensible Runtime and System for Heterogeneous Computer Systems |
CN104699466A (zh) * | 2015-03-26 | 2015-06-10 | 中国人民解放军国防科学技术大学 | 一种面向vliw体系结构的多元启发式指令选择方法 |
CN105404690A (zh) * | 2015-12-16 | 2016-03-16 | 华为技术服务有限公司 | 查询数据库的方法和装置 |
CN107133085A (zh) * | 2017-06-26 | 2017-09-05 | 努比亚技术有限公司 | 优化oat中冗余指令的方法及移动终端 |
CN110362298A (zh) * | 2018-04-09 | 2019-10-22 | 搜游网络科技(北京)有限公司 | 一种基于浏览器的目标对象绘制方法、装置和浏览器 |
CN108874954A (zh) * | 2018-06-04 | 2018-11-23 | 深圳市华傲数据技术有限公司 | 一种数据库查询的优化方法、介质及设备 |
CN110659070A (zh) * | 2018-06-29 | 2020-01-07 | 赛灵思公司 | 高并行度计算系统及其指令调度方法 |
CN110427259A (zh) * | 2019-08-05 | 2019-11-08 | 北京奇艺世纪科技有限公司 | 一种任务处理方法及装置 |
CN110516789A (zh) * | 2019-08-09 | 2019-11-29 | 苏州浪潮智能科技有限公司 | 卷积网络加速器中指令集的处理方法、装置及相关设备 |
Non-Patent Citations (3)
Title |
---|
CARLOS ORDONEZ: "Optimization of Linear Recursive Queries in SQL" * |
罗永红;陈特放;张友生;: "基于数据网格的分布式查询优化模型", no. 10 * |
覃芳艳: "CPADSE:一种微处理器设计空间探索加速方法" * |
Also Published As
Publication number | Publication date |
---|---|
CN111538714B (zh) | 2023-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11580441B2 (en) | Model training method and apparatus | |
US20200034750A1 (en) | Generating artificial training data for machine-learning | |
JP2022543180A (ja) | 可視化方法及び関連デバイス | |
CN111143470A (zh) | 跨平台数据库数据同步比对方法及装置 | |
CN110879776A (zh) | 一种测试用例的生成方法和装置 | |
CN111078573A (zh) | 一种测试报文的生成方法及装置 | |
CN113778961B (zh) | 一种cim模型数据的生产管理方法、装置及系统 | |
CN115358397A (zh) | 一种基于数据采样的并行图规则挖掘方法及装置 | |
CN111553652A (zh) | 业务处理方法及装置 | |
CN114372102A (zh) | 数据的分析方法、装置、存储介质及电子设备 | |
CN111538714B (zh) | 一种指令执行方法、装置、电子设备和存储介质 | |
CN112947907A (zh) | 一种创建代码分支的方法 | |
CN116402325A (zh) | 业务流程自动化处理方法及装置 | |
CN112699042B (zh) | 一种单元测试案例的生成方法及装置 | |
CN113836235A (zh) | 基于数据中台的数据处理方法及其相关设备 | |
CN114816408A (zh) | 信息处理方法及装置 | |
CN110727677B (zh) | 数据仓库内表格的血缘关系追溯的方法和装置 | |
CN110222018A (zh) | 数据汇总执行方法及装置 | |
Milovanovic et al. | Python Data Visualization Cookbook | |
CN109284097A (zh) | 实现复杂数据分析的方法、设备、系统及存储介质 | |
CN117573730B (zh) | 数据处理方法、装置、设备、可读存储介质及程序产品 | |
CN115756998B (zh) | 缓存数据重取标记验证方法、装置及系统 | |
CN115618239B (zh) | 一种深度学习框架训练的管理方法、系统、终端及介质 | |
CN116822472B (zh) | 一种快速拉取多源数据填充复杂界面表单的方法及系统 | |
CN113986305B (zh) | B/s模型升级的检测方法、装置、设备和存储介质 |
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 |