首页> 外文会议>Principles and practice of parallel programming >Compiler Aided Selective Lock Assignment for Improving the Performance of Software Transactional Memory
【24h】

Compiler Aided Selective Lock Assignment for Improving the Performance of Software Transactional Memory

机译:编译器辅助的选择性锁分配,可提高软件事务性存储器的性能

获取原文
获取外文期刊封面目录资料

摘要

Atomic sections have been recently introduced as a language construct to improve the programmability of concurrent software. They simplify programming by not requiring the explicit specification of locks for shared data. Typically atomic sections are supported in software either through the use of optimistic concurrency by using transactional memory or through the use of pessimistic concurrency using compiler-assigned locks. As a software transactional memory (STM) system does not take advantage of the specific memory access patterns of an application it often suffers from false conflicts and high validation overheads. On the other hand, the compiler usually ends up assigning coarse grain locks as it relies on whole program points-to analysis which is conservative by nature. This adversely affects performance by limiting concurrency. In order to mitigate the disadvantages associated with STM's lock assignment scheme, we propose a hybrid approach which combines STM's lock assignment with a compiler aided selective lock assignment scheme (referred to as SCLA-STM). SCLA-STM overcomes the inefficiencies associated with a purely compile-time lock assignment approach by (ⅰ) using the underlying STM for shared variables where only a conservative analysis is possible by the compiler (e.g., in the presence of may-alias points to information) and (ⅱ) being selective about the shared data chosen for the compiler-aided lock assignment. We describe our prototype SCLA-STM scheme implemented in the hp-ux IA-64 C/C++ compiler, using TL2 as our STM implementation. We show that SCLA-STM improves application performance for certain STAMP benchmarks from 1.68% to 37.13%.
机译:原子部分最近已作为一种语言结构引入,以改善并发软件的可编程性。它们不需要显式指定共享数据锁,从而简化了编程。通常,通过使用事务性内存使用开放式并发或使用编译器分配的锁使用悲观并发,在软件中都支持原子部分。由于软件事务性内存(STM)系统没有利用应用程序的特定内存访问模式,因此它经常遭受错误冲突和高验证开销的困扰。另一方面,由于编译器依赖于整个程序点,因此通常最终会分配粗粒度锁,因此,分析本质上是保守的。通过限制并发性,这会对性能产生不利影响。为了减轻与STM的锁分配方案相关的缺点,我们提出了一种混合方法,将STM的锁分配与编译器辅助的选择性锁分配方案(称为SCLA-STM)结合在一起。 SCLA-STM通过以下方式克服了纯编译时锁分配方法的效率低下问题:(ⅰ)使用底层STM共享变量,而编译器只能进行保守分析(例如,存在可能出现别名的信息) )和(ⅱ)对于为编译器辅助的锁定分配选择的共享数据具有选择性。我们描述了在hp-ux IA-64 C / C ++编译器中实现的SCLA-STM原型方案,并使用TL2作为STM实现。我们显示,对于某些STAMP基准,SCLA-STM可以将应用程序性能从1.68%提高到37.13%。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号