Software Transactional Memory (STM) provides synchronization support to ensure atomicity and isolation when threads access shared data in concurrent applications. With STM, shared data accesses are encapsulated within transactions, which are automatically handled by the STM layer. Hence, programmers are not requested to use code-synchronization mechanisms explicitly, like locking. In this article, we present our experience in designing and implementing a partial abort scheme for STM. The objective of our work is threefold: 1) enabling STM to undo only part of the transaction execution in the case of conflict, 2) designing a scheme that is fully transparent to programmers, thus also allowing to run existing STM applications without modifications, and 3) providing a scheme that can be easily integrated within existing STM runtime environments without altering their internal structure. The scheme that we designed is based on automated software instrumentation, which injects into the application capabilities to undo the required portions of transaction executions. Further, it can correctly undo also non-transactional operations executed on the stack and the heap during a transaction. This capability provides programmers with the advantage of writing transactional code without concerns about the side effects of aborted transactions on both shared and thread-private data. We integrated and evaluated our partial abort scheme within the TinySTM open-source library. We analyze the experimental results we achieved with common STM benchmark applications, focusing on the advantages and disadvantages of the proposed solutions for implementing our scheme’s different components. Hence, we highlight the appropriate choices and possible solutions to improve partial abort schemes further.

Pellegrini, A., Di Sanzo, P., Piccione, A., Quaglia, F. (2022). Design and implementation of a fully transparent partial abort support for software transactional memory. SOFTWARE, PRACTICE AND EXPERIENCE, 52(11), 2456-2475 [10.1002/spe.3134].

Design and implementation of a fully transparent partial abort support for software transactional memory

Alessandro Pellegrini
;
Francesco Quaglia
2022-06-01

Abstract

Software Transactional Memory (STM) provides synchronization support to ensure atomicity and isolation when threads access shared data in concurrent applications. With STM, shared data accesses are encapsulated within transactions, which are automatically handled by the STM layer. Hence, programmers are not requested to use code-synchronization mechanisms explicitly, like locking. In this article, we present our experience in designing and implementing a partial abort scheme for STM. The objective of our work is threefold: 1) enabling STM to undo only part of the transaction execution in the case of conflict, 2) designing a scheme that is fully transparent to programmers, thus also allowing to run existing STM applications without modifications, and 3) providing a scheme that can be easily integrated within existing STM runtime environments without altering their internal structure. The scheme that we designed is based on automated software instrumentation, which injects into the application capabilities to undo the required portions of transaction executions. Further, it can correctly undo also non-transactional operations executed on the stack and the heap during a transaction. This capability provides programmers with the advantage of writing transactional code without concerns about the side effects of aborted transactions on both shared and thread-private data. We integrated and evaluated our partial abort scheme within the TinySTM open-source library. We analyze the experimental results we achieved with common STM benchmark applications, focusing on the advantages and disadvantages of the proposed solutions for implementing our scheme’s different components. Hence, we highlight the appropriate choices and possible solutions to improve partial abort schemes further.
giu-2022
Pubblicato
Rilevanza internazionale
Articolo
Esperti anonimi
Settore ING-INF/05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI
English
Pellegrini, A., Di Sanzo, P., Piccione, A., Quaglia, F. (2022). Design and implementation of a fully transparent partial abort support for software transactional memory. SOFTWARE, PRACTICE AND EXPERIENCE, 52(11), 2456-2475 [10.1002/spe.3134].
Pellegrini, A; Di Sanzo, P; Piccione, A; Quaglia, F
Articolo su rivista
File in questo prodotto:
File Dimensione Formato  
Pell22 (1).pdf

accesso aperto

Tipologia: Documento in Post-print
Licenza: Non specificato
Dimensione 597.09 kB
Formato Adobe PDF
597.09 kB Adobe PDF Visualizza/Apri

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/2108/315257
Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus 0
  • ???jsp.display-item.citation.isi??? 0
social impact