Back to Search Start Over

Concurrent programming with revisions and isolation types

Authors :
BurckhardtSebastian
LeijenDaan
BaldassinAlexandro
Source :
ACM SIGPLAN Notices. 45:691-707
Publication Year :
2010
Publisher :
Association for Computing Machinery (ACM), 2010.

Abstract

Building applications that are responsive and can exploit parallel hardware while remaining simple to write, understand, test, and maintain, poses an important challenge for developers. In particular, it is often desirable to enable various tasks to read or modify shared data concurrently without requiring complicated locking schemes that may throttle concurrency and introduce bugs. We introduce a mechanism that simplifies the parallel execution of different application tasks. Programmers declare what data they wish to share between tasks by using isolation types, and execute tasks concurrently by forking and joining revisions . These revisions are isolated: they read and modify their own private copy of the shared data only. A runtime creates and merges copies automatically, and resolves conflicts deterministically, in a manner declared by the chosen isolation type. To demonstrate the practical viability of our approach, we developed an efficient algorithm and an implementation in the form of a C# library, and used it to parallelize an interactive game application. Our results show that the parallelized game, while simple and very similar to the original sequential game, achieves satisfactory speedups on a multicore processor.

Details

ISSN :
15581160 and 03621340
Volume :
45
Database :
OpenAIRE
Journal :
ACM SIGPLAN Notices
Accession number :
edsair.doi...........24bf375750ee78a4cf77024140c75c0d