Transactional Memory for Dependable Embedded Systems
|
|
- Doris Moody
- 6 years ago
- Views:
Transcription
1 al Memory for Dependable Embedded Systems Christof Fetzer Dresden University of Technology Dresden, Germany Pascal Felber University of Neuchâtel Neuchâtel, Switzerland Abstract al Memory (TM) has been touted as one of the most promising approaches to concurrent programming for multi-core processors. By combining ease of use with high scalability potential, as well as checkpointing capabilities particularly useful for developing dependable software, TM has attracted considerable attention from the research community. Many of its facets have been studied over the last few years: hardware support, software TM runtimes, operating system extensions, transactional compilers, language extensions, or application workloads. On the basis of our experiences as designers and users of a complete TM stack that we developed over the last five years, we discuss in this position paper our view on the challenges one faces when extending TM to dependable embedded systems. Indeed, there is an apparent contradiction between the optimistic, best-effort operation of TM and the strict dependability requirements of embedded systems. Our position is that it is both possible and worthwhile to develop embedded transactional memory. Yet, we believe that in the context of dependable embedded systems the focus of TM should be on failure control and not concurrency control. Hence, this will require modifications of the TM language primitives, tools, algorithms, runtime systems, and hardware itself. Keywords al memory; embedded systems; dependability; concurrency. I. INTRODUCTION al memory (TM) [1] is a recent programming paradigm proposed as a means to support lightweight transactions in concurrent applications. s execute concurrently and those that fail to commit automatically roll back and restart their execution. TM proposes an interesting alternative to lock-based synchronization, offering benefits in terms of scalability and ease of programming. Its automated checkpoint/roll-back mechanisms also provide a promising perspective for dependable computing. TM can can be implemented in hardware (HTM), software (STM), or a hybrid combination of both (HyTM) [1]. The earliest designs were hardware-based [2], [3]. The first STM proposals were operating on a predefined set of memory locations [4]. Research on STM has really taken off during the last decade when the first dynamic designs have been proposed [5], [6]. Commercial HTM support has been proposed for real CPUs only recently, in the Rock [7] and Azul [8] processors, as well as in AMD s ASF proposal [9]. So far, the main application domain of TM is optimistic synchronization in concurrent programming. TM alleviates some of the drawbacks of locks: coarse-grained locking does not scale well with increasing thread counts; fine-grained locking is error-prone and difficult to reason about for non-trivial data structures; locks are subject to problematic issues such as priority inversions or deadlocks; and locks are not composable. We are currently witnessing the apparition of multi-core CPUs for embedded systems. The benefits of TM in terms of scalable concurrency control make it also an attractive option for embedded systems. Moreover, TM might in some workloads be more energy-efficient than locks [10], which might represent another compelling reason for targeting embedded systems with limited power. Yet, the very principles underlying TM, best-effort optimistic synchronization, seem to be in contradiction with the strict requirements of dependable systems. We argue in this paper that, in the domain of embedded systems, the use of TM for failure control, i.e., to improve the dependability of systems, is a more promising than its use for concurrency control. As a transaction executes in isolation and either commits, or rolls back automatically all its changes, TM can be leveraged to implement various semantics for robust software and hardware. In particular, TM provides straightforward support for failure atomicity, an important property when recovering from errors: it guarantees that an operation that cannot complete due to an unexpected event will leave the target component in its state prior to the invocation of the operation. In this position paper, we discuss the challenges one would face when designing a TM for dependable embedded systems. We conclude that, while it is possible and worthwhile to develop embedded transactional memory, this will require some deep changes to the classic TM designs that have been developed so far. II. DEPENDABLE EMBEDDED SYSTEMS AND TM There exist a variety of application domains for embedded systems. As a consequence, there also exist different notions and definitions of the term embedded system. According to [11], an embedded system is a microprocessor-based
2 system that is built to control a function or a range of functions. Often there exist various constraints that increase the difficulty of building embedded systems. In particular, embedded systems have in many cases stricter resource limitations than, for instance, desktop or server applications. For example, one must minimize energy consumption on battery-based systems and, in low-margin systems, memory size and CPU power are often severely limited. Some of the most challenging constraints are given for dependable embedded systems. These are embedded systems that are used in the context of safety-critical or missioncritical systems. They have strict requirements regarding hard real-time and dependability. Dependability consists of availability, reliability, maintainability, and security guarantees. A. TM for Dependability There have been only limited research efforts on using TM for developing dependable software, and conversely for implementing dependable TM infrastructures. In the rest of this section, we briefly summarize previous work on TM and dependability in the context of large multi- and many-core systems. We will then discuss in Section III the challenges faced when trying to apply these techniques to dependable embedded systems. Software Failures: Interestingly, a rollback mechanism very similar to TM was already described in 1975 for the recovery from software bugs [12]: a recovery block is protected by a postcondition and if the postcondition is violated, the state is rolled back using a combination of hardware and software. After the rollback, an alternative implementation of the block is executed, e.g., using an older version of block s code or a slower but safer variant. TM can be used not only in the context of recovery blocks, but also to tolerate other types of software bugs, for example, to ensure the atomicity of exception handling [13]. A combination of TM with adequate language extensions and semantics allows various types of error recovery. Notably, one can straightforwardly implement graceful degradation, selective retries, repair and retry, and recovery blocks with TM [13]. For completeness, we should point out that TM can be used for robustness in a variety of other contexts, notably for discovering concurrency bugs [14], for verifying data invariants [15], and for software testing [16]. Hardware Failures: TM can also be used to tolerate hardware bugs. For example, Razor circuitry is a promising approach to balance energy consumption, processing speed, and error rate of a CPU [17]. However, the error rate of a commodity CPU will be tuned for its target market and will most likely be too high for dependable applications. It seems worthwhile to investigate the use of software/hardware mechanisms to decrease the error rate perceived by a dependable application executing on a (commodity) CPU. In particular, the combination with HTM or HyTM to efficiently rollback erroneous executions with a software-based error detection mechanism like SWIFT (software implemented fault-tolerance) [18] could be a practical approach. FaulTM [19] uses a hybrid hardware/software TM approach to execute vulnerable code sections in two concurrent transactions and detect errors by comparing the associated write sets before commit. B. Dependability for TM If one wants to use a TM infrastructure to develop dependable software, the underlying TM must itself satisfy some requirements in terms of dependability. In particular, it must provide liveness guarantees so that, if a thread is delayed or fails inside a transaction, the other threads are not blocked. Liveness properties can be provided by a lock-free TM [20], an obstruction-free TM in combination with a robust contention manager [21], or an almost wait-free TM like ROBUSTM [22]. The latter is particularly interesting as it was specifically designed to tolerate crashed and nonterminating threads, and it provides performance comparable to that of non-robust state-of-the-art TMs. Finally, to deal with the unpredictability of transaction execution times, e.g., due to aborts/retries or thread preemption, one can use (soft) real-time TMs [23], [24]. These implementations can help bound the execution time of transactions, e.g., by relying on conservative scheduling techniques as deadlines near, but we are not aware of any TM that would provide comprehensive hard real-time guarantees. III. TM CHALLENGES FOR EMBEDDED SYSTEMS In the context of dependable embedded systems, we foresee several challenges that would deserve further research to determine how far TM could help alleviate them. In this short paper, we focus on the following challenges: Challenge 1: To satisfy dependability requirements, strict spatial, temporal, and failure isolation of tasks is required. Tasks running on an embedded system can have various criticalities. One needs not only to ensure that tasks of lower criticality cannot negatively affect tasks of higher criticality, but also that faulty tasks of the same or higher criticality do not negatively affect tasks of lower criticality. Hence, one wants to enforce a strict spatial, temporal, and failure isolation of tasks. Such isolation is difficult to achieve because tasks need to communicate to achieve the dedicated functions of the embedded system. TM can be used to protect access to shared memory, as illustrated in Figure 1. TM synchronizes access to shared memory by enforcing atomic execution of transactions. Atomicity has the potential advantage that consistency and liveness can be enforced even in situations when failures
3 Address space Address space Address space Figure 1. Process Shared region protected by TM Process al memory can protect shared memory regions. occur. However, failures like process crashes are typically not considered in current TM implementations. A notable exception is ROBUSTM [22], which was developed in the context of the EU FP7 VELOX project. The advantage of TM is that, in case a process crashes while updating a shared region, all its changes can be rolled back and, in this way, consistency can be preserved. In comparison, when using a lock-based approach, a process crash within a critical section would prevent all other processes from entering that section. ROBUSTM provides also some basic notion of fairness: all transactions will eventually be committed even if they are executed by a slow process. In the context of dependable embedded systems, we need to go beyond handling fail-stop failures and providing simple fairness. In particular, a stricter isolation of processes needs to be ensured. For example, spatial isolation could be improved by using a combination of isolated address spaces, TM-protected shared memory segments, and some form of address space randomization. Temporal isolation requires that the resource usage of a process does not invalidate the timeliness requirements of real-time processes. Challenge 2: To satisfy real-time constraints, we need to extend the TM language primitives and the runtime systems. The main advantage of TM in the context of real-time constraints is that it does not suffer from the priority inversion problem. In this sense, TM seems to be more appropriate than lock-based synchronization. However, there are other issues that need to be addressed, notably a low priority task could slow down a high priority task. Address space Must not be delayed Address space Many calls Address space High priority task Figure 2. Shared region protected by TM Low priority task A low priority task can slow down a higher priority task. Consider the situation sketched in Figure 2. A low priority task accesses a shared region very frequently, resulting not only in cache misses on a high priority task but potentially causing aborts of the high priority task. Moreover, the highpriority task might depend on the arrival of updates that could be delayed by too high access rates. To address these issues, we believe that the TM primitives need to be extended to include real-time and access guarantees. Furthermore, the runtime system needs to be Time Slot i Slot i+1 Abort Commit Program start(); y = x + z; commit(); Accesses to shared memory Figure 3. With a time-triggered approach, a transaction must execute all its accesses to shared memory and commit in a given time slot. The first execution of the transaction fails because it did not complete its accesses within time slot i, but the second execution succeeds in time slot i +1. extended to support real-time guarantees. It seems one possible approach could be to design and implement a TM following a time-triggered approach [25]: access to shared memory is only permitted during predetermined time slots and the TM needs to not only prevent accesses outside a thread s time slot, but also to rollback partial updates in case a thread fails to commit its changes within its time slot (see Figure 3). Note that, in this context, the speculation of a transaction would not be used for concurrency control but to ensure failure atomicity: the effects of a software or hardware failure could be rolled back. The next challenge is how to detect such failures. Challenge 3: Ensuring consistency in the face of software and hardware faults. TM could be used to ensure the consistency of updates in the face of failures. One possible approach to detect execution failures of the CPU (i.e., to detect the incorrect execution of the program) is the aforementioned combination of SWIFT [18] and TM. Alternatively, executable constraints could be used to detect both software and hardware failures. Software failures could be detected and tolerated in a similar manner as the recovery block approach [12]. Hardware failures can be detected with a high likelihood using appropriate executable constraints [26]. To do so, a TM could be checking executable constraints before committing a transaction. While this concept is conceptually simple, none of the standard TMs currently support this feature. Note that if a TM is not used for concurrency control anymore (e.g., when combined with a time triggered approach), transaction demarcation can be changed. Instead of adding atomic blocks to programs, we would add executable constraints. A new transaction is started automatically after committing a previous transaction or returning from a system call (see Figure 4). A transaction is automatically committed when control flow reaches an executable assertion or a system call. In this way, one can eliminate the two main disadvantages of TM: (1) its inability to cope with external actions, and (2) its inefficiency at executing large transactions. Regarding (1), a transaction must be committed before a system call not only to avoid rolling back external
4 actions but also to validate the correctness of the arguments of the system call. Regarding (2), by automatically [27] or manually deriving and adding invariants to a program, one can limit the size of transactions. assertion(x > 0); y = x + z; assertion(y > 10); r = syscall(, y); v = r + x; Program Figure 4. When focusing on failure control, transactional demarcation can be set (implicitly) by executable constraints and system calls. Constraints can be added manually or automatically. Challenge 4: Integration with replication mechanisms. To detect wrong executions and/or to ensure availability in the face of failures, dependable embedded systems often rely on some form of replication. In many instances, active replication is used, i.e., each request is executed by a set of processes. In this way, instant fail-over can be ensured. Temporal replication is also used, for example, to detect execution failures. Active replication of multi-threaded applications is difficult since the scheduling of threads introduces nondeterminism. This non-determinism causes replicas to diverge. A divergence needs to be detected and the replicas stopped to ensure safety. To support active replication, a TM would need to integrate (or enforce itself) a form of deterministic execution scheduling. Deterministic execution typically introduces some non-negligible overheads. However, the use of a time-triggered TM would already ensure determinism (and not introduce any additional overhead). An interesting use of TM is to roll back replicas in case a divergence is detected. The challenge that we foresee is that replicas would need to be synchronized frequently to limit the size of the rollbacks. Note that such rollback would be applicable both for active and temporal replication. We expect that some original TM-based replication mechanisms could be developed in this context. IV. CONCLUDING REMARKS We believe there are interesting uses of TM for dependable embedded systems. TM mechanisms might however be used less for concurrency control than for failure control. In particular, we do not expect the widespread use of speculation for concurrency control because of the need for hard real-time guarantees. In this context, we anticipate that one will stick with more conservative approaches like a timetriggered approach and use the TM to deal with software and hardware failures. Considering that transactions were originally introduced to provide clean failure semantics, the use of transactions for failure control might not come as a surprise. However, we believe there are some interesting research questions left to be explored. In particular, the TM usage patterns, language integration, and runtime system will have to be dramatically modified. Most notably, these changes will likely eliminate some of the main problems of TM: coping with external actions and long transactions. Moreover, by eliminating concurrency control issues, the overhead of TM could be reduced. This would need to be investigated more closely. We strongly believe that it would be a very worthwhile effort to evaluate the potential advantages, but also the disadvantages, of TM for dependable embedded systems. As argued in this short paper, we expect this will require modifications of the TM language primitives, tools, algorithms, runtime systems, and hardware itself. This would represent exciting new research directions in the domain of dependable embedded systems. ACKNOWLEDGMENT The research leading to these results has received funding from the European Community s Seventh Framework Programme (FP7/ ) under grant agreement (VELOX). REFERENCES [1] T. Harris, J. Larus, and R. Rajwar, al Memory, 2nd ed., M. Hill, Ed. Morgan and Claypool publishers, [2] T. Knight, An architecture for mostly functional languages, in Proceedings of the 1986 ACM Conference on LISP and Functional Programming, [3] M. Herlihy and J. Moss, al memory: architectural support for lock-free data structures, in Proceedings of the 20th Annual International Symposium on Computer Architecture (ISCA 93), vol. 21, [4] N. Shavit and D. Touitou, Software transactional memory, in Proceedings of the Annual ACM Symposium on Principles of Distributed Computing (PODC), [5] M. Herlihy, V. Luchangco, M. Moir, and W. N. S. III, Software transactional memory for dynamic-sized data structures, in Proceedings of the Annual ACM Symposium on Principles of Distributed Computing (PODC), [6] T. Harris and K. Fraser, Language support for lightweight transactions, in Proceedings of the Annual ACM SIGPLAN Conference on Object-Oriented Programing, Systems, Languages, and Applications (OOPSLA), [7] D. Dice, Y. Lev, M. Moir, and D. Nussbaum, Early experience with a commercial hardware transactional memory implementation, in Proceedings of the International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), 2009.
5 [8] C. Click, Azul s experiences with hardware transactional memory, in HP Labs Bay Area Workshop on al Memory, [9] D. Christie, J.-W. Chung, S. Diestelhorst, M. Hohmuth, M. Pohlack, C. Fetzer, M. Nowack, T. Riegel, P. Felber, P. Marlier, and E. Riviere, Evaluation of AMD s advanced synchronization facility within a complete transactional memory stack, in Proceedings of the ACM SIGOPS/EuroSys European Conference on Computer Systems, [10] T. Moreshet, R. I. Bahar, and M. Herlihy, Energy reduction in multiprocessor systems using transactional memory, in Proceedings of the International Symposium on Low Power Electronics and Design (ISPLED), [11] S. Heath, Embedded Systems Design, 2nd ed. Newnes, [12] B. Randell, System structure for software fault tolerance, in Proceedings of the International Conference on Reliable Software, [13] C. Fetzer and P. Felber, Improving program correctness with atomic exception handling, JUCS, Special Issue (Atomicity II), vol. 13, no. 8, pp , [14] L. Chew and D. Lie, Kivati: fast detection and prevention of atomicity violations, in Proceedings of the ACM SIGOPS/EuroSys European Conference on Computer Systems, [22] J.-T. Wamhoff, T. Riegel, C. Fetzer, and P. Felber, RobuSTM: A robust software transactional memory, in Proceedings of the 12th International Symposium on Stabilization, Safety, and Security of Distributed Systems (SSS 10), [23] T. Sarni, A. Queudet, and P. Valduriez, Real-time support for software transactional memory, in Proceedings of the IEEE International Conference on Embedded and Real-Time Computing Systems and Applications (RTCSA), [24] W. Maldonado, P. Marlier, P. Felber, J. Lawall, G. Muller, and E. Rivière, Deadline-aware scheduling for software transactional memory, in Proceedings of the International Conference on Dependable Systems and Networks (DSN), [25] H. Kopetz and G. Bauer, The time-triggered architecture, Proceedings of the IEEE, vol. 91, no. 1, pp , [26] M. Hiller, Executable assertions for detecting data errors in embedded control systems, in Proceedings of the International Conference on Dependable Systems and Networks (DSN), [27] M. D. Ernst, J. Cockrell, W. G. Griswold, and D. Notkin, Dynamically discovering likely program invariants to support program evolution, IEEE s on Software Engineering, vol. 27, pp , [15] T. Harris and S. Peyton Jones, al memory with data invariants, in Workshop on Languages, Compilers, and Hardware Support for al Computing (TRANS- ACT), [16] J. Bobba, W. Xiong, L. Yen, M. D. Hill, and D. A. Wood, StealthTest: Low overhead online software testing using transactional memory, in Proceedings of the International Conference on Parallel Architectures and Compilation Techniques (PACT), [17] D. Blaauw and S. Das, CPU, heal thyself, IEEE Spectr., vol. 46, pp , [18] G. Reis, J. Chang, N. Vachharajani, R. Rangan, and D. August, Swift: software implemented fault tolerance, in Proceedings of the International Symposium on Code Generation and Optimization (CGO), 2005, pp [19] G. Yalcin, O. Unsal, I. Hur, A. Cristal, and M. Valero, FaulTM: Fault-tolerance using hardware transactional memory, in Proceedings of the Workshop on Parallel Execution of Sequential Programs on Multi-core Architectures (PESPMA), [20] K. Fraser, Practical lock freedom, Ph.D. dissertation, Cambridge University Computer Laboratory, 2003, also available as Technical Report UCAM-CL-TR-579. [21] R. Guerraoui, M. Herlihy, M. Kapalka, and B. Pochon, Robust contention management in software transactional memory, in Proceedings of the OOPSLA Workshop on Synchronization and Concurrency in Object-Oriented Languages (SCOOL), 2005.
Lock vs. Lock-free Memory Project proposal
Lock vs. Lock-free Memory Project proposal Fahad Alduraibi Aws Ahmad Eman Elrifaei Electrical and Computer Engineering Southern Illinois University 1. Introduction The CPU performance development history
More information1 Publishable Summary
1 Publishable Summary 1.1 VELOX Motivation and Goals The current trend in designing processors with multiple cores, where cores operate in parallel and each of them supports multiple threads, makes the
More informationHAFT Hardware-Assisted Fault Tolerance
HAFT Hardware-Assisted Fault Tolerance Dmitrii Kuvaiskii Rasha Faqeh Pramod Bhatotia Christof Fetzer Technische Universität Dresden Pascal Felber Université de Neuchâtel Hardware Errors in the Wild Online
More informationTransactional Memory. Concurrency unlocked Programming. Bingsheng Wang TM Operating Systems
Concurrency unlocked Programming Bingsheng Wang TM Operating Systems 1 Outline Background Motivation Database Transaction Transactional Memory History Transactional Memory Example Mechanisms Software Transactional
More informationConcurrent Programming Made Simple: The (r)evolution of Transactional Memory
Concurrent Programming Made Simple: The (r)evolution of Transactional Memory Nuno Diegues 1 and Torvald Riegel 2 1 INESC-ID, Lisbon, Portugal 2 Red Hat October 1, 2013 ndiegues@gsd.inesc-id.pt triegel@redhat.com
More informationChí Cao Minh 28 May 2008
Chí Cao Minh 28 May 2008 Uniprocessor systems hitting limits Design complexity overwhelming Power consumption increasing dramatically Instruction-level parallelism exhausted Solution is multiprocessor
More informationSummary: Open Questions:
Summary: The paper proposes an new parallelization technique, which provides dynamic runtime parallelization of loops from binary single-thread programs with minimal architectural change. The realization
More informationDevelopment of Technique for Healing Data Races based on Software Transactional Memory
, pp.482-487 http://dx.doi.org/10.14257/astl.2016.139.96 Development of Technique for Healing Data Races based on Software Transactional Memory Eu-Teum Choi 1,, Kun Su Yoon 2, Ok-Kyoon Ha 3, Yong-Kee Jun
More informationScheduling Transactions in Replicated Distributed Transactional Memory
Scheduling Transactions in Replicated Distributed Transactional Memory Junwhan Kim and Binoy Ravindran Virginia Tech USA {junwhan,binoy}@vt.edu CCGrid 2013 Concurrency control on chip multiprocessors significantly
More informationOpportunities and pitfalls of multi-core scaling using Hardware Transaction Memory
Opportunities and pitfalls of multi-core scaling using Hardware Transaction Memory Zhaoguo Wang, Hao Qian, Haibo Chen, Jinyang Li School of Computer Science, Fudan University Institute of Parallel and
More informationTransactions are Back but How Different They Are?
Transactions are Back but How Different They Are? Relating STM and Databases Consistency Conditions (Preliminary Version) Hagit Attiya Technion hagit@cs.technion.ac.il Sandeep Hans Technion sandeep@cs.technion.ac.il
More informationINTRODUCTION. Hybrid Transactional Memory. Transactional Memory. Problems with Transactional Memory Problems
Hybrid Transactional Memory Peter Damron Sun Microsystems peter.damron@sun.com Alexandra Fedorova Harvard University and Sun Microsystems Laboratories fedorova@eecs.harvard.edu Yossi Lev Brown University
More information6.852: Distributed Algorithms Fall, Class 20
6.852: Distributed Algorithms Fall, 2009 Class 20 Today s plan z z z Transactional Memory Reading: Herlihy-Shavit, Chapter 18 Guerraoui, Kapalka, Chapters 1-4 Next: z z z Asynchronous networks vs asynchronous
More informationEarly Results Using Hardware Transactional Memory for High-Performance Computing Applications
Early Results Using Hardware Transactional Memory for High-Performance Computing Applications Sverker Holmgren sverker.holmgren@it.uu.se Karl Ljungkvist kalj0193@student.uu.se Martin Karlsson martin.karlsson@it.uu.se
More informationFalse Conflict Reduction in the Swiss Transactional Memory (SwissTM) System
False Conflict Reduction in the Swiss Transactional Memory (SwissTM) System Aravind Natarajan Department of Computer Engineering The University of Texas at Dallas Richardson, TX - 75080, USA Email: aravindn@utdallas.edu
More informationFall 2012 Parallel Computer Architecture Lecture 16: Speculation II. Prof. Onur Mutlu Carnegie Mellon University 10/12/2012
18-742 Fall 2012 Parallel Computer Architecture Lecture 16: Speculation II Prof. Onur Mutlu Carnegie Mellon University 10/12/2012 Past Due: Review Assignments Was Due: Tuesday, October 9, 11:59pm. Sohi
More informationEnhancing efficiency of Hybrid Transactional Memory via Dynamic Data Partitioning Schemes
Enhancing efficiency of Hybrid Transactional Memory via Dynamic Data Partitioning Schemes Pedro Raminhas Instituto Superior Técnico, Universidade de Lisboa Lisbon, Portugal Email: pedro.raminhas@tecnico.ulisboa.pt
More informationRefined Transactional Lock Elision
Refined Transactional Elision Dave Dice Alex Kogan Yossi Lev Oracle Labs {dave.dice,alex.kogan,yossi.lev}@oracle.com Abstract Transactional lock elision () is a well-known technique that exploits hardware
More informationA Formal Model of Crash Recovery in Distributed Software Transactional Memory (Extended Abstract)
A Formal Model of Crash Recovery in Distributed Software Transactional Memory (Extended Abstract) Paweł T. Wojciechowski, Jan Kończak Poznań University of Technology 60-965 Poznań, Poland {Pawel.T.Wojciechowski,Jan.Konczak}@cs.put.edu.pl
More informationAtomic Transac1ons. Atomic Transactions. Q1: What if network fails before deposit? Q2: What if sequence is interrupted by another sequence?
CPSC-4/6: Operang Systems Atomic Transactions The Transaction Model / Primitives Serializability Implementation Serialization Graphs 2-Phase Locking Optimistic Concurrency Control Transactional Memory
More informationAn Update on Haskell H/STM 1
An Update on Haskell H/STM 1 Ryan Yates and Michael L. Scott University of Rochester TRANSACT 10, 6-15-2015 1 This work was funded in part by the National Science Foundation under grants CCR-0963759, CCF-1116055,
More informationRemote Invalidation: Optimizing the Critical Path of Memory Transactions
Remote idation: Optimizing the Critical Path of Memory Transactions Ahmed Hassan, Roberto Palmieri, Binoy Ravindran Electrical and Computer Engineering Department Virginia Tech Blacksburg, Virginia, USA
More informationAgenda. Designing Transactional Memory Systems. Why not obstruction-free? Why lock-based?
Agenda Designing Transactional Memory Systems Part III: Lock-based STMs Pascal Felber University of Neuchatel Pascal.Felber@unine.ch Part I: Introduction Part II: Obstruction-free STMs Part III: Lock-based
More informationReduced Hardware Lock Elision
Reduced Hardware Lock Elision Yehuda Afek Tel-Aviv University afek@post.tau.ac.il Alexander Matveev MIT matveeva@post.tau.ac.il Nir Shavit MIT shanir@csail.mit.edu Abstract Hardware lock elision (HLE)
More informationReminder from last time
Concurrent systems Lecture 7: Crash recovery, lock-free programming, and transactional memory DrRobert N. M. Watson 1 Reminder from last time History graphs; good (and bad) schedules Isolation vs. strict
More informationTowards Transactional Memory for Safety-Critical Embedded Systems
Towards Transactional Memory for Safety-Critical Embedded Systems Stefan Metzlaff, Sebastian Weis, and Theo Ungerer Department of Computer Science, University of Augsburg, Germany Euro-TM Workshop on Transactional
More information6 Transactional Memory. Robert Mullins
6 Transactional Memory ( MPhil Chip Multiprocessors (ACS Robert Mullins Overview Limitations of lock-based programming Transactional memory Programming with TM ( STM ) Software TM ( HTM ) Hardware TM 2
More informationAn Introduction to Transactional Memory
An Introduction to Transactional Memory Jonathan Parri jparri@uottawa.ca http://site.uottawa.ca/~jparr090 Prelude 2 How can we simplify parallel programming by allowing groups of load and store operations
More informationThe Multicore Transformation
Ubiquity Symposium The Multicore Transformation The Future of Synchronization on Multicores by Maurice Herlihy Editor s Introduction Synchronization bugs such as data races and deadlocks make every programmer
More informationMaintaining Consistent Transactional States without a Global Clock
Maintaining Consistent Transactional States without a Global Clock Hillel Avni 1,3 and Nir Shavit 1,2 1 Tel-Aviv University, Tel-Aviv 69978, Israel 2 Sun Microsystems Laboratories, 1 Network Drive, Burlington
More informationLOCK-FREE DINING PHILOSOPHER
LOCK-FREE DINING PHILOSOPHER VENKATAKASH RAJ RAOJILLELAMUDI 1, SOURAV MUKHERJEE 2, RYAN SAPTARSHI RAY 3, UTPAL KUMAR RAY 4 Department of Information Technology, Jadavpur University, Kolkata, India 1,2,
More informationarxiv: v1 [cs.dc] 22 May 2014
Inherent Limitations of Hybrid Transactional Memory Dan Alistarh 1 Justin Kopinsky 4 Petr Kuznetsov 2 Srivatsan Ravi 3 Nir Shavit 4,5 1 Microsoft Research, Cambridge 2 Télécom ParisTech 3 TU Berlin 4 Massachusetts
More informationTHE concept of a transaction forms the foundation of
ELG7187 TOPICS IN COMPUTERS: MULTIPROCESSOR SYSTEMS ON CHIP - FALL 2010 1 An Introduction to Transactional Memory Jonathan Parri Abstract Parallel programming has become a complex task as systems enabling
More informationTROM: A Transactional Replicated Object Memory
TECHNICAL REPORT VS-R01-2009, INSTITUTE OF DISTRIBUTED SYSTEMS, UNIVERSITY OF ULM, GERMANY 1 TROM: A Transactional Replicated Object Memory Jörg Domaschka E-mail: joerg.domaschka@uni-ulm.de Abstract This
More informationConflict Detection and Validation Strategies for Software Transactional Memory
Conflict Detection and Validation Strategies for Software Transactional Memory Michael F. Spear, Virendra J. Marathe, William N. Scherer III, and Michael L. Scott University of Rochester www.cs.rochester.edu/research/synchronization/
More informationunreadtvar: Extending Haskell Software Transactional Memory for Performance
unreadtvar: Extending Haskell Software Transactional Memory for Performance Nehir Sonmez, Cristian Perfumo, Srdjan Stipic, Adrian Cristal, Osman S. Unsal, and Mateo Valero Barcelona Supercomputing Center,
More informationTime-based Transactional Memory with Scalable Time Bases
Time-based Transactional Memory with Scalable Time Bases Torvald Riegel Dresden University of Technology, Germany torvald.riegel@inf.tudresden.de Christof Fetzer Dresden University of Technology, Germany
More informationEnhancing Concurrency in Distributed Transactional Memory through Commutativity
Enhancing Concurrency in Distributed Transactional Memory through Commutativity Junwhan Kim, Roberto Palmieri, Binoy Ravindran Virginia Tech USA Lock-based concurrency control has serious drawbacks Coarse
More informationDBT Tool. DBT Framework
Thread-Safe Dynamic Binary Translation using Transactional Memory JaeWoong Chung,, Michael Dalton, Hari Kannan, Christos Kozyrakis Computer Systems Laboratory Stanford University http://csl.stanford.edu
More informationFine-grained Transaction Scheduling in Replicated Databases via Symbolic Execution
Fine-grained Transaction Scheduling in Replicated Databases via Symbolic Execution Raminhas pedro.raminhas@tecnico.ulisboa.pt Stage: 2 nd Year PhD Student Research Area: Dependable and fault-tolerant systems
More informationLecture 21: Transactional Memory. Topics: consistency model recap, introduction to transactional memory
Lecture 21: Transactional Memory Topics: consistency model recap, introduction to transactional memory 1 Example Programs Initially, A = B = 0 P1 P2 A = 1 B = 1 if (B == 0) if (A == 0) critical section
More informationCOMP3151/9151 Foundations of Concurrency Lecture 8
1 COMP3151/9151 Foundations of Concurrency Lecture 8 Transactional Memory Liam O Connor CSE, UNSW (and data61) 8 Sept 2017 2 The Problem with Locks Problem Write a procedure to transfer money from one
More informationCost of Concurrency in Hybrid Transactional Memory
Cost of Concurrency in Hybrid Transactional Memory Trevor Brown University of Toronto tabrown@cs.toronto.ca Srivatsan Ravi Purdue University srivatsanravi@purdue.edu Abstract State-of-the-art software
More informationComposable Transactional Objects: a Position Paper
Composable Transactional Objects: a Position Paper Maurice Herlihy 1 and Eric Koskinen 2 1 Brown University, Providence, RI, USA 2 New York University, New York, NY, USA Abstract. Memory transactions provide
More informationIntegrating Transactionally Boosted Data Structures with STM Frameworks: A Case Study on Set
Integrating Transactionally Boosted Data Structures with STM Frameworks: A Case Study on Set Ahmed Hassan Roberto Palmieri Binoy Ravindran Virginia Tech hassan84@vt.edu robertop@vt.edu binoy@vt.edu Abstract
More informationCache Coherence in Distributed and Replicated Transactional Memory Systems. Technical Report RT/4/2009
Technical Report RT/4/2009 Cache Coherence in Distributed and Replicated Transactional Memory Systems Maria Couceiro INESC-ID/IST maria.couceiro@ist.utl.pt Luis Rodrigues INESC-ID/IST ler@ist.utl.pt Jan
More informationHow Live Can a Transactional Memory Be?
How Live Can a Transactional Memory Be? Rachid Guerraoui Michał Kapałka February 18, 2009 Abstract This paper asks how much liveness a transactional memory (TM) implementation can guarantee. We first devise
More informationRelaxing Concurrency Control in Transactional Memory. Utku Aydonat
Relaxing Concurrency Control in Transactional Memory by Utku Aydonat A thesis submitted in conformity with the requirements for the degree of Doctor of Philosophy Graduate Department of The Edward S. Rogers
More informationPermissiveness in Transactional Memories
Permissiveness in Transactional Memories Rachid Guerraoui, Thomas A. Henzinger, and Vasu Singh EPFL, Switzerland Abstract. We introduce the notion of permissiveness in transactional memories (TM). Intuitively,
More informationCigarette-Smokers Problem with STM
Rup Kamal, Ryan Saptarshi Ray, Utpal Kumar Ray & Parama Bhaumik Department of Information Technology, Jadavpur University Kolkata, India Abstract - The past few years have marked the start of a historic
More information) Intel)(TX)memory):) Transac'onal) Synchroniza'on) Extensions)(TSX))) Transac'ons)
) Intel)(TX)memory):) Transac'onal) Synchroniza'on) Extensions)(TSX))) Transac'ons) Goal A Distributed Transaction We want a transaction that involves multiple nodes Review of transactions and their properties
More informationTRANSACTION MEMORY. Presented by Hussain Sattuwala Ramya Somuri
TRANSACTION MEMORY Presented by Hussain Sattuwala Ramya Somuri AGENDA Issues with Lock Free Synchronization Transaction Memory Hardware Transaction Memory Software Transaction Memory Conclusion 1 ISSUES
More informationFROM TIME-TRIGGERED TO TIME-DETERMINISTIC REAL-TIME SYSTEMS
FROM TIME-TRIGGERED TO TIME-DETERMINISTIC REAL-TIME SYSTEMS Peter Puschner and Raimund Kirner Vienna University of Technology, A-1040 Vienna, Austria {peter, raimund}@vmars.tuwien.ac.at Abstract Keywords:
More informationSpeculative Concurrent Processing with Transactional Memory in the Actor Model
Speculative oncurrent Processing with Transactional Memory in the Actor Model Yaroslav Hayduk, Anita Sobe, Derin Harmanci, Patrick Marlier, and Pascal Felber first.last@unine.ch University of Neuchatel,
More informationImproving the Practicality of Transactional Memory
Improving the Practicality of Transactional Memory Woongki Baek Electrical Engineering Stanford University Programming Multiprocessors Multiprocessor systems are now everywhere From embedded to datacenter
More information) Intel)(TX)memory):) Transac'onal) Synchroniza'on) Extensions)(TSX))) Transac'ons)
) Intel)(TX)memory):) Transac'onal) Synchroniza'on) Extensions)(TSX))) Transac'ons) Goal A Distributed Transaction We want a transaction that involves multiple nodes Review of transactions and their properties
More informationConcurrent Programming Method for Embedded Systems
Concurrent Programming Method for Embedded Systems Norbert Schramm UVA, 24000 Subotica, Serbia norbert.schramm@gmail.com Anita Sabo Polytechnical Engineering College Subotica M. Oreškovića 16, 24000 Subotica,
More informationReal-time scheduling of transactions in multicore systems
Real-time scheduling of transactions in multicore systems Toufik Sarni, Audrey Queudet, Patrick Valduriez To cite this version: Toufik Sarni, Audrey Queudet, Patrick Valduriez. Real-time scheduling of
More informationReflective Java and A Reflective Component-Based Transaction Architecture
Reflective Java and A Reflective Component-Based Transaction Architecture Zhixue Wu APM Ltd., Poseidon House, Castle Park, Cambridge CB3 0RD UK +44 1223 568930 zhixue.wu@citrix.com ABSTRACT In this paper,
More informationLecture 7: Transactional Memory Intro. Topics: introduction to transactional memory, lazy implementation
Lecture 7: Transactional Memory Intro Topics: introduction to transactional memory, lazy implementation 1 Transactions New paradigm to simplify programming instead of lock-unlock, use transaction begin-end
More informationCost of Concurrency in Hybrid Transactional Memory. Trevor Brown (University of Toronto) Srivatsan Ravi (Purdue University)
Cost of Concurrency in Hybrid Transactional Memory Trevor Brown (University of Toronto) Srivatsan Ravi (Purdue University) 1 Transactional Memory: a history Hardware TM Software TM Hybrid TM 1993 1995-today
More informationThe Common Case Transactional Behavior of Multithreaded Programs
The Common Case Transactional Behavior of Multithreaded Programs JaeWoong Chung Hassan Chafi,, Chi Cao Minh, Austen McDonald, Brian D. Carlstrom, Christos Kozyrakis, Kunle Olukotun Computer Systems Lab
More informationInherent Limitations of Hybrid Transactional Memory
Inherent Limitations of Hybrid Transactional Memory Dan Alistarh, Justin Kopinsky, Petr Kuznetsov, Srivatsan Ravi, Nir Shavit To cite this version: Dan Alistarh, Justin Kopinsky, Petr Kuznetsov, Srivatsan
More informationDistributed Systems. Characteristics of Distributed Systems. Lecture Notes 1 Basic Concepts. Operating Systems. Anand Tripathi
1 Lecture Notes 1 Basic Concepts Anand Tripathi CSci 8980 Operating Systems Anand Tripathi CSci 8980 1 Distributed Systems A set of computers (hosts or nodes) connected through a communication network.
More informationDistributed Systems. Characteristics of Distributed Systems. Characteristics of Distributed Systems. Goals in Distributed System Designs
1 Anand Tripathi CSci 8980 Operating Systems Lecture Notes 1 Basic Concepts Distributed Systems A set of computers (hosts or nodes) connected through a communication network. Nodes may have different speeds
More informationSequential Fault Tolerance Techniques
COMP-667 Software Fault Tolerance Software Fault Tolerance Sequential Fault Tolerance Techniques Jörg Kienzle Software Engineering Laboratory School of Computer Science McGill University Overview Robust
More informationMobile and Heterogeneous databases Distributed Database System Transaction Management. A.R. Hurson Computer Science Missouri Science & Technology
Mobile and Heterogeneous databases Distributed Database System Transaction Management A.R. Hurson Computer Science Missouri Science & Technology 1 Distributed Database System Note, this unit will be covered
More informationAn Orthogonal and Fault-Tolerant Subsystem for High-Precision Clock Synchronization in CAN Networks *
An Orthogonal and Fault-Tolerant Subsystem for High-Precision Clock Synchronization in Networks * GUILLERMO RODRÍGUEZ-NAVAS and JULIÁN PROENZA Departament de Matemàtiques i Informàtica Universitat de les
More informationOhua: Implicit Dataflow Programming for Concurrent Systems
Ohua: Implicit Dataflow Programming for Concurrent Systems Sebastian Ertel Compiler Construction Group TU Dresden, Germany Christof Fetzer Systems Engineering Group TU Dresden, Germany Pascal Felber Institut
More informationA Concurrency Control for Transactional Mobile Agents
A Concurrency Control for Transactional Mobile Agents Jeong-Joon Yoo and Dong-Ik Lee Department of Information and Communications, Kwang-Ju Institute of Science and Technology (K-JIST) Puk-Gu Oryong-Dong
More information1993 Paper 3 Question 6
993 Paper 3 Question 6 Describe the functionality you would expect to find in the file system directory service of a multi-user operating system. [0 marks] Describe two ways in which multiple names for
More informationOptimizing Hybrid Transactional Memory: The Importance of Nonspeculative Operations
Optimizing Hybrid Transactional Memory: The Importance of Nonspeculative Operations Torvald Riegel Technische Universität Dresden, Germany torvald.riegel@tudresden.de Patrick Marlier Université de Neuchâtel,
More informationConcurrent & Distributed Systems Supervision Exercises
Concurrent & Distributed Systems Supervision Exercises Stephen Kell Stephen.Kell@cl.cam.ac.uk November 9, 2009 These exercises are intended to cover all the main points of understanding in the lecture
More informationPerformance Comparison of Various STM Concurrency Control Protocols Using Synchrobench
Performance Comparison of Various STM Concurrency Control Protocols Using Synchrobench Ajay Singh Dr. Sathya Peri Anila Kumari Monika G. February 24, 2017 STM vs Synchrobench IIT Hyderabad February 24,
More informationTransactional Memory. review articles. Is TM the answer for improving parallel programming?
Is TM the answer for improving parallel programming? by james larus and christos Kozyrakis doi: 10.1145/1364782.1364800 Transactional Memory As computers evolve, programming changes as well. The past few
More informationLock-Free Readers/Writers
www.ijcsi.org 180 Lock-Free Readers/Writers Anupriya Chakraborty 1, Sourav Saha 2, Ryan Saptarshi Ray 3 and Utpal Kumar Ray 4 1 Department of Information Technology, Jadavpur University Salt Lake Campus
More informationAssignment 12: Commit Protocols and Replication Solution
Data Modelling and Databases Exercise dates: May 24 / May 25, 2018 Ce Zhang, Gustavo Alonso Last update: June 04, 2018 Spring Semester 2018 Head TA: Ingo Müller Assignment 12: Commit Protocols and Replication
More informationMultiprocessor and Real-Time Scheduling. Chapter 10
Multiprocessor and Real-Time Scheduling Chapter 10 1 Roadmap Multiprocessor Scheduling Real-Time Scheduling Linux Scheduling Unix SVR4 Scheduling Windows Scheduling Classifications of Multiprocessor Systems
More informationDMP Deterministic Shared Memory Multiprocessing
DMP Deterministic Shared Memory Multiprocessing University of Washington Joe Devietti, Brandon Lucia, Luis Ceze, Mark Oskin A multithreaded voting machine 2 thread 0 thread 1 while (more_votes) { load
More informationLecture 6: Lazy Transactional Memory. Topics: TM semantics and implementation details of lazy TM
Lecture 6: Lazy Transactional Memory Topics: TM semantics and implementation details of lazy TM 1 Transactions Access to shared variables is encapsulated within transactions the system gives the illusion
More informationPhased Transactional Memory
Phased Transactional Memory Dan Nussbaum Scalable Synchronization Research Group Joint work with Yossi Lev and Mark Moir Sun Microsystems Labs August 16, 2007 1 Transactional Memory (TM) Replace locks
More informationCommit Algorithms for Scalable Hardware Transactional Memory. Abstract
Commit Algorithms for Scalable Hardware Transactional Memory Seth H. Pugsley, Rajeev Balasubramonian UUCS-07-016 School of Computing University of Utah Salt Lake City, UT 84112 USA August 9, 2007 Abstract
More informationTowards a Software Transactional Memory for Graphics Processors
Eurographics Symposium on Parallel Graphics and Visualization (21) J. Ahrens, K. Debattista, and R. Pajarola (Editors) Towards a Software Transactional Memory for Graphics Processors Daniel Cederman, Philippas
More informationSoftware Transactional Memory Should Not Be Obstruction-Free
Software Transactional Memory Should Not Be Obstruction-Free Robert Ennals IRC-TR-06-052 INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL
More informationParallelizing SPECjbb2000 with Transactional Memory
Parallelizing SPECjbb2000 with Transactional Memory JaeWoong Chung, Chi Cao Minh, Brian D. Carlstrom, Christos Kozyrakis Computer Systems Laboratory Stanford University {jwchung, caominh, bdc, kozyraki}@stanford.edu
More informationFlowBack: Providing Backward Recovery for Workflow Management Systems
FlowBack: Providing Backward Recovery for Workflow Management Systems Bartek Kiepuszewski, Ralf Muhlberger, Maria E. Orlowska Distributed Systems Technology Centre Distributed Databases Unit ABSTRACT The
More informationCS5412: TRANSACTIONS (I)
1 CS5412: TRANSACTIONS (I) Lecture XVII Ken Birman Transactions 2 A widely used reliability technology, despite the BASE methodology we use in the first tier Goal for this week: in-depth examination of
More informationDesign Tradeoffs in Modern Software Transactional Memory Systems
Design Tradeoffs in Modern Software al Memory Systems Virendra J. Marathe, William N. Scherer III, and Michael L. Scott Department of Computer Science University of Rochester Rochester, NY 14627-226 {vmarathe,
More information) Intel)(TX)memory):) Transac'onal) Synchroniza'on) Extensions)(TSX))) Transac'ons)
) Intel)(TX)memory):) Transac'onal) Synchroniza'on) Extensions)(TSX))) Transac'ons) Transactions - Definition A transaction is a sequence of data operations with the following properties: * A Atomic All
More informationCloud Programming James Larus Microsoft Research. July 13, 2010
Cloud Programming James Larus Microsoft Research July 13, 2010 New Programming Model, New Problems (and some old, unsolved ones) Concurrency Parallelism Message passing Distribution High availability Performance
More informationTransactional Memory
Transactional Memory Architectural Support for Practical Parallel Programming The TCC Research Group Computer Systems Lab Stanford University http://tcc.stanford.edu TCC Overview - January 2007 The Era
More informationarxiv: v2 [cs.dc] 2 Mar 2017
1 DyAdHyTM: A Low Overhead Dynamically Adaptive Hybrid Transactional Memory on Big Data Graphs Mohammad Qayum and Abdel-Hameed Badawy, New Mexico State University Jeanine Cook, Sandia National Laboratories
More informationTransactional Memory. Prof. Hsien-Hsin S. Lee School of Electrical and Computer Engineering Georgia Tech
Transactional Memory Prof. Hsien-Hsin S. Lee School of Electrical and Computer Engineering Georgia Tech (Adapted from Stanford TCC group and MIT SuperTech Group) Motivation Uniprocessor Systems Frequency
More informationDHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI
DHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI Department of Computer Science and Engineering CS6302- DATABASE MANAGEMENT SYSTEMS Anna University 2 & 16 Mark Questions & Answers Year / Semester: II / III
More informationPart IV. Chapter 15 - Introduction to MIMD Architectures
D. Sima, T. J. Fountain, P. Kacsuk dvanced Computer rchitectures Part IV. Chapter 15 - Introduction to MIMD rchitectures Thread and process-level parallel architectures are typically realised by MIMD (Multiple
More informationOptimizing Hybrid Transactional Memory: The Importance of Nonspeculative Operations
Optimizing Hybrid Transactional Memory: The Importance of Nonspeculative Operations Torvald Riegel Technische Universität Dresden, Germany torvald.riegel@tudresden.de Patrick Marlier Université de Neuchâtel,
More informationKey-value store with eventual consistency without trusting individual nodes
basementdb Key-value store with eventual consistency without trusting individual nodes https://github.com/spferical/basementdb 1. Abstract basementdb is an eventually-consistent key-value store, composed
More informationLogSI-HTM: Log Based Snapshot Isolation in Hardware Transactional Memory
LogSI-HTM: Log Based Snapshot Isolation in Hardware Transactional Memory Lois Orosa and Rodolfo zevedo Institute of Computing, University of Campinas (UNICMP) {lois.orosa,rodolfo}@ic.unicamp.br bstract
More informationTransactional Memory. R. Guerraoui, EPFL
Transactional Memory R. Guerraoui, EPFL Locking is history Lock-freedom is difficult Wanted A concurrency control abstraction that is simple, robust and efficient Transactions Historical perspective Eswaran
More informationSoftware Transactional Memory
Software Transactional Memory Michel Weimerskirch 22nd January 2008 Technical University of Kaiserslautern, 67653 Kaiserslautern, Germany michel@weimerskirch.net WWW home page: http://michel.weimerskirch.net/
More information