首页> 外文会议>IEEE International Parallel Distributed Processing Symposium >A Study of the Behavior of Synchronization Methods in Commonly Used Languages and Systems
【24h】

A Study of the Behavior of Synchronization Methods in Commonly Used Languages and Systems

机译:常用语言与系统同步方法的行为研究

获取原文

摘要

Synchronization is a central issue in concurrency and plays an important role in the behavior and performance of modern programmes. Programming languages and hardware designers are trying to provide synchronization constructs and primitives that can handle concurrency and synchronization issues efficiently. Programmers have to find a way to select the most appropriate constructs and primitives in order to gain the desired behavior and performance under concurrency. Several parameters and factors affect the choice, through complex interactions among (i) the language and the language constructs that it supports,(ii) the system architecture, (iii) possible run-time environments, virtual machine options and memory management support and (iv) applications. We present a systematic study of synchronization strategies, focusing on concurrent data structures. We have chosen concurrent data structures with different number of contention spots. We consider both coarse-grain and fine-grain locking strategies,as well as lock-free methods. We have investigated synchronization-aware implementations in C++,C# (.NET and Mono) and Java. Considering the machine architectures, we have studied the behavior of the implementations on both Intel's Nehalem and AMD's Bulldozer. The properties that we study are throughput and fairness under different workloads and multiprogramming execution environments. For NUMA architectures fairness is becoming as important as the typically considered throughput property. To the best of our knowledge this is the first systematic and comprehensive study of synchronization-aware implementations. This paper takes steps towards capturing a number of guiding principles and concerns for the selection of the programming environment and synchronization methods in connection to the application and the system characteristics.
机译:同步是一种核心问题,并发症,在现代程序的行为和性能方面发挥着重要作用。编程语言和硬件设计人员正在尝试提供可以有效处理并发性和同步问题的同步构建构造和基元。程序员必须找到一种方法来选择最合适的构造和基元,以便在并发下获得所需的行为和性能。几个参数和因素会影响选择,通过(i)语言和语言构造中的复杂交互来影响它,(ii)系统架构,(iii)可能的运行时环境,虚拟机选项和内存管理支持以及( iv)应用程序。我们对同步策略进行了系统研究,重点是并发数据结构。我们选择了具有不同数量的争用点的并发数据结构。我们考虑粗粒和细粒锁定策略,以及无锁定方法。我们在C ++,C#(.NET和MONO)和Java中调查了同步感知实现。考虑到机器架构,我们研究了英特尔的Nehalem和AMD的推土机的实施行为。我们研究的属性是不同工作负载和多程序执行环境下的吞吐量和公平性。对于Numa架构公平,正如通常考虑的吞吐量属性一样重要。据我们所知,这是第一个系统和全面研究同步感知实现。本文采取措施迈向捕获许多指导原则和对选择编程环境和同步方法相关的指导原则和担忧以及系统特征。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号