产生在分布式处理系统中执行的程序的基于向量的表示技术方案

技术编号:19075732 阅读:23 留言:0更新日期:2018-09-29 17:48
提供一种用于产生在分布式处理系统上执行的代码的装置,包括:数据接口,其用于接收以高级编程语言编写的包含运算和抽象数据类型的程序的表示;处理器;以及存储器,其存储向量化代码。所述向量化代码包括以下代码:用于将抽象数据类型映射到表示某一数据类型的元素集合的索引集合数据类型的指令,其中所述元素集合中的每一个元素可由索引接入。用于基于所述索引集合数据类型将每一运算转换成基于向量的形式以创建所述程序的基于向量的表示的指令。以及用于向低级语言的应用程序编程接口提供所述基于向量的表示以通过分布到分布式处理执行环境的计算节点来执行向量表示的指令。

【技术实现步骤摘要】
【国外来华专利技术】产生在分布式处理系统中执行的程序的基于向量的表示
本专利技术在它的一些实施例中涉及用于产生在分布式处理系统中执行的程序实现的系统和方法,并且更具体地但非排他性地说,涉及用于优化用于在分布式处理系统内执行的程序的实现的系统和方法。
技术介绍
某些计算问题需要分布式处理框架(DistributedProcessingFramework,DPF)来执行。执行此类计算的程序可能无法在单个计算节点上运行,例如,由于单个节点的有限内存和/或有限处理资源。在许多情况下,利用多个处理节点的处理和/或内存资源,在分布式处理系统内执行程序。DPF通常向烧录器提供数个特定领域(例如,线性代数、图形处理)的库。使用库提供的抽象领域专用对象减轻了烧录器要处理低级细节的必须性,从而使得程序更容易写入。然而,烧录器产率和程序在分布式处理系统中执行时的性能之间存在权衡。提升写入程序的抽象等级会产生额外的低级实现开销,这在执行程序时可能会产生性能损失。此外,所执行的分布式应用程序的性能等级是基于烧录器针对高级领域对象的实现而选择适当的数据结构。然而,实际上,烧录器很难知道针对特定使用情况何时使用哪一数据结构来获得最佳性能。例如,对于算法处理矩阵,何时选择稀疏矩阵表示以及何时选择密集矩阵表示。实际上,DPF在它们用于允许烧录器接入分布式处理系统的能力方面具有显著的局限性。这种约束起因于DPF所支持的编程模型。烧录器需要手动绕过这些局限性,这可能较为困难且费时,和/或产生在分布式处理系统中无法有效执行的程序。
技术实现思路
本专利技术的目标在于提供一种用于创建在分布式处理系统内执行的程序表示的低级实现的装置、系统、计算机程序产品和方法。前述目标和其它目标通过独立权利要求的特征实现。其它实施形式根据从属权利要求、说明书以及图式是显而易见的。根据第一方面,用于产生在分布式处理系统上执行的代码的装置包括:用于接收以高级编程语言编写的程序的表示的数据接口,所述程序表示包含运算,所述程序表示包含抽象数据类型;以及存储向量化代码的存储器;以及耦合到数据接口和存储器以执行向量化代码的处理器,所述向量化代码包括:用于将抽象数据类型中的每一个映射到索引集合数据类型中的至少一个的代码指令,其中索引集合数据类型中的每一个表示某一数据类型的元素集合,其中元素集合中的每一个元素可由索引接入;基于索引集合数据类型,将每一运算转换成基于向量的形式,以创建程序的基于向量的表示;向低级语言的应用程序编程接口(applicationprogramminginterface,API)提供程序的基于向量的表示,以通过分布到分布式处理执行环境的计算节点来执行基于向量的程序表示。抽象数据类型映射到索引集合数据类型中的至少一个以及基于索引集合数据类型将每一运算转换成基于向量的形式以创建基于向量的表示使得烧录器能够写入分布式程序,所述分布式程序包含嵌套数据并行(例如,分布的分布)。向量类似物允许以分布式方式执行程序的运算,而不是将存储在不同节点中的数据收集到主节点(主节点可能没有足够的内存来存储所有所收集的数据),在主节点处的所收集的数据上执行运算,并将结果重新分布到相应的节点。在根据第一方面的装置的第一可能实施方案中,装置进一步包括用于基于索引集合数据类型,用向量类似物转换索引集合数据类型等级处的程序表示的嵌套数据并行运算的代码指令。装置删除烧录器编写的嵌套数据并行代码,并用可由分布式系统执行的向量类似物代替它。在同样根据第一方面或根据第一方面的先前实施形式中的任一个的装置的第二可能实施形式中,程序表示的抽象数据类型是基于阶层式数据结构,其中相对较高抽象等级的每一数据类型是基于相对较低抽象等级的至少一个数据类型,其中索引集合数据类型在阶层式数据结构底部。阶层式数据结构通过允许在每一抽象等级(例如,依序)执行优化来提高程序的执行性能。可转换成向量表示的索引集合位于阶层结构的底部,从而允许在到达索引集合等级之前进行优化,这提高了程序的执行性能。在同样根据第一方面或根据第一方面的先前实施形式中的任一个的装置的第三可能实施形式中,装置进一步包括用于将基于抽象数据类型的阶层式数据结构表示的当前等级的抽象数据类型的当前抽象等级的程序指令的中间表示(intermediaterepresentation,IR)依序转换成基于阶层式数据结构的一个较低抽象等级的数据类型的一个较低抽象等级的程序指令的IR的代码指令。每一IR可在转换到下一较低抽象等级之前在它的相应等级处进行优化,从而提高最低等级处的最终程序的整体执行性能,所述最终程序在运行环境中执行。在根据第一方面的先前第三实施形式的装置的第四可能实施形式中,数据接口进一步用于接收输入值以供当前抽象等级处的程序的IR的指令集处理;并且装置进一步包括用于从同构特化中选择当前抽象等级处的程序的IR的指令集的同构特化以使用基于向量的形式处理输入值的代码指令,所述选择基于在处理IR的基于向量的表示时的同构特化中的每一个的性能指标;其中基于比当前抽象等级低的一个抽象等级处的抽象数据类型,每一同构特化具有不同实现,其中每一同构特化在处理输入值时产生相同结果。基于实际接收输入,每一抽象等级的同构特化的动态选择提高了分布环境中程序的执行性能。每一等级可基于实际输入进行动态优化,从而提高在分布环境中执行的最低等级的程序的性能。在同样根据第一方面或根据第一方面的先前实施形式中的任一个的装置的第五可能实施形式中,装置进一步包括编译程序,所述编译程序用于依序向每一抽象等级处的程序的每一IR应用程序指令优化。优化可在每一抽象等级处执行,从而提高程序的整体性能。在同样根据第一方面或根据第一方面的先前实施形式中的任一个的装置的第六可能实施形式中,装置进一步包括用于根据创建可通过分布式处理执行环境计算的指令的向量形式的一组预定义向量化规则,基于索引集合数据类型映射程序表示的IR的指令的代码指令。向量形式使得分布式处理执行环境中的程序的执行性能提高。在同样根据第一方面或根据第一方面的先前实施形式中的任一个的装置的第七可能实施形式中,在不需将数据收集到主节点和重新分布结果的情况下计算向量形式。向量形式允许运算被分布到不同节点,而不是需要将数据收集到主节点并重新分布结果,从而使得分布式处理执行环境中的程序的执行性能提高。在同样根据第一方面或根据第一方面的先前实施形式中的任一个的装置的第八可能实施形式中,程序的IR包含数据流图,所述数据流图包括表示基于索引集合数据类型的程序表示的运算的至少一个节点;并且装置进一步包括用于将至少一个节点中的每一个转换成指令的向量形式以创建用于在分布式处理执行环境中执行的变换后的数据流图的代码指令。变换后的数据流图在分布式执行环境中的执行性能可提高。在同样根据第一方面或根据第一方面的先前实施形式中的任一个的装置的第九可能实施形式中,高级编程语言是领域专用语言(domainspecificlanguage,DSL),其中抽象数据类型表示具有多个低级分布实现的分布领域抽象,DSL语言不会定义某一低级分布实现。使用DSL允许烧录器使用高级抽象写入程序,所述程序可映射到较低等级语言并在分布式环境中以高性能级(即,在从源代码的高级抽象映射到低级指令以供分布式系统执行时,未本文档来自技高网...

【技术保护点】
1.一种用于产生在分布式处理系统上执行的代码的装置,其特征在于,包括:数据接口,其用于接收以高级编程语言编写的程序的表示,所述程序表示包含运算,所述程序表示包含抽象数据类型;存储器,其存储向量化代码;以及处理器,其耦合到所述数据接口和所述存储器以执行所述向量化代码,所述向量化代码包括:用于将所述抽象数据类型中的每一个映射到索引集合数据类型中的至少一个的代码指令,其中所述索引集合数据类型中的每一个表示某一数据类型的元素集合,其中所述元素集合中的每一个元素能够由索引接入;基于所述索引集合数据类型,将每一运算转换成基于向量的形式以创建所述程序的基于向量的表示;向低级语言的应用程序编程接口(application programming interface,API)提供所述程序的所述基于向量的表示,以通过分布到分布式处理执行环境的计算节点来执行所述基于向量的程序表示。

【技术特征摘要】
【国外来华专利技术】1.一种用于产生在分布式处理系统上执行的代码的装置,其特征在于,包括:数据接口,其用于接收以高级编程语言编写的程序的表示,所述程序表示包含运算,所述程序表示包含抽象数据类型;存储器,其存储向量化代码;以及处理器,其耦合到所述数据接口和所述存储器以执行所述向量化代码,所述向量化代码包括:用于将所述抽象数据类型中的每一个映射到索引集合数据类型中的至少一个的代码指令,其中所述索引集合数据类型中的每一个表示某一数据类型的元素集合,其中所述元素集合中的每一个元素能够由索引接入;基于所述索引集合数据类型,将每一运算转换成基于向量的形式以创建所述程序的基于向量的表示;向低级语言的应用程序编程接口(applicationprogramminginterface,API)提供所述程序的所述基于向量的表示,以通过分布到分布式处理执行环境的计算节点来执行所述基于向量的程序表示。2.根据权利要求1所述的装置,其特征在于,进一步包括用于基于所述索引集合数据类型用向量类似物转换索引集合数据类型等级处的所述程序表示的嵌套数据并行运算的代码指令。3.根据权利要求1或权利要求2所述的装置,其特征在于,所述程序表示的所述抽象数据类型是基于阶层式数据结构,其中相对较高抽象等级的每一数据类型是基于相对较低抽象等级的至少一个数据类型,其中所述索引集合数据类型在所述阶层式数据结构的底部。4.根据先前权利要求中任一项所述的装置,其特征在于,进一步包括用于将基于抽象数据类型的阶层式数据结构表示的当前等级的抽象数据类型的当前抽象等级处的所述程序指令的中间表示(intermediaterepresentation,IR)依序转换成基于所述阶层式数据结构的一个较低抽象等级的数据类型的一个较低抽象等级处的所述程序指令的IR的代码指令。5.根据权利要求4所述的装置,其特征在于,所述数据接口进一步用于接收输入值以供所述当前抽象等级处的所述程序的所述IR的指令集处理;所述装置进一步包括用于从同构特化中选择所述当前抽象等级处的所述程序的所述IR的所述指令集的同构特化以使用所述基于向量的形式处理所述输入值的代码指令,所述选择基于在处理所述...

【专利技术属性】
技术研发人员:亚历山大·尼古拉耶维奇·菲利波夫亚历山大·弗拉基米罗维奇·斯莱萨连科维克多·弗拉基米罗维奇·斯米尔诺夫
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1