CN110149801A - 用于在处理系统中进行数据流图转换的系统和方法 - Google Patents
用于在处理系统中进行数据流图转换的系统和方法 Download PDFInfo
- Publication number
- CN110149801A CN110149801A CN201580079578.3A CN201580079578A CN110149801A CN 110149801 A CN110149801 A CN 110149801A CN 201580079578 A CN201580079578 A CN 201580079578A CN 110149801 A CN110149801 A CN 110149801A
- Authority
- CN
- China
- Prior art keywords
- data
- level operation
- processor
- conversion
- low
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/451—Code distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
Abstract
一种用于在特定分布式处理系统中进行流图节点转换的装置,包括:接口,用于接收包括多个节点的数据流图,其中,每个节点表示一种高级操作;以及编译器,用于:将至少一个高级操作节点转换为与所述至少一个高级操作相对应的至少一个低级操作节点,以创建转换的数据流图,其中,所述至少一个低级操作由执行所述转换的数据流图的运行环境的多个处理器中的一个处理器执行,所述转换操作由各自处理器根据计算出的性能测量来执行,其中,所述性能测量是针对通过所述至少一个低级操作执行所述至少一个高级操作的每个处理器进行计算得到的。
Description
背景技术
本发明的一些实施例涉及处理系统上,特别是异构系统上的程序执行,更具体地涉及但不仅仅限于用于对在所述处理系统上执行的计算机程序的数据流图进行转换的系统和方法。
异构系统包括一组互连的处理器,每个处理器都基于不同的计算机架构和计算模型。这种处理器的示例包括:图形处理器(graphics processing unit,简称GPU),其本质上是并行的,并且基于单指令多数据(single-instruction multiple-data streamprocessing,简称SIMD)计算模型;多线程中央处理器(central processing unit,简称CPU),其中每个CPU都是串行的;以及通用现场可编程门阵列(field programmable gatearray,简称FPGA),其提供各种中间形式的计算模型。
用诸如域特定语言(domain-specific language,简称DSL)的高级抽象编程语言编写的计算机程序可以被解析为诸如数据流图(dataflow graph,简称DFG)的中间表示(Intermediate Representation,简称IR)。DFG包含表示从由DSL定义的操作集中选择的计算操作的节点。DFG的边缘表示计算节点之间的数据关系。
是否可以在不同性能级别的同一异构系统内执行相同的DFG取决于多种因素,例如异构系统的哪个特定处理器正在执行DFG。例如,由GPU执行DFG可能比CPU执行相同的DFG要快得多。在另一示例中,CPU的执行可能比GPU的执行更快。其他额外的性能影响参数包括:由DFG处理的数据的数据格式,通过执行DFG接收的输入,以及为DFG的不同计算节点分配计算资源的方式。
发明内容
本发明的目的在于提供一种用于在处理系统中进行数据流图的节点转换的装置、系统、计算机程序产品和方法。
上述及其它目的通过独立权利要求的特征来实现。根据所述独立权利要求、描述以及附图,其他实施形式是显而易见的。
根据第一方面,一种用于在特定分布式处理系统中进行流图节点转换的装置,包括:接口,用于接收包括多个节点的数据流图,其中,每个节点表示一种高级操作;以及编译器,用于:将至少一个高级操作节点转换为与所述至少一个高级操作相对应的至少一个低级操作节点,以创建转换的数据流图,其中,所述至少一个低级操作由执行所述转换的数据流图的运行环境的多个处理器中的一个处理器执行,所述转换操作由各自处理器根据计算出的性能测量来执行,其中,所述性能测量是针对通过所述至少一个低级操作执行所述至少一个高级操作的每个处理器进行计算得到的。
处理器的特定优化在程序编译之前在前端执行,以改进对计算机程序的数据流图表示的执行。在数据流图级别执行优化,这使编译器能够在编译和执行之前进一步优化数据流图。每个处理器都有各自的低级操作,以实现最佳性能,而不是将高级操作映射成设计用于在所有或多个处理器上执行的常见低级操作,以至于降低性能。
该图表示允许利用标准图应用方法。该图表示提供与将以高级语言编写的计算机程序解析为数据流图表示的现有系统组件的兼容性。
根据第一方面,在所述的装置第一种可能实现方式中,该装置还包括针对每个处理器所定义的低级操作集合,其中,每个集合包括多个低级操作,每个低级操作用于计算机程序处理数据变化形式,其中,所述至少一个低级操作是从与所述处理器对应的集合中选择的。
每个低级操作用于在相应的目标处理器上实现最佳性能,而不是例如将相同的高级操作编译到多个可用的目标处理器中的一个目标处理器上,这会导致较低的性能。每个低级操作可以针对不同的数据格式进行最佳设计,而不是例如针对通用数据格式设计相同的高级操作,这会导致较低的性能。
根据第一方面或第一方面上述任意一种实现方式,在所述的装置第二种可能的实现方式中,所述至少一个高级操作基于由领域专用语言(domain-specific language,简称DSL)定义的抽象操作,所述领域专用语言用于写入所述计算机程序,每个高级操作可以映射到多个低级操作,从而可以由不同处理器执行。
针对DSL编程语言执行处理器的特定优化,例如用于统计计算的R编程语言以及数据库的SQL(结构化查询语言)编程语言。高级操作可以映射到低级操作的不同可用组合或子集中的一个(即,不一定以1:1方式),当选择低级操作的最佳组合时,这提升了性能。
根据第一方面或第一方面上述任意一种实现方式,在所述的装置第三种可能的实现方式中,所述性能测量包括以下内容中的一项或多项:较少的计算时间,较低的计算复杂度,较少的能耗和较少的瞬时功率消耗。
可以选择处理器和/或低级操作以实现特定期望的性能提升。
根据第一方面或第一方面上述任意一种实现方式,在所述的装置第四种可能的实现方式中,所述接口用于接收数据集,以便所述转换的数据流图处理所述数据集,并且所述转换操作是根据所述计算出的性能测量执行的,而所述性能测量是根据对所述数据集的处理来计算得到的。
可以针对不同的数据集执行不同的转换操作,以提高实际数据集的处理性能。通过为正在接受访问的数据库选择最佳的处理器和/或低级操作,提升了数据库管理系统(database management system,简称DBMS)和/或数据仓库(data warehouse,简称DWH)的性能。根据第一方面第四种实现方式,在所述的装置第五种可能的实现方式中,所述装置还包括预处理模块,用于生成数据集的多个实例,其中,每个实例由所述多个处理器中的一个处理器通过执行至少一个低级操作进行处理。
创建数据集的多个实例可以提高性能,如,每个实例用于通过相应的处理器和/或低级操作实现更高效的执行性能。在程序执行之前生成多个实例,以进一步提高性能。
根据第一方面第四种或第五种实现方式,在所述的装置第六种可能的实现方式中,所述装置还包括预处理模块,用于根据对所述数据集的分析来生成至少一个统计值,其中,所述转换操作是根据所述至少一个统计值执行的。
根据数据本身的特性,选择处理器和/或低级操作,以获得数据处理时的最佳性能。
根据第一方面第四种或第五种或第六种实现方式,在所述的装置第七种可能的实现方式中,所述转换操作是根据性能测量执行的,且所述性能测量关于所述处理器对所述数据集执行所述至少一个低级操作,并与其它处理器对所述数据集执行所述至少一个低级操作相关联。
选择处理器和/或低级操作执行以提高性能。性能测量允许选择一个处理器而不选择另外一个处理器,或者选择特定的低级操作而不选择其他的操作。
根据第一方面或第一方面上述任意一种实现方式,在所述装置的第八种可能的实现方式中,所述转换操作包括将至少一个数据复制节点插入到所述数据流图中,所述复制节点对不同处理器的存储器之间的数据复制进行定义。
数据复制节点允许流程图表示描述不同处理器之间的数据通信的低级操作,以在不同处理器互相传输数据时提高性能。
根据第一方面或第一方面上述任意一种实现方式,在所述装置的第九种可能的实现方式中,所述转换操作包括将至少一个数据处理节点插入到所述数据流图中,且每个数据处理节点对以下组中所选择的一项进行定义,该组包括:数据转换(从一种格式转换为另一种格式),对不同处理器的存储器所进行的数据分区,以及对不同处理器的存储器中的两个或两个以上的数据项所进行的连接操作。
数据处理节点允许流程图表示低级操作,从而在不同处理器合作处理数据时提高性能,其中,所述低级操作描述处理涉及不同处理器之间通信的数据。
根据第一方面或第一方面上述任意一种实现方式,在所述装置的第十种可能的实现方式中,所述转换操作包括以下一项或多项操作:将高级操作的数据流图节点转换为包括多个低级操作的子图,其中,所述子图与该节点具有相同的语义;将高级操作的数据流图的子图转换为表示单个低级操作的单个节点,其中,所述单个节点具有与所述子图相同的语义;或将高级操作的数据流图的第一子图转换为低级操作的第二子图,其中,所述第一子图和所述第二子图具有相同的语义。
转换所述图的部分以提高性能。
根据第一方面或第一方面上述任意一种实现方式,在所述装置的第十一种可能的实现方式中,所述编译器还用于通过将转换的至少一个低级操作节点转换为另外的至少一个低级操作节点来对所述转换的数据流图进行迭代转换。
进行迭代转换可以进一步提高性能。
根据第一方面或第一方面上述任意一种实现方式,在所述装置的第十二种可能的实现方式中,所述运行环境执行所述转换的数据流图。
转换的图本身可以使用图优化方法进行优化,并由运行环境以标准方式执行,从而能与现有系统兼容。
在第十三种可能的实现方式中,提供了一种用于转换数据流图IR的方法,其中,所述方法用于运行根据上述权利要求其中一项的装置。
在第十四种可能的实现方式中,提供了一种计算机程序,用于在计算机上执行时,运行上述方法。
除非另有定义,否则本文所使用的所有技术和/或科学术语的含义与本发明所属领域的普通技术人员所公知的含义相同。与本文所描述的方法和材料类似或者相同的方法和材料可以用于本发明实施例的实践或测试,下文描述示例性的方法和/或材料。若存在冲突,则以包括定义在内的专利说明书为准。另外,材料、方法以及示例都只是用于说明,并非必要限定。
附图说明
此处仅作为示例,结合附图描述了本发明的一些实施例。现在具体结合附图,需要强调的是所示的项目作为示例,为了说明性地讨论本发明的实施例。这样,根据附图说明,如何实践本发明实施例对本领域技术人员而言是显而易见的。
在附图中:
图1是本发明一些实施例提供的用于转换数据流图的节点的方法的流程图;
图2是本发明一些实施例提供的包括用于转换数据流图的节点的装置的系统的部件框图;
图3是本发明一些实施例提供的由图1中装置执行的和/或基于图2中方法的一些可能的转换操作的流程图;
图4所示为本发明一些实施例提供的转换的数据流图的子图的示例;
图5是本发明一些实施例提供的用于结合图2中装置对转换的数据流图进行编译和执行的系统的框图;
图6A至图6D是本发明一些实施例提供的描述生成用于进行转换的数据集实例和/或低级指令从而提升不同的处理器架构的性能的示意图。
具体实施方式
本发明的一些实施例涉及处理系统上,特别是异构系统上的程序执行,更具体地涉及但不仅仅限于用于对在所述处理系统上执行的计算机程序的数据流图进行转换的系统和方法。
本发明的一些实施例的一个方面涉及一种编译器,该编译器通过将数据流图的一个或多个高级操作节点转换成一个或多个低级操作节点来创建转换的数据流图,该一个或多个低级操作节点设计成在运行环境的多个处理器的某个处理器上执行。可选地,运行环境是一种分布式处理系统,该分布式处理系统包括不同处理器架构,例如异构系统。多个处理器中的每个处理器与设计成在各自处理器上执行的不同组的低级操作相关联。编译器根据针对多个处理器的每个处理器(或其中的一个子集)计算出的一个或多个性能测量来执行转换操作,所述多个处理器执行对应于数据流图的相同高级操作的各自的低级操作。在这种方式下,在执行转换的数据流图之前,为一个或多个高级操作节点指定最佳执行的低级操作和对应的处理器。可选地,每个处理器与预定义的一组低级操作相关联,该组低级操作为数据的变化形式所设计,该数据的变化形式经指定由数据流图进行处理。低级操作的目的是在各自处理器执行数据变化形式时提高性能。例如,对应于两个数据集的连接操作的两个低级操作是可以使用的,其中,每个低级操作设计成根据数据集的特性(例如对数据集中的一项进行分类的时刻)来提高连接操作的性能。所述低级操作节点由编译器根据所述指定的处理器和/或所述性能测量从所述组中选择。可替代地或附加地,根据是否有合适的低级操作可用来指定处理器。
可选地,针对可用于执行数据流图的多个部分的不同处理器来计算(例如,由编译器来计算)性能测量,其中,所述数据流图用于处理数据集。数据集的不同特性可能导致性能测量的不同。编译器可以根据计算出的性能测量来选择低级操作和对应的处理器来执行数据集。
可选地,与编译器通信的预处理模块生成数据集的多个实例,这些实例以不同格式存储相同的信息。各个实例设计成使用不同处理器的通过低级操作进行处理。编译器可以根据性能测量选择实例从而在各自处理器上执行。可以基于所选择的实例来指定低级操作和对应的处理器。
可选地,编译器将一个或多个数据复制节点插入到转换的数据流图中。数据复制节点对与不同处理器相关联的存储器之间的数据复制进行定义。当指定不同的处理器来执行转换的数据流图的不同部分时,可以插入多个数据复制节点,以便在不同处理器之间传递数据。
应当注意,本文中所描述的编译器可以作为程序模块(在硬件和/或软件中)、系统、方法和/或计算机程序产品在装置中实现。
在详细解释本发明的至少一个实施例之前,应当理解,本发明不必将其应用限于下面描述中阐述的和/或在附图和/或举例中说明的部件和/或方法的结构和布置的细节。本发明可以有其他实施例或可以采用各种方式实践或执行。
本发明可以是系统、方法和/或计算机程序产品。所述计算机程序产品可以包括具有计算机可读程序指令的一个(或多个)计算机可读存储介质,所述指令用于使处理器执行本发明的各个方面。
所述计算机可读存储介质可以是有形设备,该有形设备可以保存和存储指令执行设备使用的指令。例如,所述计算机可读存储介质可以是但不限于电子存储设备、磁性存储设备、光存储设备、电磁存储设备、半导体存储设备或这几者的任意合适组合。
可以从计算机可读存储介质中将此处描述的计算机可读程序指令下载到各个计算/处理设备上,或通过网络下载到外部计算机或外部存储设备上,所述网络如因特网、局域网、广域网和/或无线网。
所述计算机可读程序指令可以完全在用户电脑上执行,部分在用户电脑上执行,或作为独立的软件包,部分在用户电脑上执行,部分在远端电脑上执行,或完全在远端电脑或服务器上执行。在后面的场景中,远端电脑可以通过任何类型的网络与用户电脑连接,包括局域网(local area network,简称LAN)或广域网(wide area network,简称WAN),或者,可以(例如,使用因特网服务提供商提供的因特网)在外部电脑上建立该连接。在一些实施例中,包括可编程逻辑电路、现场可编程门阵列(field programmable gate array,简称FPGA)或可编程逻辑阵列(programmable logic array,简称PLA)等的电子电路可以利用计算机可读程序指令的状态信息执行所述计算机可读程序指令以个性化所述电子电路,以便执行本发明的各方面。此处,结合本发明实施例的方法、装置(系统)以及计算机程序产品的流程图和/或框图描述本发明的各方面。应当理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。
附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。此时,流程图或框图中的每个框都可以代表一个模块、分段或多个指令的一部分,该多个指令包括一个或多个用于实现特定逻辑功能的可执行指令。在一些可选的实现方式中,框中指出的功能可以不按照图中的顺序实现。例如,事实上,连续展示的两个框可以同时执行,或者有时候,框可以按照相反的顺序执行,这取决于所涉及的功能。还应注意的是,框图和/或流程图中每一个框以及框图和/或流程图中框的组合可以由基于专用硬件的系统执行,该系统执行指定的功能或动作,或者执行专用硬件和计算机指令的组合。
参考图1,图1是本发明一些实施例提供的用于在处理系统中(可选地,分布式异构系统中)进行转换数据流图的节点的方法的流程图。同时参考图2,图2是本发明一些实施例提供的通过将高级操作节点转换为指定在某个或某些处理器上执行的低级操作节点的以提高数据流图的高级操作节点的执行性能的系统的组件的框图。权利要求1的方法可以由图2中的装置和/或系统执行。
处理器的特定优化在程序编译之前在前端执行,以改进对计算机程序的数据流图表示的执行。在数据流图级别执行优化,这使编译器能够在编译和执行之前进一步优化数据流图。每个处理器都有各自的低级操作集,以实现最佳性能,而不是将高级操作映射成设计用于在所有或多个处理器上执行的常见低级操作,以导致较低的性能。
在102,装置204接收包括多个操作节点的数据流图202,其中,可选地,通过接口206(例如,网络连接,硬盘驱动器,外部存储卡,到内部总线的连接和抽象界面例如应用编程接口(application programming interface,简称API))进行接收。数据流图的每个节点表示高级操作,例如,两个数据集的连接、在数据集内的搜索、数据汇总以及数据集中子集的选择。数据流图根据计算机程序生成,可选地,根据计算机程序的源代码生成,例如由另一个编译器模块生成。流图模型作为源代码中的节点。功能区(即节点)之间的数据流和/或数据关系用节点之间的边表示。计算机程序可以是整个计算机程序,计算机程序的一部分和/或单个算法。该图表示允许利用标准图优化方法。该图表示提供与将以高级语言编写的计算机程序解析为数据流图表示的现有系统组件的兼容性。
所述数据流图设计成在包括多个处理器216A至216C的运行执行环境214内执行(注意在所述执行环境中可能存在更多或更少的处理器)。运行执行环境214可以被组织为分布式处理系统,可选地,如包括多个不同类型的处理器的异构分布式处理系统。处理器216A至216C可以是不同的,可选地,使用不同的指令集架构(instruction setarchitecture,简称ISA)运行。处理器216A至216C可以具有不同的架构设计,例如中央处理器(central processing unit,简称CPU),图形处理器(graphics processing unit,简称GPU),现场可编程门阵列(field programmable gate array,简称FPGA),用于与其他单元通过接口连接的处理器和/或专用硬件加速器(例如,编码器,解码器和加密协处理器)。数据流图可以表示分布式计算机程序。高级操作可以基于由用于编写计算机程序的域特定语言(domain-specific language,简称DSL)208定义的抽象操作。每个高级操作可以映射到多个不同的低级操作,以在不同的处理器上执行。DSL可以提供与其他编程语言(例如低级编程语言)和/或未被专门设计成处理与DSL相同的域中的问题的编程语言相比更高级别的数据类型抽象和/或抽象数据类型的更一般应用。DSL可以是预先存在的可用DSL或定制开发的DSL,例如用于统计计算的R编程语言,以及用于数据库的SQL(结构化查询语言)编程语言。
可选地,在104,数据集210由装置204(可选地,通过接口206)接收和/或访问。数据集210经指定由计算机程序的转换的数据流图进行处理(关于数据流图的转换,参照框112),例如数据库,其中,在该数据库上执行由数据流图定义的查询。数据集210可以存储在与装置204通信的本地存储器和/或远程服务器上。
在106,生成数据集210的多个实例。每个实例设计成通过所述执行环境的多个处理器的某个处理器执行的一个或多个低级操作进行处理。各个实例包含数据集210内相同的数据,但数据之间的格式是不同的,例如,相同的数据组织成不同的数据结构,并且数据集被分成两个子集。可替代地或附加地,每个实例包含以不同方式组织的相同数据。例如,数据可以在一个实例中按一列预先排序,并在另一个实例中按另一列进行预排序,并添加一个附加列到指定的数据集组。
可以根据与每个处理器相关联的可用低级操作集合来生成实例。可以生成该实例以改善相应处理器执行相应的低级操作的性能。例如,该实例可以采用适合于在并行处理器(例如GPU)内执行的格式。可以生成实例以减少执行高级操作所需的低级处理器指令的数量,例如,与非预排序数据集相比,对数据集进行预排序和/或添加指定组号的另一列可以减少汇总所述数据集所需的低级处理器指令的数量。
创建数据集的多个实例可以提高性能,如,每个实例用于通过相应的处理器和/或低级操作实现更高效的执行性能。在程序执行之前生成多个实例,以进一步提高性能。
这些实例可以由预处理模块212生成,预处理模块212可以是装置204的组件和/或与装置204相关联的外部组件(例如,驻留在本地计算机和/或远程服务器上的外部组件)。
可选地,预处理模块212分析数据集210,并基于分析生成一个或多个统计值。统计值的示例包括:数据集中的数据大小分布以及数据集内的数据的组织(例如,排序或非排序)。可以根据计算的统计值来执行数据流图转换(参照框112所述的内容)。
应注意,框104和框106可以在框102之前和/或独立于框102进行。可以在接收数据流图之前接收和/或独立地接收数据集210。可以预处理数据集210,以在接收数据流图之前生成实例,使得当接收到数据流图时实例可用。
在108,针对各个处理器计算一个或多个性能测量,其中所述处理器通过设计成由各个处理器执行的低级操作来执行高级操作。相同的高级操作可以映射到成不同处理器上执行的不同低级操作。虽然由不同处理器执行相同的高级操作会获得相同的结果,但是每个处理器可以具有不同的性能测量值,这些测量值与对应于高级操作的低级操作的执行相关联。
可选地,针对从与相应处理器相关联的一组操作218中指定的低级操作的子集计算一个或多个性能测量。每个处理器与各自的低级操作集合相关联。对于每个处理器,相同高级操作可以映射到从所述集合中选择的不同的低级操作子集。低级操作的集合可以包括相同操作的变化形式,例如,用于处理不同格式的数据,用于处理不同大小的数据,以及处理具有不同统计值(例如,分布情况)的数据。每个低级操作集合都用于执行数据集的变化形式。可以根据不同的低级操作子集来生成数据集的实例(例如,参考框106中的描述)。虽然通过相同处理器执行不同的低级操作子集来执行相同的高级操作会获得相同的结果,但是每个低级操作子集可以具有不同的性能测量值,所述测量值与对应于相同高级操作的低级操作子集的执行相关联。
可以基于每个处理器对数据集210(或其子集)执行低级操作来计算性能测量,可选地,在数据集210每个生成的实例上计算性能测量。性能测量可以基于处理器执行类似的数据集(例如,根据统计学上相似的计算统计值)的过往性能预估所述测量性能。计算的性能测量可能取决于可用的系统资源,例如处理器,存储器和用于处理器之间传输数据的带宽。
性能测量可以包括以下一项或多项:时间计算,复杂度计算,能耗和瞬时功耗。性能测量可能是绝对测量,也可以是处理器之间的相对测量。可以根据所计算的性能测量,绝对测量和/或相对测量中的最低值来选择处理器。
为执行转换的高级操作节点指定处理器和/或低级操作,以根据所选择的性能测量来提高性能。性能测量允许选择一个处理器而不选择另外一个处理器,或者选择特定的低级操作而不选择其他的操作。
操作集218可以存储在各自相应的处理器216A至216C,例如,存储在与每个处理器相关联的存储器上。操作集218可以存储在处理器的外部,可供处理器访问和/或与所述处理器通信,例如,存储在装置204的组件上,在远程服务器上和/或本地中心服务器上。
操作集218可以由程序员手动定义,例如,基于相应处理器的架构为每个处理器手动地编写。例如,相同处理器可以使用不同低级指令来定义相同的连接操作,以通过不同的性能测量来实现相同的结果。
每个低级操作用于在相应的目标处理器上实现最佳性能,而不是例如将相同的高级操作编译到多个可用的目标处理器中的一个目标处理器上,这会导致较低的性能。每个低级操作可以针对不同的数据格式进行最佳设计,而不是例如针对通用数据格式设计相同的高级操作,这会导致较低的性能。
在110,针对每个高级操作节点或节点组(例如,子图),指定运行环境214的可用处理器216A至216C中的某个处理器。可选地,从为所指定的处理器定义的低级操作集合中指定低级操作的子集。应注意,可以同时或依次指定处理器和相关联的低级操作子集。
可选地,根据所计算的性能测量,例如,根据要求,诸如性能测量的功能,范围和/或阈值来指定处理器和/或低级操作。可选地,根据性能测量来进行指定,所述性能测量关于所述处理器对所述数据集执行各自的低级操作,并与其它处理器对所述数据集执行各自的低级操作相关联。可以指定该处理器和/或低级操作以实现特定期望的性能提升。例如,在某些情况下,成本可能是主要因素,而在其他情况下,计算时间可能是主要因素。根据数据本身的特性,指定处理器和/或低级操作,以获得数据处理时的最佳性能。
在112,根据指定的处理器和/或低级操作,装置204的编译器220组件将数据流图转换成转换的数据流图222。可选地,框110的指定操作执行的同时,执行所述转换操作。或者,依次执行框110的指定操作和所述转换操作。
编译器220将一个或多个高级操作节点转换成与高级操作节点相对应的一个或多个低级操作节点,以创建转换后的数据流图222。低级操作设计成在执行转换的数据流图222的运行环境214的处理器216A至216C中的处理器上执行。根据针对不同的可能低级运算节点(例如,具有较低的计算的性能测量值的低级操作节点)所计算的性能测量,执行每个高级操作节点(或高级操作节点组)的转换操作。可选地,根据性能测量进行转换操作,所述性能测量是根据处理器通过低级操作处理数据集来计算的。
可以针对不同的数据集执行不同的转换操作,以提高实际数据集的处理性能。通过为正在接受访问的数据库选择最佳的处理器和/或低级操作,提升了数据库管理系统(database management system,简称DBMS)和/或数据仓库(data warehouse,简称DWH)的性能。现在参考图3,图3是本发明一些实施例提供的由编译器220执行的一些可能转换操作的流程图。应注意,可以转换相同数据流图的不同部分(例如,节点或子图),以供不同处理器通过不同的低级操作执行。转换图形的部分,以提升每个转换的部分的局部性能和/或数据流图的全局性能。例如,转换图形的局部部分,以提升针对局部部分计算的性能效率测量值(例如,图灵完整复杂度)。例如,基于局部级别应用的贪心规则执行全局转换,这确保了局部转换对全局有益。
可以根据一组规则、转换算法、图形处理方法或其他方法执行转换,例如,在子图应用之前对图形转换进行有效性评估。
图形转换可以由一组API定义。
可选地,在302,通过在数据流图中插入一个或多个数据复制节点来转换数据流图(或其中的一部分)。复制节点对不同处理器的存储器之间的数据复制进行定义。例如,复制节点可以插入到指定由不同处理器执行的两个数据处理节点之间,以允许不同处理器之间对处理的数据的进行通信。
数据复制节点允许流程图表示描述不同处理器之间的数据通信的低级操作,以在不同处理器需要互相传输数据时提高性能。
可替代地或附加地,在304,通过在数据流图中插入一个或多个数据处理节点来转换数据流图(或其中的一部分)。数据处理节点定义以下中的一项:数据转换(从一种格式转换为另一种格式),对不同处理器的存储器所进行的数据分区,以及对不同处理器的存储器中的两个或两个以上的数据项所进行的连接操作。可以根据指定的低级操作和/或指定的处理器插入数据处理节点,以准备使用不同的低级操作集合和/或不同处理器进行数据的处理。
数据处理节点允许流程图表示低级操作,从而在不同处理器合作时提高性能,其中,所述低级操作描述处理涉及不同处理器之间通信的数据。
可替代地或附加地,在306,将高级操作的数据流图节点转换成包括多个低级操作的子图。替换子图具有与最初的节点相同的语义。可以执行这种转换操作,例如,将复杂的高级操作转换为多个较简单的低复杂度操作。可以基于性能效率而不是较高复杂度操作来指定该组较低复杂度操作。
可替代地或附加地,在308,将高级操作的数据流图的子图转换成表示单个低级操作的单个节点。单个节点具有与子图相同的语义。例如,当单个操作与多个操作相比提高了性能效率时,可以执行这种转换操作,以将多个操作简化为单个操作。
可替代地或附加地,在310,将高级操作的数据流图的初始子图转换成低级操作的其他子图。所述初始子图和所述转换的子图具有相同的语义。例如,当转换的方法与初始方法相比已经提升了性能效率时,可以执行子图转换来指定一种计算方法。
可替代地或附加地,在312,将高级操作的数据流图的初始节点转换成低级操作的其他节点。所述初始节点和所述转换的节点具有相同的语义。例如,当转换的节点与初始节点相比已经提升了性能效率时,可以执行节点转换来将高级操作替换为相应的低级操作。
现在参考图4,图4所示为本发明一些实施例提供的转换的数据流图的子图400的示例。初始数据流图(即,在转换之前)包括节点402、404、406、408和410。初始图描述了在节点402预处理数据的程序。在节点404处执行操作。节点404的输出由实施另一操作的节点406或实施再一操作的节点408处理。节点406和408的输出由执行另一操作的节点410合并。该转换操作在初始节点之间添加复制节点452、454、456、458和460。在节点452处,由节点402提供的数据Dj被复制到第一指定处理器的存储器。在节点404处,对复制数据Dj执行该操作。然后,输出的Dj被分发到两个不同的处理器(即,第二处理器和第三处理器),用于进行分布式处理。在节点454处,数据Dj被复制到第二处理器的存储器的数据Di中。在节点406处,对数据Di进行初始操作。在节点458处,将数据Di复制到第四处理器上的数据Dq中。在节点456处,数据Dj被复制到第三处理器的存储器上的数据Dw中。在节点408处,对数据Dw进行初始操作。在节点460处,将数据Dw复制到第四处理器上的数据Dq中。在节点410处,第四处理器将合并的数据Dq进行初始操作。
可以将初始节点402、404、406、408和410中的一个或多个转换成由指定处理器执行的低级操作的节点和/或子图。例如,初始节点406被转换成子图470,子图470包括被指定为由第二处理器执行的低级操作。应注意,子图470在语义上类似于初始节点406,对于相同的输入生成相同的结果。应注意,与初始节点407相比,子图470性能(例如,根据所测量的性能)有所提升。
此时,再参考图1。可选地,在114,编译器220迭代地对转换的数据流图222进行转换以生成转换的数据流图的更新版本。可以分析每个节点和/或子图,以进行额外的转换,如本文参考初始数据流图所作的描述。可以将每个转换的低级操作节点或节点的子图进行分析和/或转换成另一个低级操作节点或节点的子图。
迭代转换可以进一步提高性能,通过进一步分析转换后的数据流图以进行额外的转换,从而获得额外的性能提升。
在116,运行环境214执行转换的数据流图222。处理器216A至216C执行转换的数据流图222的指定部分,可选地,使用针对相应处理器定义的指定低级操作子集进行转换操作,可选地,对数据集210的关联的指定实例进行转换操作。
可选地,使用图形优化方法,例如由另一个编译器模块如现成的后端编译器模块,进一步优化转换的图。转换的图(可选地,优化的转换的图)可以由运行环境以标准方式执行,从而能与现有系统兼容。
现在参考图5,图5是本发明一些实施例提供的用于结合图2中装置204对转换的数据流图进行编译和执行的系统500的框图。系统500可以包括集成在图2的装置204中的现有的现成设备和/或代码模块。
系统500包括存储单元502,存储单元502存储数据集,例如可供执行查询的数据库,如本文所述对应于图2的数据集210。存储单元502可以有大的存储容量,其加载和/或保存数据可能很慢。
与存储单元502通信的数据存储单元504可以包括用于快速数据加载和/或存储的存储器。数据存储单元504可以由在数据集上执行操作的处理器和/或编译器快速访问。
与图2的预处理模块212对应的预处理模块512和数据存储单元502进行通信。预处理模块512访问数据存储单元502上的数据集,以基于为每个处理器定义的可用的低级操作518(对应于图2的操作集218),生成数据集的多个实例(如本文所述),其可以作为代码模块存储。生成的实例可以存储在数据存储单元502上,以便编译器和/或处理器快速访问。
系统500包括前端(front end,简称FE)编译器506,其接收写入DSL中的源代码,并将源代码解析为如本文所述的操作的数据流图表示。
后端(backend,简称BE)编译器520(其对应于图2的编译器220)接收数据流图,并且创建如本文所述的转换的数据流图。如本文所述,图形转换从高级操作执行到处理器指定的低级操作根据以下如定义的低级操作518,不一定映射到指定处理器530的预先存在的低级功能,用于执行转换操作522(如本文所述)的规则集合,根据资源分配模块524计算的性能测量以及根据图形转换模块526的标准图优化方法。
可选地,根据程序-lib关联编译转换的数据流图,并且调度转换的数据流图在与图2的运行环境214对应的运行环境514内执行。
现在参考图6A至图6D,图6A至图6D是本发明一些实施例提供的用于转换的数据集实例和/或低级指令的生成从而在不同处理器架构上提升性能的示意图。图6A至图6D描述了使用结构化查询语言(structured query language,简称SQL)编写的数据库操作,该数据库操作是在数据集的实例上执行的,从而在单指令多数据(single-instructionmultiple-data stream processing,简称SIMD)处理器(诸如图形处理器(graphicsprocessing unit,简称GPU)上执行时,与中央处理器(central processing unit,简称CPU)相比,获得提升的性能。
图6A描述SQL查询600:SELECT sum(c2)FROM t1GROUP BY c1的执行。该操作根据关键索引值来合成组,并对每个合成的组的数据求和。
操作600可以由标准CPU(如箭头602所标示)执行。未排序的数据按照索引关键值进行排序和分组。每组的数据相加。操作600可以表示为可由标准CPU执行的数据流图604。
或者,使用本文描述的系统和/或方法,操作600可以由SIMD处理器(例如,GPU)转换以执行,这与对图604的处理和/或CPU(如箭头602所标示)的处理相比可以提高性能。箭头606标示了根据索引关键值生成包括组号列的数据集的实例。可以根据组列,利用合成求和的单个可执行功能来对实例求和。转换数据流图608描述了用于由SIMD处理器执行单个功能的节点。
图6B描述了操作或执行连接操作。箭头612描述了标准CPU的性能,标准CPU搜索C2中存在的数据集C1的组件,并生成匹配的索引。数据流图614对应于箭头612所示的方法。箭头616表示数据集C2的预处理,以产生指示C2的数据是连续的统计值。基于统计值,连接操作被转换成可以通过GPU上的SIMD实现分散收集操作从而提升性能。转换的数据流图618表示在GPU上可执行的低级操作。
图6C描述了标准CPU和GPU处理SQL操作620:SELECT c_1,…,c_k FROM t1WHEREsome_pred(c_p)。其使用相同的标准过滤多个列。
箭头622和相关联的数据流图形624使用基于行存储的操作来描述标准CPU操作的性能。
箭头626和相关联的数据流图形628使用基于列存储的操作来描述标准CPU操作的性能。
箭头630和相关联的转换数据流图形632使用提升了GPU执行的预处理操作来描述操作的性能。
图6D示出了总结图6A至图6C的表格。该表具有列op(表示高级操作),预处理(描述执行什么预处理),转换类型(描述将高级操作转换为低级操作),SIMD-op(描述在GPU上实现低级操作)和MTC-op(描述CPU上实现低级操作)。
该表总结了三个高级操作连接(图6B):选择+合成(图6A)和选择(图6C),以及使用相应的低级操作在指定的处理器上实现相应的高级操作所需的预处理。
对本发明各个实施例的描述只是为了说明的目的,而这些描述并不旨在穷举或限于所公开的实施例。在不脱离所描述的实施例的范围和精神的情况下,本领域技术人员可以清楚理解许多修改和变化。相比于市场上可找到的技术,选择此处使用的术语可最好地解释本实施例的原理、实际应用或技术进步,或使本领域其他技术人员理解此处公开的实施例。
预计在从本申请走向成熟的专利的有效期期间,将开发许多相关数据集,数据流图,编译器和处理器,术语数据集,数据流图,编译器和处理器的范围旨在先验地包括所有这样的新技术。
本文所使用的术语“约”是指±10%。
术语“包括”、“包含”、“具有”以及其变化形式表示“包含但不限于”。这个术语包括了术语“由……组成”以及“主要由……组成”。
短语“主要由……组成”意指组成物或方法可以包含额外成分和/或步骤,但前提是所述额外成分和/或步骤不会实质上改变所要求的组成物或方法的基本和新颖特性。
除非上下文中另有明确说明,此处使用的单数形式“一个”和“所述”包括复数含义。例如,术语“化合物”或“至少一个化合物”可以包含多个化合物,包含其混合物。
此处使用的词“示例性的”表示“作为一个例子、示例或说明”。任何“示例性的”实施例并不一定理解为优先于或优越于其他实施例,和/或并不排除其他实施例特点的结合。
此处使用的词语“可选地”表示“在一些实施例中提供且在其他实施例中没有提供”。本发明的任意特定的实施例可以包含多个“可选的”特征,除非这些特征相互矛盾。
在整个本申请案中,本发明的各种实施例可以范围格式呈现。应理解,范围格式的描述仅为了方便和简洁起见,并且不应该被解释为对本发明范围的固定限制。因此,对范围的描述应被认为是已经具体地公开所有可能的子范围以及所述范围内的个别数值。例如,对例如从1到6的范围的描述应被认为是已经具体地公开子范围,例如从1到3、从1到4、从1到5、从2到4、从2到6、从3到6等,以及所述范围内的个别数字,例如1、2、3、4、5和6。不管范围的宽度如何,这都适用。
当此处指出一个数字范围时,表示包含了在指出的这个范围内的任意所列举的数字(分数或整数)。短语“在第一个所指示的数和第二个所指示的数范围内”以及“从第一个所指示的数到第二个所指示的数范围内”和在这里互换使用,表示包括第一个和第二个所指示的数以及二者之间所有的分数和整数。
应了解,为简洁起见在单独实施例的上下文中描述的本发明的某些特征还可以组合提供于单个实施例中。相反地,为简洁起见在单个实施例的上下文中描述的本发明的各个特征也可以单独地或以任何合适的子组合或作为本发明的任何合适的其它实施例提供。在各个实施例的上下文中描述的某些特征未视为那些实施例的基本特征,除非没有这些元素所述实施例无效。此处,本说明书中提及的所有出版物、专利和专利说明书都通过引用本说明书结合在本说明书中,同样,每个单独的出版物、专利或专利说明书也具体且单独地结合在此。此外,对本申请的任何参考的引用或识别不可当做是允许这样的参考在现有技术中优先于本发明。就使用节标题而言,不应该将节标题理解成必要的限定。
Claims (15)
1.一种用于在特定分布式处理系统中进行流图节点转换的装置,其特征在于,包括:
接口,用于接收包括多个节点的数据流图,其中,每个节点表示一种高级操作;
编译器,用于:
将至少一个高级操作节点转换为与所述至少一个高级操作相对应的至少一个低级操作节点,以创建转换的数据流图,其中,所述至少一个低级操作由执行所述转换的数据流图的运行环境的多个处理器中的一个处理器执行,所述转换操作由各自处理器根据计算出的性能测量来执行,其中,所述性能测量是针对通过所述至少一个低级操作执行所述至少一个高级操作的每个处理器进行计算得到的。
2.根据权利要求1所述的装置,其特征在于,还包括针对每个处理器所定义的低级操作集合,其中,每个集合包括多个低级操作,每个低级操作用于计算机程序处理数据变化形式,其中,所述至少一个低级操作是从与所述处理器对应的集合中选择的。
3.根据上述权利要求中任意一项所述的装置,其特征在于,所述至少一个高级操作基于由领域专用语言(domain-specific language,简称DSL)定义的抽象操作,所述领域专用语言用于写入所述计算机程序,每个高级操作可以映射到多个低级操作,从而可以由不同处理器执行。
4.根据上述权利要求中任意一项所述的装置,其特征在于,所述性能测量包括以下内容中的一项或多项:较少的计算时间,较低的计算复杂度,较少的能耗和较少的瞬时功率消耗。
5.根据上述权利要求中任意一项所述的装置,其特征在于,所述接口用于接收数据集,以便所述转换的数据流图处理所述数据集,并且所述转换操作是根据所述计算出的性能测量执行的,而所述性能测量是根据对所述数据集的处理来计算得到的。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括预处理模块,用于生成数据集的多个实例,其中,每个实例由所述多个处理器中的一个处理器通过执行至少一个低级操作进行处理。
7.根据权利要求5或6所述的装置,其特征在于,所述装置还包括预处理模块,用于根据对所述数据集的分析来生成至少一个统计值,其中,所述转换操作是根据所述至少一个统计值执行的。
8.根据权利要求5至7中任意一项所述的装置,其特征在于,所述转换操作是根据性能测量执行的,且所述性能测量关于所述处理器对所述数据集执行所述至少一个低级操作,并与其它处理器对所述数据集执行所述至少一个低级操作相关联。
9.根据上述权利要求中任意一项所述的装置,其特征在于,所述转换操作包括将至少一个数据复制节点插入到所述数据流图中,所述复制节点对不同处理器的存储器之间的数据复制进行定义。
10.根据上述权利要求中任意一项所述的装置,其特征在于,所述转换操作包括将至少一个数据处理节点插入到所述数据流图中,且每个数据处理节点对以下组中所选择的一项进行定义,该组包括:数据转换(从一种格式转换为另一种格式),对不同处理器的存储器所进行的数据分区,以及对不同处理器的存储器中的两个或两个以上的数据项所进行的连接操作。
11.根据上述权利要求中任意一项所述的装置,其特征在于,所述转换操作包括以下一项或多项操作:
将高级操作的数据流图节点转换为包括多个低级操作的子图,其中,所述子图与该节点具有相同的语义;
将高级操作的数据流图的子图转换为表示单个低级操作的单个节点,其中,所述单个节点具有与所述子图相同的语义;或
将高级操作的数据流图的第一子图转换为低级操作的第二子图,其中,所述第一子图和所述第二子图具有相同的语义。
12.根据上述权利要求中任意一项所述的装置,其特征在于,所述编译器还用于通过将转换的至少一个低级操作节点转换为另外的至少一个低级操作节点来对所述转换的数据流图进行迭代转换。
13.根据上述权利要求中任意一项所述的装置,其特征在于,所述运行环境执行所述转换的数据流图。
14.一种用于转换数据流图IR的方法,其特征在于,所述方法由上述权利要求其中一项的装置执行。
15.一种计算机程序,其特征在于,用于在计算机上执行时,运行上述方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2015/059826 WO2016177405A1 (en) | 2015-05-05 | 2015-05-05 | Systems and methods for transformation of a dataflow graph for execution on a processing system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110149801A true CN110149801A (zh) | 2019-08-20 |
Family
ID=53059100
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580079578.3A Pending CN110149801A (zh) | 2015-05-05 | 2015-05-05 | 用于在处理系统中进行数据流图转换的系统和方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110149801A (zh) |
WO (1) | WO2016177405A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110704290A (zh) * | 2019-09-27 | 2020-01-17 | 百度在线网络技术(北京)有限公司 | 日志分析方法及装置 |
CN110750265A (zh) * | 2019-09-06 | 2020-02-04 | 华中科技大学 | 一种面向图计算的高层次综合方法及系统 |
CN113438124A (zh) * | 2021-06-07 | 2021-09-24 | 清华大学 | 基于意图驱动的网络测量方法和装置 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3816800A1 (en) * | 2019-10-31 | 2021-05-05 | ABB Schweiz AG | Assignment of tasks between a plurality of devices |
EP3816793A1 (en) * | 2019-10-31 | 2021-05-05 | Siemens Aktiengesellschaft | Method, system and execution unit for deploying software components of a software |
JP2023511631A (ja) * | 2020-01-28 | 2023-03-20 | アビニシオ テクノロジー エルエルシー | 計算グラフを生成するためのエディタ |
DE112022000886T5 (de) | 2021-01-31 | 2023-12-21 | Ab Initio Technology Llc | Datenverarbeitungssystem mit manipulation logischer datensatzgruppen |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005006153A2 (en) * | 2003-07-07 | 2005-01-20 | Netezza Corporation | Sql code generation for heterogeneous environment |
CN1781092A (zh) * | 2003-03-17 | 2006-05-31 | 米特里昂尼克斯股份公司 | 数据流机 |
US20070174828A1 (en) * | 2006-01-25 | 2007-07-26 | O'brien John Kevin P | Apparatus and method for partitioning programs between a general purpose core and one or more accelerators |
US20100156888A1 (en) * | 2008-12-23 | 2010-06-24 | Intel Corporation | Adaptive mapping for heterogeneous processing systems |
CN102232212A (zh) * | 2008-12-02 | 2011-11-02 | 起元技术有限责任公司 | 在数据管理系统中映射数据集的实例 |
US20120284255A1 (en) * | 2011-05-02 | 2012-11-08 | Ian Schechter | Managing data queries |
CN103180826A (zh) * | 2010-10-25 | 2013-06-26 | 起元技术有限责任公司 | 在代表计算机程序的数据流图中管理数据集对象 |
CN103713949A (zh) * | 2012-10-09 | 2014-04-09 | 鸿富锦精密工业(深圳)有限公司 | 动态任务分配系统及方法 |
-
2015
- 2015-05-05 CN CN201580079578.3A patent/CN110149801A/zh active Pending
- 2015-05-05 WO PCT/EP2015/059826 patent/WO2016177405A1/en active Application Filing
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1781092A (zh) * | 2003-03-17 | 2006-05-31 | 米特里昂尼克斯股份公司 | 数据流机 |
WO2005006153A2 (en) * | 2003-07-07 | 2005-01-20 | Netezza Corporation | Sql code generation for heterogeneous environment |
US20070174828A1 (en) * | 2006-01-25 | 2007-07-26 | O'brien John Kevin P | Apparatus and method for partitioning programs between a general purpose core and one or more accelerators |
CN102232212A (zh) * | 2008-12-02 | 2011-11-02 | 起元技术有限责任公司 | 在数据管理系统中映射数据集的实例 |
US20100156888A1 (en) * | 2008-12-23 | 2010-06-24 | Intel Corporation | Adaptive mapping for heterogeneous processing systems |
CN103180826A (zh) * | 2010-10-25 | 2013-06-26 | 起元技术有限责任公司 | 在代表计算机程序的数据流图中管理数据集对象 |
US20120284255A1 (en) * | 2011-05-02 | 2012-11-08 | Ian Schechter | Managing data queries |
CN103713949A (zh) * | 2012-10-09 | 2014-04-09 | 鸿富锦精密工业(深圳)有限公司 | 动态任务分配系统及方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110750265A (zh) * | 2019-09-06 | 2020-02-04 | 华中科技大学 | 一种面向图计算的高层次综合方法及系统 |
CN110704290A (zh) * | 2019-09-27 | 2020-01-17 | 百度在线网络技术(北京)有限公司 | 日志分析方法及装置 |
CN110704290B (zh) * | 2019-09-27 | 2024-02-13 | 百度在线网络技术(北京)有限公司 | 日志分析方法及装置 |
CN113438124A (zh) * | 2021-06-07 | 2021-09-24 | 清华大学 | 基于意图驱动的网络测量方法和装置 |
CN113438124B (zh) * | 2021-06-07 | 2022-05-06 | 清华大学 | 基于意图驱动的网络测量方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2016177405A1 (en) | 2016-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110149801A (zh) | 用于在处理系统中进行数据流图转换的系统和方法 | |
Leymann et al. | Quantum in the cloud: application potentials and research opportunities | |
Wahib et al. | Scalable kernel fusion for memory-bound GPU applications | |
Lee et al. | Compass: A framework for automated performance modeling and prediction | |
US9383982B2 (en) | Data-parallel computation management | |
Bergstra et al. | Machine learning for predictive auto-tuning with boosted regression trees | |
US20150220315A1 (en) | Method and apparatus for compiling | |
CN110383247A (zh) | 由计算机执行的方法、计算机可读介质与异构计算系统 | |
CN105426504A (zh) | 一种基于内存计算的分布式数据分析处理方法 | |
Tohid et al. | Asynchronous execution of python code on task-based runtime systems | |
Lokuciejewski et al. | Approximating Pareto optimal compiler optimization sequences—a trade‐off between WCET, ACET and code size | |
WO2011106006A1 (en) | Optimization method and apparatus | |
Chowdhury et al. | Autogen: Automatic discovery of efficient recursive divide-8-conquer algorithms for solving dynamic programming problems | |
Gosmann et al. | Automatic optimization of the computation graph in the Nengo neural network simulator | |
Vajk et al. | Runtime model validation with parallel object constraint language | |
US20230116546A1 (en) | Method for compilation, electronic device and storage medium | |
CN115860061A (zh) | 图神经网络优化方法和图神经网络推理系统 | |
Shmeis et al. | A rewrite-based optimizer for spark | |
CN108108441A (zh) | 一种数据库表结构分析方法和系统 | |
Anderson | A framework for composing high-performance opencl from python descriptions | |
Sinaei et al. | Run-time mapping algorithm for dynamic workloads using association rule mining | |
Alhasnawy et al. | Using machine learning to predict the sequences of optimization passes | |
Unel et al. | CutLang V2: towards a unified Analysis Description Language | |
CN111061767A (zh) | 一种基于内存计算与sql计算的数据处理方法 | |
Tomiyama et al. | Automatic parameter optimization for edit distance algorithm on GPU |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190820 |
|
RJ01 | Rejection of invention patent application after publication |