Results 1 -
4 of
4
STAMP: Stanford Transactional Applications for Multi-Processing
"... Abstract—Transactional Memory (TM) is emerging as a promising technology to simplify parallel programming. While several TM systems have been proposed in the research literature, we are still missing the tools and workloads necessary to analyze and compare the proposals. Most TM systems have been ev ..."
Abstract
-
Cited by 66 (6 self)
- Add to MetaCart
Abstract—Transactional Memory (TM) is emerging as a promising technology to simplify parallel programming. While several TM systems have been proposed in the research literature, we are still missing the tools and workloads necessary to analyze and compare the proposals. Most TM systems have been evaluated using microbenchmarks, which may not be representative of any real-world behavior, or individual applications, which do not stress a wide range of execution scenarios. We introduce the Stanford Transactional Applications for Multi-Processing (STAMP), a comprehensive benchmark suite for evaluating TM systems. STAMP includes eight applications and thirty variants of input parameters and data sets in order to represent several application domains and cover a wide range of transactional execution cases (frequent or rare use of transactions, large or small transactions, high or low contention, etc.). Moreover, STAMP is portable across many types of TM systems, including hardware, software, and hybrid systems. In this paper, we provide descriptions and a detailed characterization of the applications in STAMP. We also use the suite to evaluate six different TM systems, identify their shortcomings, and motivate further research on their performance characteristics. I.
Can transactions enhance parallel programs
- In Proceedings of the 19th International Workshop on Languages and Compilers for Parallel Computing (LCPC
, 2006
"... Abstract. Transactional programming constructs have been proposed as key elements of advanced parallel programming models. Currently, it is not well understood to what extent such constructs enable efficient parallel program implementations and ease parallel programming beyond what is possible with ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
Abstract. Transactional programming constructs have been proposed as key elements of advanced parallel programming models. Currently, it is not well understood to what extent such constructs enable efficient parallel program implementations and ease parallel programming beyond what is possible with existing techniques. To help answer these questions, we investigate the technology underlying transactions and compare it to existing parallelization techniques. We also consider the most important parallelizing transformation techniques and look for opportunities to further improve them through transactional constructs or – vice versa – to improve transactions with these transformations. Finally, we evaluate the use of transactions in the SPEC OMP benchmarks. 1 Transaction-Supported Parallel Programming Models Although a large number of parallel programming models have been proposed over the last three decades, there are reasons to continue the search for better models. Evidently, the ideal model has not yet been discovered; creating programs
WRITING APPLICATIONS THAT BENEFIT FROM THE MASSIVE COMPUTATIONAL POWER OF FUTURE MULTICORE CHIP MULTIPROCESSORS WILL NOT BE AN EASY TASK FOR MAINSTREAM PROGRAMMERS ACCUSTOMED TO SEQUENTIAL ALGORITHMS RATHER THAN PARALLEL ONES. THIS ARTICLE PRESENTS A SURV
"... ...... The advent of shared-memory multicore microprocessors has created an immense opportunity to exploit thread-level parallelism. In most applications, parallel thread execution requires synchronization or ordering mechanisms for accessing shared data. Traditional multithreaded programming models ..."
Abstract
- Add to MetaCart
...... The advent of shared-memory multicore microprocessors has created an immense opportunity to exploit thread-level parallelism. In most applications, parallel thread execution requires synchronization or ordering mechanisms for accessing shared data. Traditional multithreaded programming models usually offer a set of low-level primitives, such as locks, to guarantee mutual exclusion; ownership of one or more locks protects access to shared data. Locks are complex to use and error prone— especially when a programmer is trying to avoid deadlock situations or to achieve better scalability on highly parallel hardware

