Erik Helin, Henry Rodrick

The Efficiency of Software Transactional Memory

Abstract

Concurrency problems in computer programs are notoriously hard to solve correctly. This is largely due to the complexity of reasoning about and using semaphores and similar locking mechanisms. In this study, an alternative model for solving concurrency related problems called Software Transactional Memory (STM) is evaluated. The evaluation is done using the Haskell programming language, which supports both concurrency models. For benchmarking, solutions to two typical concurrency problems have been developed. The performance aspects studied are running time, memory consumption and scalability. The results show that the two different concurrency models have similar performance characteristics in many cases, an important exception being that STM performs much worse when a lot of work is performed inside a transaction. The conclusion is that Software Transactional Memory can be an efficient alternative to semaphores if used carefully.

Effektiviteten hos Software Transactional Memory

Referat

Problem i datorprogram relaterade till samtidig exekvering av kod är ökänt svåra att lösa. Detta beror till stor del på svårigheterna med att resonera kring och implementera denna typ av programkod med hjälp av semaforer och liknande låsmekanismer. I denna studie har en alternativ modell för att lösa samtidighetsrelaterade problem kallad Software Transactional Memory (STM) utvärderats. Utvärderingen har gjorts med hjälp av programspråket Haskell, vilket stöder både STM och semaforer. För benchmark har lösningar till två typiska samtidighetsrelaterade problem utvecklats. Prestanda har sedan mätts med avseende på körtid, minnesåtgång och skalbarhet. Resultaten visar att de två olika samtidighetsmodellerna har likartade prestandaegenskaper i många fall. Ett viktigt undantag är att STM-lösningarna blir betydligt långsammare än semaforlösningarna då mycket jobb utförs i en transaktion. Slutsatsen är att ett omsorgsfullt användande av STM kan vara ett effektivt alternativ till semaforer.