当前位置: 首页 > 专利查询>微软公司专利>正文

使用事务来并行化顺序框架制造技术

技术编号:4610390 阅读:191 留言:0更新日期:2012-04-11 18:40
公开了用于将顺序循环转换成并行循环以与事务存储器系统一起使用的各种技术和方法。可以将开放和/或封闭顺序循环转换成并行循环。例如,分析包含原始顺序循环的一部分代码以确定该原始顺序循环的固定迭代次数。将原始顺序循环转换成可生成数量等于该固定迭代次数的事务的并行循环。作为另一示例,可以将开放顺序循环转换成生成包含推测流水线的每一迭代的相应工作项的单独事务的并行循环。并行循环随后使用事务存储器系统来执行,其中各单独事务中的至少某一些在不同的线程上执行。

【技术实现步骤摘要】
【国外来华专利技术】使用事务来并行化顺序框架 背景软件事务存储器(STM)是类似于数据库事务的、用于在并发计算中 控制对共享存储器的访问的并发控制机制。事务存储器的上下文中的事务是执行对共享存储器的一系列读取和写入的一段代码。STM用作传统锁定 机制的替换。程序员在代码块周围放置声明性注释(例如,原子的)以指 示这些代码块所需要的安全特性,并且系统自动保证该块相对于其它受保 护的代码区域原子地执行。软件事务存储器编程模型防止了基于锁的优先 级倒置和死锁问题。虽然典型的STM系统具有许多优点,但它们仍然需要程序员仔细地避 免非预期的存储器访问排序。例如,在典型的STM环境中提交事务(即, 提交处理)的次序是不受约束的。各事务彼此竞争提交,这意味着事务1 是在事务2之前还是之后提交通常是程序的动态调度的产物(并且通常也 由程序专用逻辑来调度)。此外,如果两个事务冲突,诸如通过试图向同 一段存储器写入等,则它们的提交次序可基于多个可能的争用管理策略中 的一个来任意决定。在这两种情况下,不保证任何特定提交次序;因此确 保程序员的程序按任一次序都正确地运作的负担就落在程序员身上。这使 得并行编程非常困难。其中执行次本文档来自技高网...

【技术保护点】
一种用于将封闭顺序循环转换成并行循环的方法,所述方法包括以下步骤: 提供事务存储器系统; 分析包含原始顺序循环的第一部分代码以确定所述原始顺序循环将要执行的固定迭代次数; 将包含所述原始顺序循环的所述第一部分代码转换成包含 并行循环的第二部分代码,所述并行循环可操作来生成数量上等于所述固定迭代次数的多个事务,这些事务允许该并行循环的至少一部分并行执行;以及 使用所述事务存储器系统执行所述第二部分代码,其中所述多个事务中的至少某一些在不同的线程上执行。

【技术特征摘要】
【国外来华专利技术】US 2007-6-4 11/810,1111.一种用于将封闭顺序循环转换成并行循环的方法,所述方法包括以下步骤提供事务存储器系统;分析包含原始顺序循环的第一部分代码以确定所述原始顺序循环将要执行的固定迭代次数;将包含所述原始顺序循环的所述第一部分代码转换成包含并行循环的第二部分代码,所述并行循环可操作来生成数量上等于所述固定迭代次数的多个事务,这些事务允许该并行循环的至少一部分并行执行;以及使用所述事务存储器系统执行所述第二部分代码,其中所述多个事务中的至少某一些在不同的线程上执行。2. 如权利要求1所述的方法,其特征在于,所述固定迭代次数是通过 检索所述原始顺序循环与其相比以确定循环终止的常数值来确定的。3. 如权利要求1所述的方法,其特征在于,所述事务中的每一个使用 相应归纳变量计数器作为提交顺序号,所述提交顺序号由预定提交次序过 程用来确保所述事务中的每一个都以正确次序提交。4. 一种具有用于使得计算机执行如权利要求1所述的步骤的计算机可执行指令的计算机可读介质。5. —种具有用于使得计算机执行以下步骤的计算机可执行指令的计算 机可读介质,所述步骤包括提供事务存储器系统;将包含开放顺序循环的第一部分代码转换成包含并行循环的第二部分 代码,所述并行循环可操作来生成包含推测流水线的每一迭代的相应工作 项的单独事务;以及使用所述事务存储器系统执行所述第二部分代码,其中所述单独事务 中的至少某一些在不同的线程上执行。6. 如权利要求5所述的计算机可读介质,其特征在于,生成所述第二 部分代码以使所述事务中的至少某一些并行执行。7. 如权利要求5所述的计算机可读介质,其特征在于,在不执行对所述开放顺序循环的编译器分析的情况下生成所述第二部分代码。8. 如权利要求5所述的计算机可读介质,其特征在于,通过以预定提 交次序提...

【专利技术属性】
技术研发人员:JJ达菲JJ格雷Y莱瓦诺尼
申请(专利权)人:微软公司
类型:发明
国别省市:US[美国]

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

1