数据的并行处理的制作方法
【专利说明】
[0001]分案申请说巧
[0002] 本申请是国际申请日为2011年5月4日、于2012年12月28日进入中国国家阶 段的、申请号为201180032739. 5、名称为"数据的并行处理"的中国发明专利申请的分案申 请。
技术领域
[0003] 本公开内容设及数据的并行处理。
【背景技术】
[0004] 大规模数据处理可W包括并行处理,并行处理总体上设及到对大数据集的每个元 素执行某一操作。各种操作可W在数据并行流水线中链接在一起W创建用于处理数据集的 局效机制。
【发明内容】
[0005] 在一个方面中,在包括一个或者多个处理模块并且提供本机处理环境的数据中屯、 接收非置信应用。非置信应用包括数据并行流水线。数据并行流水线指定包含多个元素的 多个并行数据对象和与对元素操作的非置信函数相关联的多个并行操作。在本机处理环境 中并且在处理模块中的一个或者多个处理模块上实例化第一安全处理环境。在第一安全处 理环境中执行非置信应用。执行应用生成与数据并行流水线对应的延缓的并行数据对象和 延缓的并行操作的数据流图形。在第一安全处理环境W外传达代表数据流图形的信息。在 第一安全处理环境W外并且在本机处理环境中,将一个或者多个图形变换应用于代表数据 流图形的信息W生成修正的数据流图形,修正的数据流图形包括与非置信函数中的一个或 者多个非置信函数相关联的、延缓的并行数据对象和延缓的组合并行数据操作中的一个或 者多个延缓的并行数据对象和延缓的组合并行数据操作。执行延缓的组合并行操作W产生 与延缓的并行数据对象对应的具体化的并行数据对象。执行延缓的组合并行操作包括:在 本机处理环境中并且在处理模块中的一个或者多个处理模块上实例化一个或者多个第二 安全处理环境;并且在一个或者多个第二安全处理环境中执行与延缓的组合并行操作相关 联的非置信函数。
[0006] 实现方式可W包括W下特征中的一个或者多个特征。例如,第一安全处理环境可 W包括第一虚拟机,并且一个或者多个第二安全处理环境可W包括第二虚拟机。第一虚拟 机和一个或者多个第二虚拟机可W是硬件虚拟机。在一个或者多个第二安全处理环境中执 行与延缓的组合并行操作相关联的非置信函数可W包括:从第二安全处理环境W外向第二 安全处理环境中传达输入批处理记录,输入批处理记录包括多个个别输入记录;对输入批 处理中的个别记录中的每个记录执行与延缓的组合并行操作相关联的非置信函数中的至 少一个非置信函数W生成输出记录;将输出记录汇集成输出批处理;并且在第二安全处理 环境W外传达输出批处理。
[0007] 可朗尋非置信应用的输出发送到向数据中屯、发送非置信应用的客户端系统。在第 一安全处理环境W外传达代表数据流图形的信息可W包括向在第一安全处理环境W外的 执行图形服务传达代表数据流图形的信息。
[0008] 延缓的组合并行数据操作可W包括至少一个广义映射精简操作。广义映射精简操 作可W包括多个并行映射操作和多个并行精简操作并且可转译成单个映射精简操作,单个 映射精简操作包括用于实施多个并行映射操作的单个映射函数和用于实施多个并行精简 操作的单个精简函数。单个映射函数和单个精简函数可W包括非置信函数中的一个或者多 个非置信函数。
[0009] 执行延缓的组合并行操作可W包括将组合映射精简操作转译成单个映射精简操 作。在一个或者多个第二安全处理环境中执行与延缓的组合并行操作相关联的非置信函数 可W包括在一个或者多个第二安全处理环境中执行单个映射函数和单个精简函数。
[0010] 在安全处理环境中执行非置信应用可W包括在第一安全处理环境中的虚拟机内 执行非置信应用。在一个或者多个安全处理环境中执行与延缓的组合并行操作相关联的非 置信函数可W包括在一个或者多个第二安全处理环境内的虚拟机中执行与延缓的组合并 行操作相关联的非置信函数。
[0011] 在第一安全处理环境W外传达代表数据流图形的信息可W包括使用远程过程调 用在第一安全处理环境W外传达代表数据流图形的信息。可W审核远程过程调用。
[0012] 在另一方面中,一种系统包括:一个或者多个处理模块,配置成提供本机处理环境 并且实施在本机处理环境中的第一安全处理环境、位于第一安全处理环境W外并且在本机 处理环境中的服务W及在本机处理环境中的一个或者多个第二安全处理环境。
[0013] 第一安全处理环境被配置成执行包括数据并行流水线的非置信应用。数据并行流 水线指定包含多个元素的多个并行数据对象和与对元素操作的非置信函数相关联的多个 并行操作。执行应用生成与数据并行流水线对应的延缓的并行数据对象和延缓的并行操作 的数据流图形。第一安全处理环境也被配置成在第一安全处理环境W外传达代表数据流图 形的信息
[0014] 服务被配置成:从第一安全处理环境接收代表数据流图形的信息;将一个或者多 个图形变换应用于代表数据流图形的信息W生成修正的数据流图形,修正的数据流图形包 括与非置信函数中的一个或者多个非置信函数相关联的、延缓的并行数据对象和延缓的组 合并行数据操作中的一个或者多个延缓的并行数据对象和延缓的组合并行数据操作;并且 引起执行延缓的组合并行操作W产生与延缓的并行数据对象对应的具体化的并行数据对 象。
[0015] 一个或者多个第二安全处理环境被配置成执行与延缓的组合并行操作相关联的 非置信函数W造成执行延缓的组合并行操作。
[0016] 实现方式可W包括W下特征中的一个或者多个特征。例如,第一安全处理环境可 W包括第一虚拟机,并且一个或者多个第二安全处理环境可W包括第二虚拟机。第一虚拟 机和一个或者多个第二虚拟机可W是硬件虚拟机。
[0017] 一个或者多个处理设备可W被配置成实施工作器,工作器被配置成从第二安全处 理环境W外向第二安全处理环境中传达输入批处理记录。输入批处理记录可W包括多个个 别输入记录。为了执行与延缓的组合并行操作相关联的非置信函数,一个或者多个第二安 全处理环境可w被配置成:对输入批处理中的个别记录中的每个记录执行与延缓的组合并 行操作相关联的非置信函数中的至少一个非置信函数W生成输出记录;将输出记录汇集成 输出批处理;并且向工作器传达输出批处理。
[0018] 该系统可W包括配置成接收非置信应用的输出的客户端系统。延缓的组合并行数 据操作可W包括至少一个广义映射精简操作。广义映射精简操作可W包括多个并行映射操 作和多个并行精简操作并且可转译成单个映射精简操作,单个映射精简操作包括用于实施 多个并行映射操作的单个映射函数和用于实施多个并行精简操作的单个精简函数。单个映 射函数和单个精简函数可W包括非置信函数中的一个或者多个非置信函数。
[0019] 服务可W被配置成将组合映射精简操作转译成单个映射精简操作。一个或者多个 第二安全处理环境可W被配置成在一个或者多个第二安全处理环境中执行单个映射函数 和单个精简函数。
[0020] 第一安全处理环境可W被配置成在第一安全处理环境中的虚拟机内执行非置信 应用。一个或者多个第二安全处理环境内可W被配置成在一个或者多个第二安全处理环境 内的虚拟机中执行与延缓的组合并行操作相关联的非置信函数。
[0021] 在另一方面中,访问代表延缓的并行数据对象和延缓的并行操作的数据流图形的 信息。延缓的并行数据对象和延缓的并行操作对应于由非置信应用中包括的数据并行流水 线指定的并行数据对象和并行操作。并行数据对象包含多个元素,并且并行操作与对元素 操作的非置信函数相关联。将一个或者多个图形变换应用于代表数据流图形的信息W生成 修正的数据流图形,修正的数据流图形包括与非置信函数中的一个或者多个非置信函数相 关联的、延缓的并行数据对象和延缓的组合并行数据操作中的一个或者多个延缓的并行数 据对象和延缓的组合并行数据操作。执行延缓的组合并行操作W产生与延缓的并行数据对 象对应的具体化的并行数据对象。执行延缓的组合并行操作包括:实例化一个或者多个安 全处理环境;并且在一个或者多个安全处理环境中执行与延缓的组合并行操作相关联的非 置信函数。
[0022] 可W接收包括数据并行流水线的非置信应用,并且可W实例化初始安全处理环 境。可W在初始安全处理环境中执行非置信应用。执行应用可W生成延缓的并行数据对象 和延缓的并行操作的数据流图形。可W在初始安全处理环境W外传达代表数据流图形的信 息,从而使得图形变换在初始安全处理环境W外应用于代表数据流图形的信息。一个或者 多个安全处理环境可W包括虚拟机。
[0023] 在另一方面中,一种系统包括一个或者多个处理设备和一个或者多个存储设备。 存储设备存储在由一个或者多个处理设备执行时实施应用、评价器、优化器和执行器的指 令。应用包括数据并行流水线。数据并行流水线指定包含多个元素的多个并行数据对象和 对并行数据对象操作的多个并行操作。评价器基于数据并行流水线被配置成生成与数据并 行流水线对应的延缓的并行数据对象和延缓的并行操作的数据流图形。
[0024] 延缓的并行数据对象例如可W是包括指针的数据结构,指针指向对并行数据对象 而不是对在并行数据对象中存储的元素操作的并行数据操作。延缓的并行操作例如可W 是数据结构,该数据结构包括指向并行数据对象的指针、指向延缓的并行对象的指针和将 (但是尚未)对输入对象执行的函数,并行数据对象是向延缓的并行操作的输入,延缓的并 行对象是延缓的并行操作的输出。
[0025] 优化器被配置成将一个或者多个图形变换应用于数据流图形W生成修正的数据 流图形,修正的数据流图形包括延缓的并行数据对象和延缓的组合并行数据操作中的一个 或者多个延缓的并行数据对象和延缓的组合并行数据操作。执行器被配置成执行延缓的组 合并行操作W产生与延缓的并行数据对象对应的具体化的并行数据对象。具体化的并行数 据对象例如可W是包括并行数据对象的数据或者元素的数据结构。
[0026] 运一方面的实现方式可W包括W下特征中的一个或者多个特征。例如,延缓的组 合并行数据操作可W包括至少一个广义映射精简操作。广义映射精简操作可W包括多个并 行映射操作和多个并行精简操作并且可转译成单个映射精简操作,单个映射精简操作包括 用于实施多个并行映射操作的单个映射函数和用于实施多个并行精简操作的单个精简函 数。为了执行广义映射精简操作,执行器可W被配置成将组合映射精简操作转译成单个映 射精简操作并且执行单个映射精简操作。为了执行单个映射精简操作,执行器可W被配置 成确定是否执行单个映射精简操作作为本地顺序操作或者远程并行操作。为了将广义映射 精简操作转译成单个映射精简操作,执行器可W被配置成生成包括多个映射操作的映射函 数和包括多个精简器操作的精简器函数。
[0027] 多个并行数据对象可W是主机编程语言的第一类对象。
[0028] 流水线还可W包括单个数据对象,单个数据对象包含单个元素,并且数据流图形 包括对应的延缓的单个数据对象。流水线中的多个并行操作中的至少一个并行操作可W对 单个数据对象和多个并行数据对象中的一个并行数据对象操作,并且数据流图形可W包括 对延缓的单个数据对象和延缓的并行数据对象操作的对应的延缓的并行操作。
[0029] 执行器可W被配置成高速缓存执行延缓的组合并行操作的一个或者多个结果W 用于在数据并行流水线的将来执行中使用。
[0030] 在另一方面中,一种方法包括执行包括数据并行流水线的应用。数据并行流水线 指定包含多个元素的多个并行数据对象和对并行数据对象操作的多个并行操作。该方法还 包括基于数据并行流水线生成与数据并行流水线对应的延缓的并行数据对象和延缓的并 行操作的数据流图形。延缓的并行数据对象例如可W是包括指针的数据结构,该指针指向 对并行数据对象而不是对在并行数据对象中存储的元素操作的并行数据操作。延缓的并行 操作例如可W是数据结构,该数据结构包括指向并行数据对象的指针、指向延缓的并行对 象的指针和将(但是尚未)对输入对象执行的函数,并行数据对象是向延缓的并行操作的 输入,延缓的并行对象是延缓的并行操作的输出。
[0031] 该方法也包括将一个或者多个图形变换应用于数据流图形W生成修正的数据流 图形,修正的数据流图形包括延缓的并行数据对象和延缓的组合并行数据操作中的一个或 者多个延缓的并行数据对象和延缓的组合并行数据操作。此外,该方法还包括执行延缓的 组合并行操作W产生与延缓的并行数据对象对应的具体化的并行数据对象。具体化的并行 数据对象例如可W是包括并行数据对象的数据或者元素的数据结构。
[0032] 运一方面的实现方式可W包括W下特征中的一个或者多个特征。例如,延缓的组 合并行数据操作可W包括至少一个广义映射精简操作。广义映射精简操作可W包括多个并 行映射操作和多个并行精简操作并且可转译成单个映射精简操作,单个映射精简操作包括 用于实施多个并行映射操作的单个映射函数和用于实施多个并行精简操作的单个精简函 数。执行广义映射精简操作可W包括将组合映射精简操作转译成单个映射精简操作并且执 行单个映射精简操作。执行单个映射精简操作可w包括确定是否执行单个映射精简操作作 为本地顺序操作或者远程并行操作。将广义映射精简操作转译成单个映射精简操作可W包 括生成包括多个映射操作的映射函数和包括多个精简器操作的精简器函数。
[0033] 多个并行数据对象可W是主机编程语言的第一类对象。
[0034] 流水线还可W包括单个数据对象,单个数据对象包含单个元素,并且数据流图形 包括对应的延缓的单个数据对象。流水线中的多个并行操作中的至少一个并行操作可W对 单个数据对象和多个并行数据对象中的一个并行数据对象操作,并且数据流图形可W包括 对延缓的单个数据对象和延缓的并行数据对象操作的对应的延缓的并行操作。
[0035] 该方法可W包括高速缓存执行延缓的组合并行操作的一个或者多个结果W用于 在数据并行流水线的将来执行中使用。
[0036] 在另一方面中,一种系统包括一个或者多个处理设备和一个或者多个存储设备。 存储设备存储在由一个或者多个处理设备执行时实施执行器的指令。执行器被配置成访问 包括延缓的并行数据对象和延缓的组合并行数据操作的数据流图形。延缓的并行数据对象 例如可W是包括指针的数据结构,该指针指向对并行数据对象而不是对在并行数据对象中 存储的元素操作的并行数据操作。延缓的并行操作例如可W是数据结构,该数据结构包括 指向并行数据对象的指针、指向延缓的并行对象的指针和将(但是尚未)对输入对象执行 的函数,并行数据对象是向延缓的并行操作的输入,延缓的并行对象是延缓的并行操作的 输出。
[0037] 执行器被配置成执行延缓的组合并行操作W产生与延缓的并行数据对象对应的 具体化的并行数据对象。具体化的并行数据对象例如可W是包括并行数据对象的数据或者 元素的数据结构。针对延缓的组合并行操作中的至少一个延缓的组合并行操作,执行器被 配置成通过W下操作来执行至少一个延缓的组合并行操作:确定与至少一个延缓的组合并 行操作相关联的数据的估计的大小;确定估计的大小是否超过阔值大小;如果估计的大小 在阔值大小W下,则执行至少一个延缓的组合并行操作作为本地顺序操作;并且如果估计 的大小超过阔值大小,则执行至少一个延缓的组合并行操作作为远程并行操作。
[0038] 运一方面的实现方式可W包括W下特征中的一个或者多个特征。例如,与至少一 个延缓的组合并行操作相关联的数据可W包括用于至少一个延缓的组合并行操作的输入 数据、由至少一个延缓的组合并行操作产生的中间数据或者由至少一个延缓的组合并行操 作产生的输出数据中的一种或者多种数据。至少一个延缓的组合并行数据操作可W是广义 映射精简操作。广义映射精简操作可W包括多个并行映射操作和多个并行精简操作并且可 转译成单个映射精简操作,单个映射精简操作包括用于实施多个并行映射操作的单个映射 函数和用于实施多个并行精简操作的单个精简函数。为了执行广义映射精简操作,执行器 可W被配置成将组合映射精简操作转译成单个映射精简操作并且执行单个映射精简操作。 为了执行单个映射精简操作作为远程并行操作,执行器可W被配置成使单个映射精简操作 在数据中屯、中的多个不同处理模块上被复制和执行。为了将广义映射精简操作转译成单个 映射精简操作,执行器可W被配置成生成包括多个映射操作的映射函数和包括多个精简器 操作的精简器函数。为了确定估计的大小,执行器可W被配置成访问数据流图形中的注释, 注释反映与至少一个延缓的组合并行操作相关联的数据的大小的估计。
[0039] 在另一方面中,一种方法包括访问包括延缓的并行数据对象和延缓的组合并行数 据操作的数据流图形。延缓的并行数据对象例如可w是包括指针的数据结构,该指针指向 对并行数据对象而不是对在并行数据对象中存储的元素操作的并行数据操作。延缓的并行 操作例如可W是数据结构,该数据结构包括指向并行数据对象的指针、指向延缓的并行对 象的指针和将(但是尚未)对输入对象执行的函数,并行数据对象是向延缓的并行操作的 输入,延缓的并行对象是延缓的并行操作的输出。
[0040] 该方法也包括执行延缓的组合并行操作W产生与延缓的并行数据对象对应的具 体化的并行数据对象。具体化的并行数据对象例如可W是包括并行数据对象的数据或者元 素的数据结构。针对延缓的组合并行操作中的至少一个延缓的组合并行操作,执行至少一 个延缓的组合并行操作包括:确定与至少一个延缓的组合并行操作相关联的数据的估计的 大小;确定估计的大小是否超过阔值大小;如果估计的大小在阔值大小W下,则执行至少 一个延缓的组合并行操作作为本地顺序操作;并且如果估计的大小超过阔值大小,则执行 至少一个延缓的组合并行操作作为远程并行操作。
[0041] 运一方面的实现方式可W包括W下特征中的一个或者多个特征。例如,与至少一 个延缓的组合并行操作相关联的数据可W包括用于至少一个延缓的组合并行操作的输入 数据、由至少一个延缓的组合并行操作产生的中间数据或者由至少一个延缓的组合并行操 作产生的输出数据中的一种或者多种数据。至少一个延缓的组合并行数据操作可W是广义 映射精简操作。广义映射精简操作可W包括多个并行映射操作和多个并行精简操作并且可 转译成