Abstract
The recent advance of multicore architectures and the deployment of multiprocessors as the mainstream computing platforms have given rise to a new concurrent programming impetus. Software transactional memories (STM) are one of the most promising approaches to take up this challenge. The aim of a STM system is to discharge the application programmer from the management of synchronization when he/she has to write multiprocess programs. His/her task is to decompose his/her program into a set of sequential tasks that access shared objects, and to decompose each task in atomic units of computation. The management of the required synchronization is ensured by the associated STM system. This paper presents two existing STM systems, and a new one based on time-window mechanism. The paper, which focuses mainly on STM principles, has an introductory and survey flavor.
Similar content being viewed by others
References
Cachopo J, Rito-Silva A (2006) Versioned boxes as the basis for transactional memory. Sci Comput Progr 63(2):172–175
Dice D, Shalev O, Shavit N (2006) Transactional locking II. In: Proc. 20th int’l symposium on distributed computing (DISC’06). LNCS, vol 4167. Springer, Berlin, pp 194–208
Felber P, Fetzer Ch, Guerraoui R, Harris T (2008) Transactions are coming back, but are they the same? ACM SIGACT News, Distributed Comput Column 39(1):48–58
Guerraoui R, Kapałka M (2008) On the correctness of transactional memory. In: Proc. 13th ACM SIGPLAN symposium on principles and practice of parallel programming (PPoPP’08), pp 175–184
Harris T, Cristal A, Unsal OS, Ayguade E, Gagliardi F, Smith B, Valero M (2007) Transactional memory: an overview. IEEE Micro 27(3):8–29
Herlihy MP, Luchangco V (2008) Distributed Computing and the Multicore Revolution. ACM SIGACT News, Distributed Comput Column 39(1):62–72
Herlihy MP, Moss JEB (1993) Transactional memory: architectural support for lock-free data structures. In: Proc 20th ACM int’l symposium on computer architecture (ISCA’93), pp 289–300, 1993
Imbs D, Raynal M (2009) Provable STM Properties: Leveraging clock and locks to favor commit and early abort. In: Proc 10th int’l conference on distributed computing and networking (ICDCN’09). LNCS, vol 5408. Springer, Berlin, pp 67–78
Imbs D, Raynal M (2009) A versatile STM protocol with invisible read operations that satisfies the virtual world consistency condition. In: 16th Colloquium on structural information and communication complexity (SIROCCO’09). LNCS, vol 5869. Springer, Berlin, pp 276–290
Imbs D, Raynal M (2009) Software transactional memories: an approach for multicore programming. In: 10th int’l conference on parallel computing technologies (PaCT’09). LNCS, vol 5698. Springer, Berlin, pp 26–40
Larus J, Kozyrakis Ch (2008) Transactional memory: is TM the answer for improving parallel programming? Commun ACM 51(7):80–89
Papadimitriou ChH (1979) The serializability of concurrent updates. J ACM 26(4):631–653
Raynal M (2008) Synchronization is coming back, but is it the same? Keynote speech. In: IEEE 22nd int’l conf on advanced inf. networking and applications (AINA’08), pp 1–10, 2008
Shavit N, Touitou D (1997) Software transactional memory. Distrib Comput 10(2):99–116
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Imbs, D., Raynal, M. Software transactional memories: an approach for multicore programming. J Supercomput 57, 203–215 (2011). https://doi.org/10.1007/s11227-010-0388-0
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11227-010-0388-0