[发明专利]数据并行操作中的次序保留有效
| 申请号: | 200880022282.8 | 申请日: | 2008-06-16 |
| 公开(公告)号: | CN101689125A | 公开(公告)日: | 2010-03-31 |
| 发明(设计)人: | J·J·达菲;D·卡拉汉;E·G·埃塞 | 申请(专利权)人: | 微软公司 |
| 主分类号: | G06F9/46 | 分类号: | G06F9/46 |
| 代理公司: | 上海专利商标事务所有限公司 | 代理人: | 顾嘉运;钱静芳 |
| 地址: | 美国华*** | 国省代码: | 美国;US |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 数据 并行 操作 中的 次序 保留 | ||
背景
软件程序从软件开发开始的日子起就可被编写来顺序地运行。计算机随时 间不断变得更加强大,具有更多的处理能力和存储器来处理高级操作。这一趋 势最近从日益增长的单处理器时钟速率移开,并趋向于增加单个计算机中可用 处理器的数量,即,从顺序执行移开并趋向于并行执行。软件开发者想要利用 计算机处理能力上的改进,以允许他们的软件程序在采用新硬件时更快地运 行。然而,对于并行硬件,这要求不同的方法:开发者必须安排特定软件程序 的一个或多个任务并行地(有时称为“并发”)执行,以使同一逻辑操作可以 同时利用多个处理器,并在向该软件在其上运行的计算机添加更多处理器时提 供更好的性能。
在并行化预先编写的顺序算法时,通常需要保留尽可能多的之前的顺序程 序行为。然而,现有顺序逻辑的典型并行执行引入了新的行为特征且带来了可 能对从顺序到并行算法的迁移引入挑战的问题。此外,此类问题可表示对不可 协商顺序行为的改变以禁止迁移到一起也是可能的。此类问题的一个类别是通 过序数位置或通过基于程序员所指定的键选择逻辑生成的键来保留数据定序。
作为例示,设想程序员编写此程序文本,此程序文本使用语言集成查询综 合作为表示数据并行计算的方式:
int[]A=...生成某些感兴趣的输入...;
Array.Sort(A);//原地排序‘A’
int[]B=(从A中的x选择x*x).ToArray();
该顺序算法简单地依靠其结果被分配给‘B’的查询的顺序求值来为‘B’ 中的输出元素保留‘A’中的元素之间的相对顺序。如果查询综合使用典型的 数据并行执行来并行地运行,则元素之间的相对顺序可能变得杂乱。作为示例, 设想‘A’包含元素{0,1,2,3},程序员将可能期望在执行后‘B’包含{0,1, 4,9}。此问题可一般地应用到所有数据并行操作,而不仅是查询综合。
概述
公开了用于在数据并行操作中保留次序的各种技术和方法。重写数据并行 操作的复杂组合(例如,树)以包含引入分区和合并的数据并行操作。分区允 许每一分区并行地处理输入的不相交的子集,且之后结果被合并回输出的一个 集合以供消费。系统确保直接或间接地消费次序建立操作的输出的操作记住必 要的定序信息,以便合并操作可使用取决于操作所在的类别而变化的技术来保 留次序。
在一个实现中,通过执行各种步骤而将输入元素的定序保留在数据并行操 作中。支持两种类型的定序:基于键的和基于序数的。两者都通过使用次序键 来建模:在前者中,通过对输入元素应用编程者指定的键选择函数来生成次序 键,而在后者中,通过提取序数元素位置来生成次序键(例如,在数据源是具 有索引的数组的情况下)。首先,分析包括单独的数据并行操作的复杂操作以 使用各自的类别来标记数据源中的每一操作。在一个实现中,对本讨论重要的 两个类别是:物理重新定序,其中操作可扰乱元素之间现有的定序(物理地); 以及逻辑重新定序,其中操作包含元素上的所有之前的定序约束以支持新定 序。逻辑重新定序操作通常也是物理重新定序,但不必是物理重新定序。如果 复杂操作中没有组成操作处于物理或逻辑重新定序类别中,则如果次序重要的 话,那么输入数据元素的次序键被简单地记住,以便其可在合并步骤期间被使 用。如果一个或多个操作处于物理重新定序类别中,则必须在重新定序期间传 播次序键,以便其可在合并步骤期间被恢复,且合并步骤必须执行排序以重新 建立正确的分区内定序。如果一个或多个操作处于逻辑重新定序类别中,则最 接近合并的操作负责提供重构合并操作的次序所需的次序键信息。如果存在多 个逻辑重新定序操作,仅最接近合并的操作对直接或间接消费其输出的物理重 新定序操作施加上述要求。随后使用通过次序键对元素进行排序的各种技术中 的一个来执行最终的合并过程以生成最终的有序集。
提供本概述以便以简化形式介绍将在以下详细描述中进一步描述的一些 概念。本概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在 用于帮助确定所要求保护的主题的范围。
附图简述
图1是一个实现的计算机系统的图示。
图2是在图1的计算机系统上操作的一个实现的并行操作次序保留应用程 序的图示。
图3是图1的系统的一个实现的高级过程流程图。
图4是图1的系统的一个实现的过程流程图,其示出在数据并行操作中保 留现有元素位置所涉及的高级阶段。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软公司,未经微软公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200880022282.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:图像再现装置
- 下一篇:用于分布式文件系统的高效更新
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置





