Options
Résultat de la recherche
Voici les éléments 1 - 10 sur 10
- PublicationMétadonnées seulementDeadline-Aware Scheduling for Software Transactional Memory(: IEEE, 2011-1-13)
; ; ; ;Lawall, Julia ;Muller, GillesSoftware Transactional Memory (STM) is an optimistic concurrency control mechanism that simplifies the development of parallel programs. Still, the interest of STM has not yet been demonstrated for reactive applications that require bounded response time for some of their operations. We propose to support such applications by allowing the developer to annotate some transaction blocks with deadlines. Based on previous execution statistics, we adjust the transaction execution strategy by decreasing the level of optimism as the deadlines near through two modes of conservative execution, without overly limiting the progress of concurrent transactions. Our implementation comprises a STM extension for gathering statistics and implementing the execution mode strategies. We have also extended the Linux scheduler to disable preemption or migration of threads that are executing transactions with deadlines. Our experimental evaluation shows that our approach significantly improves the chance of a transaction meeting its deadline when its progress is hampered by conflicts. - PublicationMétadonnées seulementEvaluation of AMD's Advanced Synchronization Facility within a Complete Transactional Memory Stack(2010-4-13)
;Christie, Dave ;Chung, Jae-Woong ;Diestelhorst, Stephan ;Hohmuth, Michael ;Pohlack, Martin ;Fetzer, Christof ;Nowack, Martin ;Riegel, Torvald; ; AMD's Advanced Synchronization Facility (ASF) is an x86 instruction set extension proposal intended to simplify and speed up the synchronization of concurrent programs. In this paper, we report our experiences using ASF for implementing transactional memory. We have extended a C/C++ compiler to support language-level transactions and generate code that takes advantage of ASF. We use a software fallback mechanism for transactions that cannot be committed within ASF (e.g., because of hardware capacity limitations). Our evaluation uses a cycle-accurate x86 simulator that we have extended with ASF support. Building a complete ASF-based software stack allows us to evaluate the performance gains that a user-level program can obtain from ASF. Our measurements on a wide range of benchmarks indicate that the overheads traditionally associated with software transactional memories can be significantly reduced with the help of ASF. - PublicationMétadonnées seulementBrief Announcement: Hybrid Time-Based Transactional Memory(2010)
; ;Fetzer, Christof; ;Nowack, MartinRiegel, Torvald - PublicationMétadonnées seulementTime-based Software Transactional Memory(2010)
; ;Fetzer, Christof; Riegel, Torvald - PublicationMétadonnées seulementSupporting time-based QoS requirements in software transactional memory(2015-7-1)
; ; ; ;Lawall, Julia ;Muller, GillesSoftware Transactional Memory (STM) is an optimistic concurrency control mechanism that simplifies parallel programming. Still, there has been little interest in its applicability for reactive applications in which there is a required response time for certain operations. We propose supporting such applications by allowing programmers to associate time with atomic blocks in the forms of deadlines and QoS requirements. Based on statistics of past executions, we adjust the execution mode of transactions by decreasing the level of optimism as the deadline approaches. In the presence of concurrent deadlines, we propose different conflict resolution policies. Execution mode switching mechanisms allow meeting multiple deadlines in a consistent manner, with potential QoS degradations being split fairly among several threads as contention increases, and avoiding starvation. Our implementation consists of extensions to a STM runtime that allow gathering statistics and switching execution modes. We also propose novel contention managers adapted to transactional workloads subject to deadlines. The experimental evaluation shows that our approaches significantly improve the likelihood of a transaction meeting its deadline and QoS requirement, even in cases where progress is hampered by conflicts and other concurrent transactions with deadlines. - PublicationMétadonnées seulementThe Velox Transactional Memory Stack(2010-1-13)
;Afek, Yehuda ;Drepper, Ulrich; ;Fetzer, Christof ;Gramoli, Vincent ;Hohmuth, Michael; ;Stenström, Per ;Unsal, Osman; ;Harmanci, Mehmet Derin; ;Diestelhorst, Stephan ;Pohlack, Martin ;Cristal, Adrian ;Hur, Ibrahim ;Dragojevic, Aleksandar ;Guerraoui, Rachid ;Kapalka, Michal ;Tomic, Sasa ;Korland, Guy ;Shavit, Nir ;Nowack, MartinRiegel, Torvald - PublicationAccès libreEfficient transactional memory runtimes for unmanaged environmentsPour profiter pleinement de la puissance de calcul des processeurs multi-cœurs, les programmeurs doivent utiliser la programmation concurrente. Cependant, l'utilisation des verrous qui est la méthode de programmation concurrente la plus répandue, est particulièrement difficile à maîtriser. C'est pourquoi il est nécessaire d'utiliser des alternatives aux verrous. Un des paradigmes le plus prometteur est la Mémoire Transactionnelle, qui permet l'exécution optimiste du programme en utilisant le concept des transactions. Dans cette thèse, nous proposons d'améliorer le support et la performance de la mémoire transactionnelle dans des environnements non-supervisés, aussi bien au niveau logiciel qu'au niveau matériel.
D'abord, nous améliorons la performance de la mémoire transactionnelle logicielle en développant LSA, un algorithme basé sur une horloge virtuelle pour assurer la cohérence des transactions. Nous proposons plusieurs optimisations pour augmenter l'efficacité des transactions et nous développons de nouvelles fonctionnalités dans le but de favoriser l'utilisation de la mémoire transactionnelle par les développeurs d'applications.
Ensuite, nous tirons parti du support matériel pour la mémoire transactionnelle afin d'améliorer les performances d'exécution des transactions. Nous montrons que ce support permet d'obtenir de meilleurs résultats par rapport aux approches purement logicielles. Cependant, les capacités limitées du matériel nous tournent vers une approche hybride. Notre mémoire transactionnelle hybride qui utilise l'algorithme LSA combine les performances de l'approche matérielle avec les capacités de l'approche logicielle pour outrepasser les limitations du matériel.
Finalement, nous intégrons la mémoire transactionnelle dans un ensemble logiciel. Nous décrivons la standardisation de la mémoire transactionnelle dans les langages C et C++ ainsi que l'interface binaire pour les bibliothèques transactionnelles. Nous étendons notre bibliothèque transactionnelle pour suivre ces spécifications et la rendre compatible avec les compilateurs qui supportent la mémoire transactionnelle dont le compilateur GCC. Le système qui en résulte fournit aux développeurs une solution facile et efficace pour créer des applications qui tirent avantage des processeurs multi-cœurs., The adoption of multi-core processors requires programmers to use concurrent programming to fully benefit from the available processing power. Efficient concurrent programming using locks is notoriously difficult to master. This makes the case for alternative concurrent programming paradigms. One of the most promising of these paradigms is Transactional
Memory, which uses optimistic execution of code via the concept of transactions. In this thesis, we propose to improve the support and performance of transactional memory for unmanaged environment, at all levels of the system software and hardware stack.
First, we improve the performance of software transactional memory by developing LSA, an algorithm based on a virtual clock to ensure transaction consistency. In this context, we propose several optimizations for efficiency and develop features that will favor the uptake and usability of transactional memory for application developers. Next, we extend our Transactional Memory library to leverage the availability of hardware mechanisms that can support the execution of transactions. We show that Hardware Transactional Memory can deliver a high performance compared to software-only approaches but suffers from several limitations. Our Hybrid Transactional Memory, extending on our LSA algorithm, combines the advantages of hardware and software transactional memory to achieve a performance close to pure hardware transactional memory while overcoming its limitations.
Finally, we describe the integration of transactional memory in a complete system stack. We describe the standardization of the C/C++ language transactional constructs and the binary interface for transactional memory runtimes. We extend our Transactional Memory library to follow these specifications and make it compliant with two transactional compilers, including GCC. The resulting framework provides developers with an easy and efficient way to create applications that can take advantage of multi-core processors. - PublicationMétadonnées seulementKernel-Assisted Scheduling and Deadline Support for Software Transactional Memory(2011-5-17)
; ; ; ;Lawall, Julia ;Muller, Gilles - PublicationMétadonnées seulementScheduling Support for Transactional Memory Contention Management(2010)
; ; ; ;Suissa, Adi ;Hendler, Danny ;Fedorova, Alexandra ;Lawall, JuliaMuller, Gilles - PublicationMétadonnées seulementOptimizing Hybrid Transactional Memory: The Importance of Nonspeculative Operations(2011)
;Riegel, Torvald; ;Nowack, Martin; Fetzer, Christof