acm-header
登录

ACM通信

实践

软件事务性记忆:为什么它只是一个研究玩具?


事务内存(TM)13是一个并发控制范例,它为代码区域提供原子和隔离的执行。TM被许多研究者认为是解决多核处理器编程问题最有前途的解决方案之一。它最吸引人的特性是,大多数程序员只需要对共享数据访问进行本地推理,标记要以事务方式执行的代码区域,并让底层系统确保正确的并发执行。该模型承诺提供细粒度锁的可伸缩性,同时避免锁组合的常见缺陷(如死锁)。在本文中,我们探讨了高度优化的STM的性能,并观察到TM的总体性能在低并行级别时要差得多,这可能会限制这种编程范式的采用。

事务性内存系统的不同实现会对性能和可编程性产生影响。Larus和Rajwar16介绍事务性内存系统实现的设计权衡的概述。我们在这里总结了一些设计选择:

  • 纯软件(STM)7101214182325是这里的重点。虽然它提供了灵活性,而且没有硬件成本,但它导致的开销超出了大多数用户的承受能力。
  • 纯硬件(HTM)249131920.35遭受两个主要障碍:高实现和验证成本导致设计风险太大,无法在小众编程模型上进行论证;当溢出发生时,硬件容量限制会导致显著的性能下降,管理溢出的建议(例如,签名5)会导致误报,从而增加编程模型的复杂性。因此,从行业的角度来看,HTM设计必须在更多样化的工作负载(具有不同的事务特征)上为硬件设计人员提供更多的成本效益。一个
  • 混合动力162428虽然硬件和软件支持的确切组合还不清楚,但它是最有可能最终被广泛用户采用的平台。

混合系统的一个特例是硬件加速stm。在此场景中,事务语义由STM提供,硬件原语仅用于加速STM中的关键性能瓶颈。如果硬件原语的成本不高,并且可以被系统中的其他用途进一步摊销,这样的系统可以提供一个有吸引力的解决方案。

独立于这些实现决策之外,还存在一些事务语义问题,这些问题打破了社区所希望的理想事务编程模型。TM引入了基于锁的互斥中不存在的各种编程问题。例如,语义被混淆:

  • 与非事务性代码的交互,包括从事务外部访问共享数据(容忍弱原子性)和在事务内部使用锁(打破隔离,使锁定操作在事务外部可见);
  • 异常和可序列化性:如何处理异常并从事务上下文中传播一致的异常信息,以及如何确保事务执行尊重操作的正确顺序;
  • 与无法进行事务处理的代码交互,这是由于与其他线程的通信或禁止推测的需求造成的;
  • 该系统保证所有的交易即使在存在冲突的情况下也能取得进展。

除了内在的语义问题之外,还存在由高事务开销驱动的特定于实现的优化,例如用于排除私有数据的程序员注释。此外,中止事务引入的非确定性使调试事务代码变得复杂——事务代码可能在冲突时被执行和中止,这使得程序员很难找到具有可重复行为的确定性路径。这两种方法都削弱了事务(特别是纯软件TM实现)的生产率论点。

考虑到所有这些问题,我们得出结论,TM还没有成熟到能够呈现出令人信服的价值主张,从而引发其广泛采用的程度。虽然TM可以成为并行程序员组合中的一个有用工具,但我们认为它本身并不能解决并行编程的困境。有证据表明,它有助于构建某些并发数据结构,如哈希表和二叉树。此外,有传闻称它有助于减轻工作量;然而,尽管在这一领域进行了多年的积极研究和发表,但我们失望地发现,在研究文献中没有提到使用TM的大规模应用。这枚邮票30.和Lonestar17基准测试套件是有希望的开始,但要成为完整应用程序的代表还有很长的路要走。

我们将这些结论建立在过去两年构建最先进的STM运行时系统和编译器框架(即免费提供的IBM STM)的工作之上。31在这里,我们将描述这种体验,首先讨论STM算法和设计决策。然后,我们将此STM的性能与其他两个最新的实现(Intel STM)进行比较14和Sun TL2 STM7),并剖析IBM STM执行的操作,并详细分析STM的性能热点。

回到顶部

软件事务性内存

STM实现了软件中的所有事务语义。这包括冲突检测、保证事务读取的一致性、保持原子性和隔离(防止其他线程在事务成功之前观察投机写入)以及冲突解决(事务仲裁)。一个典型的STM所执行的主要操作的伪代码在图1.我们将展示两种STM算法,一种执行完全验证,另一种使用全局版本号(用gv#注释标记的附加语句)。

对于系统程序员来说,STM的优势在于它提供了为这些操作实现不同机制和策略的灵活性。对于最终用户来说,STM的优点是它提供了一个环境来处理(即移植到TM)他们的应用程序,而不需要额外的硬件成本或等待这样的硬件被开发出来。

相反地,STM在性能和编程语义方面存在着不可忽视的缺陷:

  • 管理费用:通常,STM比传统的共享内存编程或HTM导致更高的顺序开销。这是软件将负载和存储扩展到事务内部共享的可变位置的结果,这些附加指令构成了STM实现(例如,中的STM_READ代码)图1 c).根据工作负载的事务特性,这些开销可能成为STM实现性能的一大障碍。顺序开销(即无论其他并发线程的操作如何都会产生的无冲突开销)必须通过事务内存的支持并发特性来克服。
  • 语义:为了避免引起较高的STM开销,通常不扩展非事务性访问(例如发生在事务外部的加载和存储)。这削弱了事务的语义,从而使事务的语义变得复杂,这可能要求程序员比支持强事务语义时更加小心。以下是一些通常与此类stm相关的弱化保证:
  • 弱原子性:通常,STM运行时库不能检测事务和非事务性访问之间的冲突。因此,原子性的语义被削弱,以允许未检测到的与非事务性访问的冲突(称为弱原子性)3.),或者等效地把责任放在程序员身上,以保证不可能发生这样的冲突。
  • 私有化:一些STM设计禁止内存位置的无缝私有化,也就是说,通过使用锁,从事务性访问过渡到私有或非事务性访问。对于某些STM设计,一旦以事务方式访问某个位置,就必须继续以事务方式访问它。在一些STM设计中,程序员可以通过保证对私有位置的第一次访问来简化转换,比如在该位置不再被其他事务线程访问之后。
  • 内存回收:一些STM设计禁止对通过事务方式访问的内存位置进行无缝回收,以进行任意重用,例如使用malloc而且免费的.通过这样的STM设计,以事务方式访问的位置的内存分配和回收处理方式与其他位置不同。
  • 遗留的二进制文件:STM需要观察事务区域的所有内存活动,以确保原子性和隔离性。通过代码插装实现这种观察的stm通常不能支持调用未插装的遗留代码(例如,第三方库)的事务,除非严重限制并发性,例如通过序列化事务。

回到顶部

评价

这里我们使用以下一组基准:

  • b +树是对b树数据结构的数据库索引操作的实现,其中数据仅存储在树叶上。该实现对每个树操作都使用粗粒度事务。每个b+树操作从树根开始,向下到叶结点。叶更新可能触发结构修改以重新平衡树。再平衡操作通常涉及到子-父边的递归上升。在最坏的情况下,再平衡操作修改整个树。我们的工作负载在顺序为20的b+树中插入了2048个项。对于这段代码,我们只有一个事务性版本,没有进行手动插装,因此实验结果只在配置中显示,在配置中我们可以使用编译器提供插装;
  • 德劳内实现Kulkarni等人描述的Delaunay网格细化算法。15代码产生一个保证质量的Delaunay网格。这是一种Delaunay三角剖分,附加的约束是网格中的任何角度都不能小于30度。基准测试将一个未细化的Delaunay三角测量作为输入,并生成一个满足此约束的新三角测量。在该算法的TM实现中,多个线程从工作队列中选择它们的元素,并将空腔细化为单独的事务。
  • 基因组,kmeans,假期是STAMP基准测试套件的一部分吗190.9.4版本。有关这些基准的详细描述,请参阅STAMP。30.

基线性能。图2我们给出了三种STMs的性能比较:IBM,3134英特尔,14和太阳的TL27STMs。运行在运行Linux Fedora Core 6的四核双向超线程Intel Xeon 2.3GHz盒子上。在这些运行中,我们使用了代码的手动仪器版本,从而大大减少了IBM和TL2 stm的障碍数量。由于我们不能访问Intel STM的低级api,因此Intel STM的曲线来自编译器插装的代码,由于编译器插装,这会产生额外的障碍开销。36这些图是相对于串行的、非事务化版本的可伸缩性曲线。因此y轴上的值为1表示与串行版本相同的性能。这些STM的性能基本相当,IBM STM的可伸缩性更好德劳内和TL2上获得更好的可伸缩性基因组。但是,获得的总体性能很低:onkmeansIBM STM在4个线程时几乎无法实现单线程性能,而在开启时假期即使使用8个线程,也没有任何stm能够克服事务性内存的开销。

编译器工具。编译器是大量程序员所采用的基于stm的编程环境的必要组件。它的基本作用是消除程序员对STM读和写障碍手动测量内存引用的需要。在提供便利的同时,编译器插测确实通过引入冗余障碍给STM系统增加了另一层开销,这通常是由于编译器分析的保守性,正如Yoo中所观察到的那样。36

图3提供另一个基准:编译器插装的开销。性能是在运行AIX 5.3的16路POWER5上测量的。对于STMXLC曲线,我们使用代码的非仪器化版本,并使用编译器提供的语言扩展对事务区域和函数进行注释。31

编译器过插装在传统的非托管语言中更为明显,例如C和c++,在这些语言中,没有过程间分析的编译器插装可能最终插装事务区域中的每个内存引用(堆栈访问除外)。实际上,我们的编译器插装使动态读障碍的数量增加了一倍多德劳内,基因组,kmeans.在某些情况下,过程间分析有助于提高编译器插装的紧密性,但通常受限于全局分析的准确性。

STM的操作性能。给定这个基线,我们现在详细分析STM中的哪些操作会导致开销。为此,我们使用PowerPC体系结构的周期精确模拟器,它为检测提供挂钩。STM操作和子操作是用这些模拟器挂钩进行检测的。使用这种环境的原因是,我们希望捕获指令级的开销,并消除实际硬件引入的任何其他不确定性。模拟器消除了由仪器引入的所有其他簿记操作,并提供了STM开销的精确细分。

我们研究了两种STM算法的性能:一种是在每次事务性读之后对读集进行完全验证(“fv”),另一种是使用全局版本号(“gv#”)来避免完全验证,同时保持操作的正确性。fv算法以更高的代价提供了更多的并发性。gv#被认为是STM实现的最佳折衷方案之一。

图4介绍了这些算法在连续运行时的单线程开销,再次说明了算法导致的大幅减速。图5将这些开销分解为各种STM组件。对于这两种算法,事务读的开销占主导地位,这是由于相对于所有其他操作而言,读操作的频率较高。全局版本号在减少开销方面的有效性体现在“gv#”较低的读取开销上。

图6给出事务性读取操作开销的详细分类。正如预期的那样,在“fv”配置中,验证读集的开销占事务读时间的大部分。对于这两种算法,同步操作(为排序元数据读取和数据读取以及数据读取和验证所必需)构成了一个重要的组件。在同一个事务(delaunay, kmeans)中执行写操作后再执行读操作的应用程序中,检查一个位置是否已被同一个事务中的先前写操作写入的时间占总时间的很大一部分。有趣的是,读取数据本身只占总时间的微不足道的一部分,这表明这些算法的性能必须克服的障碍令人信服。

图7给出事务提交操作的类似分类。与前面一样,“fv”配置必须验证读集。这两种配置的其他主要开销是必须为写集获取元数据(这涉及一系列加载链接/存储条件操作)和同步操作,这些操作是对获取元数据、数据写入和元数据释放进行排序所必需的。同样,数据写入本身只占总时间的一小部分。

开销优化。有许多关于通过编译器或运行时技术减少STM开销的建议,其中大多数是对STM硬件加速的补充。

  • 消除多余的障碍。一种技术是通过转义分析消除线程本地对象的障碍。这种分析通常非常有效地识别接近对象分配站点的线程本地访问。它可以消除读和写障碍,但通常在写障碍上更有效。例如,我们观察到过程内转义分析可以消除4050%的写入障碍假期,基因组,b +树。然而,它对性能的影响更为有限:从微不足道到12%。要针对冗余读障碍,需要进行称为事务中未访问分析的整个程序分析27消除事务中对只读对象的一些障碍;
  • 障碍强度降低。这些优化并没有消除障碍,而是在运行时识别只需要轻量级障碍处理的特殊位置,例如线程本地对象的动态跟踪1127栈引用和重复引用的运行时过滤;11
  • 代码生成优化。一种常见的技术是内联障碍物的快速路径。它具有减少函数调用开销、增加ILP和公开公共子屏障操作重用的潜在好处。在我们的实验中,编译器内联在基准测试套件中只取得了不到2%的整体改进;
  • 提交序列优化。消除不必要的全局版本号更新37将多个微基准测试的总体性能提高14%。

这样的优化对STM性能有积极的影响。然而,本文给出的结果表明,要使stm的性能对用户具有普遍的吸引力,还需要进行多少进一步的创新。

回到顶部

相关工作

第一个STM系统是由Shavit和Touitou提出的26并且基于对象所有权。该协议是静态的,这是后来提出的STM系统克服的一个重大缺点。7由于静态特性,冲突检测大大简化了,因为在获得所有权记录时(事务开始时)就可以排除冲突。

DSTM12是第一个动态STM系统;设计遵循每个对象的运行时组织(定位器对象)。应用程序堆中的变量(对象)引用定位器对象。不同于有所有权记录的设计(例如,哈里斯和弗雷泽10),定位器不存储厌恶号,而是引用对象最近提交的版本。DSTM设计的一个特殊之处在于,在事务访问之前,对象必须显式地“打开”(以只读或读写模式);DSTM还允许提前发布。作者认为,这两种机制都有助于减少冲突。

RSTM的设计原则18系统与DSTM类似,因为它将事务元数据与对象关联起来。但与DSTM不同的是,该系统不需要动态分配事务性数据,而是将事务性数据与非事务性数据放在一起。该方案有两个好处:首先,它促进了空间访问的局部性,从而提高了执行性能和事务吞吐量。其次,事务数据的动态内存管理(通常通过垃圾收集器完成)是不必要的,因此该方案适合在显式内存管理的环境中使用。

最近的工作探索了这里描述的基本STM算法的算法优化和/或替代实现。Riegel等人建议使用实时时钟来增强STM的可伸缩性,使用全局版本号。22JudoSTM21和RingSTM29减少在提交事务时必须执行的原子操作的数量,以序列化提交和/或由于不精确的冲突检测而导致虚假中止为代价。为了允许在遗留二进制文件上使用STM,已经为通过动态二进制重写操作的STM提出了一些建议。82133

柳等36分析英特尔STM执行过程中的开销。1423他们确定了四种主要的开销来源:过度工具化、虚假共享、摊销成本和私有化安全成本。虚假共享、私有安全和过度工具化是可以通过使用更细粒度的记账、更精细的分析或用户注释来消除的实现工件。摊销成本是STM中固有的开销,正如我们在这里演示的,不太可能被消除。

大量的研究工作已经花费在TM系统的操作分析上。最近的软件优化已经使STM性能提高了2% - 15%。我们相信这样的分析是一个很好的实践,应该扩展到每一个系统软件,特别是开源软件。然而,在我们观察到的开销中,这些收益只是很小的一部分,这表明社区在提高STM性能方面面临着巨大的挑战。

回到顶部

结论

基于我们的结果,我们相信STM的未来道路是相当具有挑战性的。将STM的管理费用降低到普遍具有吸引力的程度是一项艰巨的任务,必须证明显著更好的结果。如果我们可以强调一个进一步研究的方向,那就是消除动态不必要的读和写障碍——这可能是进一步减少STM开销的最有力的手段。然而,考虑到研究团体所探索的类似问题(如别名分析、逸出分析等)的难度,这可能是一场艰难的战斗。由于TM的论据取决于它的简单性和生产力效益,我们对任何提出的需要程序员额外工作的性能问题的解决方案都深表怀疑。

我们注意到TM编程模型本身,无论是在硬件还是在软件中实现,都引入了限制预期生产力收益的复杂性,因此减少了迁移到事务编程的当前动机,以及目前对超出少量硬件支持的任何东西的理由。

回到顶部

致谢

我们要感谢Pratap Pattnaik的持续支持,Christoph von Praun的大量讨论,在基准和运行时方面的工作,以及Rajesh Bordawekar的B+树代码实现。

回到顶部

参考文献

1.Baugh, L., Neelakantarn, N.和Zilles, C.使用硬件内存保护构建高性能、强原子混合事务内存。在第35届国际会议论文集。计算机体系结构研讨会。IEEE计算机学会,华盛顿,2008,115126。

2.布伦德尔,德维提,J.,刘易斯,e.l.,马丁,M.M.K.。在无界事务存储器中,使快速的情况普遍,不寻常的情况简单第34届计算机体系结构年度国际研讨会论文集。ACM,纽约,2007年。

3.Blundell, C, Lewis, C和Martin, M.M.K.事务性记忆原子性语义的微妙之处。IEEE TCCA计算机体系结构通讯2(2006年11月)。

4.Bobba, J., Goyal, N., Hill,医学博士,Swift, m.m.,和Wood, D.A. . TokenTM:使用硬件事务内存高效执行大型事务。在第35届计算机体系结构国际研讨会论文集。IEEE计算机学会,华盛顿,2008,127138。

5.齐泽、塔克、卡斯卡瓦尔、C、托雷拉斯、J.多处理器中推测线程的批量消歧。在第34届计算机体系结构年度国际研讨会论文集。纽约Acm, 2006, 237238。

6.Damron, P., Federava, A., Lev, Y., Luchangco, V., Moir, M.,和Nussbaum, D.混合事务存储器。在第12届编程语言和操作系统体系结构支持国际会议论文集, 2006年10月。

7.骰子,D, Shalev, O,和Shavit, n。阀瓣, 2006年9月,194208年。

8.Felber, P., Fetzer, C., Mueller, U., Riegel, T., Suesskraut, M.和Sturzrehm, H.使用开放编译器框架进行事务化应用程序。在事务计算ACM SIGPLAN研讨会论文集。2007年8月。

9.Hammond, L., Wong, V., Chen, M., Carlstrom, B.D., Davis, J.D., Hertzberg, B., Prabhu, M.K., Wijaya, H., Kozyrakis, C., Olukotun, K.交易性记忆的一致性和一致性。在第31届计算机体系结构年度国际研讨会论文集。IEEE计算机学会,2004年6月,102。

10.Harris, T.和Fraser, K.对轻量级事务的语言支持。在面向对象程序设计,系统,语言和应用。2003年10月,388402年。

11.Harris, T., Plesko, M., Shinnar, A.和Tarditi, D.优化内存事务。在程序设计语言设计与实现会议论文集。2003年,388402年。

12.Herlihy, Luchangco, V., Moir, M.和Scherer III, W.N.用于动态大小数据结构的软件事务存储器。在第22届ACM分布式计算原理研讨会论文集。2003年7月,92101年。

13.事务性内存:对无锁数据结构的架构支持。在第二十届计算机体系结构年度国际研讨会论文集。1993年5月。

14.Intel c++ STM编译器,原型版2.O;http://softwarecommunity.intel.com/articles/eng/1460.htm/(2008)。

15.Kulkarni, M., Pingali, K., Walter, B., Ramanarayanan, G., Baia, K.和Chew, P.L.乐观并行需要抽象。在2007年PLDI会议记录。Acm, ny, 2007, 211222。

16.拉鲁斯,J.R,拉杰瓦尔,R。事务内存.Claypool摩根,2006年。

17.Lonestar基准套件;http://iss.ices.utexas.edu/lonestar/(2008)。

18.Marathe, v.j., Spear, m.f., Heriot, C, Acharya, A, Eisenstat, D, Scherer III, W.N,和Scott, M.L.降低软件事务内存的开销。技术报告TR 893,计算机科学系,罗切斯特大学,2006年3月。浓缩版已提交出版。

19.Minh, c.c., Trautmann, M., Chung, J., McDonald, A., Branson, N., Casper, J., Kozyrakis, C.和Olukotun, K.一个具有强隔离保证的有效混合事务存储系统。在第34届计算机体系结构年度国际研讨会论文集。Acm,纽约,2007,6980。

20.摩尔,k.e.,波巴,J., Moravan, m.j.,希尔,医学博士和伍德,D.A.。LogTM:基于日志的事务性记忆。在第十二届高性能计算机体系结构年度国际研讨会论文集2006年2月。

21.Olszewski, M., Cutler, J., Steffan, J.G. Judostm:一种用于软件事务内存的动态二进制重写方法。在第16届并行架构与编译技术国际会议论文集。2007.IEEE计算机学会,华盛顿特区,365375。

22.Riegel, T., Fetzer, C.和Felber, P.具有可伸缩时间基的基于时间的事务内存。在第19届ACM算法和体系结构并行研讨会论文集, 2007年

23.Saha, B., Adl-Tabatabai, a.r., Hudson, r.l., Minh, c.c.,和Hertzberg, B. Mcrt-stm:一种用于多核运行时的高性能软件事务存储系统。在第11届ACM并行编程原理与实践研讨会论文集。2006年3月,纽约ACM, 187197。

24.Saha, B., Adl-Tabatabai, a.r.和Jacobson, Q.软件事务内存的体系结构支持。在第39届微建筑年度国际研讨会论文集中。2006年12月,185196年。

25.Shavit, N.和Touitou, D.软件事务存储器。在ACM分布式计算原理研讨会论文集。ACM, 1995年。

26.沙维特,N.,图头,D.软件事务记忆。在第十四届ACM分布式计算原理研讨会论文集。ACM,纽约,1995年。

27.Shpeisman, T., Menon, V, Adl-Tabatabai, A-R。,Balensiefer, S., Grossman, D., Hudson, R., Moore, K.F., and Saha, B. Enforcing isolation and ordering in STM. In程序设计语言设计与实现会议论文集。ACM、2007、7888。

28.A. Shriraman, Spear, M.F, Hossain, H., Marathe, V.J., Dwarkadas, S.,和Scott, M.L.灵活事务存储器的集成硬件-软件方法。在第34届计算机体系结构年度国际研讨会论文集。ACM,纽约,2007年,104115年。

29.Spears, m.t., Michael, m.m.,和von Praum, C. Ringstm:使用单个原子指令的可伸缩事务。在第20届ACM算法和体系结构并行研讨会论文集。ACM,纽约,275284年。

30.邮票基准;http://stamp.stanford.edu/(2007)。

31.(IBM)用于AIX事务内存的XL C/ c++;www.alphaworks.ibm.com/tech/xlcstm/(2008)。

32.M. Tremblay和S. Chaudhry, S.第三代65nm 16核32线程加32侦察线程CMT。在IEEE国际固态电路会议论文集。2008年2月。

33.王c . Chein, W-Y, Wu Y., Saha, B.和Adl-Tabatabai, A.R.非托管语言中事务内存构造的代码生成和优化。在代码生成与优化国际研讨会论文集。2007年,3448年。

34.Wu P., Michael, m.m., von Praun, C., Nakaike, T., Bordawekar, R., Cain, h.w., Cascaval, C., Chatterjee, S., Chiras, S., Hou, R., Mergen, M., Shen, X., Spear, M.F., Wang H.Y,和Wang K.用于软件事务内存优化的编译器和运行时技术。出现在并发与计算:实践与经验, 2008年。

35.Yen, L., Bobba, J., Marty, m.m., Moore, k.e., Volos。H., Hill, m.d., Swift, m.m.,和Wood, D.A. . LogTM-SE:从缓存中分离硬件事务内存。在第十三届高性能计算机体系结构国际研讨会论文集。2007年2月。

36.Yoo, r.m., Ni, Y., Welc, A., Saha, B. Adl-Tabatabai, A- r。和李,H-H.S。探究软件事务内存:为什么会变得如此艰难。第20届ACM算法和体系结构并行年会论文集, 2008年。

37.张,R, Budirnlicacute_l.gif基于时间戳的STM中的提交阶段。在第20届算法和体系结构并行年会论文集。ACM,纽约,326335年。

回到顶部

作者

Calin Cascaval(cascaval@us.ibm.com)是纽约州约克敦高地IBM TJ沃森研究中心可伸缩系统编程模型和工具的研究人员和经理。

科林Blundell是宾夕法尼亚大学计算机与信息科学系体系结构与编译组的成员。

法师迈克尔是IBM TJ沃森研究中心的研究人员,位于纽约州约克敦高地。

凯恩特雷是IBM TJ沃森研究中心的研究人员,位于纽约州约克敦海茨。

彭吴是IBM TJ沃森研究中心的研究人员,位于纽约州约克敦海茨。

斯蒂芬妮Chiras是IBM系统和技术集团的经理。

悉达多Chatterjee他是德克萨斯州奥斯汀IBM研究中心奥斯汀研究实验室的主任。

回到顶部

脚注

a.为其他目的重用硬件也可以证明它的存在,就像Sun在Rock处理器中实现Scout Threading一样。32

DOI: http://doi.acm.org/10.1145/1400214.1400228

回到顶部

数据

F1图1。STM操作。

F2图2。四核Intel Xeon服务器上三个STM运行时的可伸缩性结果:IBM、Intel STM v2和Sun TL2。

F3图3。在使用IBM XLCSTM编译器的AIX PowerPC上手动和编译器测试基准的可伸缩性结果。

F4图4。STM算法的单线程开销。

F5图5。花费在不同STM操作上的时间百分比。

F6图6。花费在STM读子操作上的时间百分比。

F7图7。花费在STM结束子操作上的时间百分比。

回到顶部


©2008 acm 0001-0782/08/1100 $5.00

允许为个人或课堂使用本作品的全部或部分制作数字或硬拷贝,但不得为盈利或商业利益而复制或分发,且副本在首页上附有本通知和完整的引用。以其他方式复制、重新发布、在服务器上发布或重新分发到列表,需要事先获得特定的许可和/或付费。

数字图书馆是由计算机协会出版的。版权所有©2008 ACM, Inc.


没有发现记录

登录为完全访问
»忘记密码? »创建ACM Web帐号
文章内容:
Baidu
map