-
公开(公告)号:CN101681272A
公开(公告)日:2010-03-24
申请号:CN200880018922.8
申请日:2008-05-30
Applicant: 微软公司
IPC: G06F9/46
Abstract: 公开了用于将顺序循环转换成并行循环以与事务存储器系统一起使用的各种技术和方法。提供了一种事务存储器系统。将包含原始顺序循环的第一部分代码转换成包含使用事务来保留原始的输入到输出映射的并行循环的第二部分代码。例如,可以通过取原始顺序循环的每一迭代并生成遵循预定提交次序过程的单独事务来将原始顺序循环转换成并行循环。各单独事务中的至少某一些在不同的线程中执行。当在执行并行循环时检测到在特定事务中发生了未经处理的异常时,则提交该特定事务和前导事务所作出的状态修改并丢弃后续事务所作出的状态修改。
-
公开(公告)号:CN102135901B
公开(公告)日:2015-04-01
申请号:CN201110037381.7
申请日:2011-01-27
Applicant: 微软公司
IPC: G06F9/46
CPC classification number: G06F9/4881 , G06F2209/483
Abstract: 本发明描述了一种带有动态数量工作者的并行查询引擎。划分包括多个元素的序列的查询执行工作。一种方法包括工作者核从工作队列请求工作。作为响应,工作者核从工作队列接收任务。该任务是可复制序列处理任务,包括两个不同的步骤:在调度器队列上调度该任务的副本并处理序列。工作者核通过以下动作来处理任务:创建任务的复制品并将任务的复制品放在工作队列上,并且开始处理序列。对一个或多个其他工作者核重复各动作,其中从工作队列接收任务通过接收由不同的工作者核创建任务的复制品并将任务的复制品放在工作队列上的较早执行而放置在任务队列上的一个或多个任务复制品来执行。
-
公开(公告)号:CN101689125B
公开(公告)日:2013-12-25
申请号:CN200880022282.8
申请日:2008-06-16
Applicant: 微软公司
IPC: G06F9/46
CPC classification number: G06F8/456
Abstract: 公开了用于在数据并行操作中保留输入元素定序的各种技术和方法。此定序可以基于输入中的元素序数位置或程序员指定的为每一输入元素生成可排序键的键选择例程。重写复杂数据并行操作以包含引入分区和合并的各个数据并行操作。随后并行地独立处理每一分区。系统使用取决于消费者操作处于哪个类别中而变化的技术来确保下游操作记住由特定其它操作所建立的定序信息。使用了解数据元素之间建立的定序的最终合并过程将数据合并回一个输出流。
-
公开(公告)号:CN101889266B
公开(公告)日:2013-06-12
申请号:CN200880107300.2
申请日:2008-09-16
Applicant: 微软公司
CPC classification number: G06F9/467 , G06F17/30356 , G06F17/30359 , G06F17/30362
Abstract: 公开了用于支持事务存储器系统中的并行嵌套事务的各种技术和方法。为单个父事务创建多个封闭嵌套事务,并且这些封闭嵌套事务作为并行嵌套事务来并发执行。使用各种技术来确保对父事务之外的其他事务隐藏并行嵌套事务的影响直到该父事务提交。例如,就并行嵌套事务使用版本化写锁。当事务存储器字从写锁变为版本化写锁时,在全局版本化写锁映射中形成一条目以存储指向该版本化写锁所替换的写日志条目的指针。当在事务处理期间遇到该版本化写锁时,咨询全局版本化写锁映射以便将该版本化写锁转换成指向写日志条目的指针。
-
公开(公告)号:CN102141906B
公开(公告)日:2015-05-06
申请号:CN201110037368.1
申请日:2011-01-28
Applicant: 微软公司
IPC: G06F9/38
CPC classification number: G06F9/46
Abstract: 提供了基于阵列的线程倒计时。对线程分叉的操作。在运行时,任务被标识为被分成多个线程(即,分叉线程)要完成的多个子任务。为了能够验证分叉线程何时完成其任务,当分叉线程完成时设置和更新多个计数器存储器位置。在聚集中对多个计数器存储器位置求值以便确定是否完成了所有的分叉线程。一旦分叉线程被确定为已完成,就可以执行加入操作。使用多个存储器位置而不是单个存储器位置来考虑线程完成。这降低了线程争用的风险。
-
公开(公告)号:CN101681292B
公开(公告)日:2012-10-10
申请号:CN200880018391.2
申请日:2008-05-30
Applicant: 微软公司
IPC: G06F12/00
Abstract: 公开了用于将顺序循环转换成并行循环以与事务存储器系统一起使用的各种技术和方法。可以将开放和/或封闭顺序循环转换成并行循环。例如,分析包含原始顺序循环的一部分代码以确定该原始顺序循环的固定迭代次数。将原始顺序循环转换成可生成数量等于该固定迭代次数的事务的并行循环。作为另一示例,可以将开放顺序循环转换成生成包含推测流水线的每一迭代的相应工作项的单独事务的并行循环。并行循环随后使用事务存储器系统来执行,其中各单独事务中的至少某一些在不同的线程上执行。
-
公开(公告)号:CN101889266A
公开(公告)日:2010-11-17
申请号:CN200880107300.2
申请日:2008-09-16
Applicant: 微软公司
CPC classification number: G06F9/467 , G06F17/30356 , G06F17/30359 , G06F17/30362
Abstract: 公开了用于支持事务存储器系统中的并行嵌套事务的各种技术和方法。为单个父事务创建多个封闭嵌套事务,并且这些封闭嵌套事务作为并行嵌套事务来并发执行。使用各种技术来确保对父事务之外的其他事务隐藏并行嵌套事务的影响直到该父事务提交。例如,就并行嵌套事务使用版本化写锁。当事务存储器字从写锁变为版本化写锁时,在全局版本化写锁映射中形成一条目以存储指向该版本化写锁所替换的写日志条目的指针。当在事务处理期间遇到该版本化写锁时,咨询全局版本化写锁映射以便将该版本化写锁转换成指向写日志条目的指针。
-
公开(公告)号:CN101652761A
公开(公告)日:2010-02-17
申请号:CN200880011509.9
申请日:2008-03-13
Applicant: 微软公司
CPC classification number: G06F9/528
Abstract: 公开了在软件事务存储器系统中支持缓存写和强制串行化次序的各种技术和方法。提供了执行对于对象的阴影副本的写入并在提交期间确认了相应的事务之后将内容写回该对象的缓存写处理。在为特定事务第一次获得写锁时,制作特定对象的阴影副本。执行对该阴影副本的写入和读取。在提交期间确认了特定事务之后,将内容从阴影副本写入特定对象。提供确保提交事务的次序匹配该事务的抽象串行化次序的事务排序处理。事务在其票数匹配跟踪应该提交的下一事务的全局数量之前不被允许提交。
-
公开(公告)号:CN101681272B
公开(公告)日:2014-07-16
申请号:CN200880018922.8
申请日:2008-05-30
Applicant: 微软公司
IPC: G06F9/46
Abstract: 公开了用于将顺序循环转换成并行循环以与事务存储器系统一起使用的各种技术和方法。提供了一种事务存储器系统。将包含原始顺序循环的第一部分代码转换成包含使用事务来保留原始的输入到输出映射的并行循环的第二部分代码。例如,可以通过取原始顺序循环的每一迭代并生成遵循预定提交次序过程的单独事务来将原始顺序循环转换成并行循环。各单独事务中的至少某一些在不同的线程中执行。当在执行并行循环时检测到在特定事务中发生了未经处理的异常时,则提交该特定事务和前导事务所作出的状态修改并丢弃后续事务所作出的状态修改。
-
公开(公告)号:CN102929702A
公开(公告)日:2013-02-13
申请号:CN201210399252.7
申请日:2008-09-16
Applicant: 微软公司
CPC classification number: G06F9/467 , G06F17/30356 , G06F17/30359 , G06F17/30362
Abstract: 本发明公开了用于支持事务存储器系统中的并行嵌套事务的各种技术和方法。为单个父事务创建多个封闭嵌套事务,并且这些封闭嵌套事务作为并行嵌套事务来并发执行。使用各种技术来确保对父事务之外的其他事务隐藏并行嵌套事务的影响直到该父事务提交。例如,就并行嵌套事务使用版本化写锁。当事务存储器字从写锁变为版本化写锁时,在全局版本化写锁映射中形成一条目以存储指向该版本化写锁所替换的写日志条目的指针。当在事务处理期间遇到该版本化写锁时,咨询全局版本化写锁映射以便将该版本化写锁转换成指向写日志条目的指针。
-
-
-
-
-
-
-
-
-