ACM Home Page
Please provide us with feedback. Feedback
Safe futures for Java
Full text PdfPdf (364 KB)
Source Conference on Object Oriented Programming Systems Languages and Applications archive
Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications table of contents
San Diego, CA, USA
SESSION: Concurreny || concurrency table of contents
Pages: 439 - 453  
Year of Publication: 2005
ISBN:1-59593-031-0
Also published in ...
Authors
Adam Welc  Purdue University, West Lafayette, IN
Suresh Jagannathan  Purdue University, West Lafayette, IN
Antony Hosking  Purdue University, West Lafayette, IN
Sponsors
ACM: Association for Computing Machinery
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 11,   Downloads (12 Months): 131,   Citation Count: 15
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1094811.1094845
What is a DOI?

ABSTRACT

A future is a simple and elegant abstraction that allows concurrency to be expressed often through a relatively small rewrite of a sequential program. In the absence of side-effects, futures serve as benign annotations that mark potentially concurrent regions of code. Unfortunately, when computation relies heavily on mutation as is the case in Java, its meaning is less clear, and much of its intended simplicity lost.This paper explores the definition and implementation of safe futures for Java. One can think of safe futures as truly transparent annotations on method calls, which designate opportunities for concurrency. Serial programs can be made concurrent simply by replacing standard method calls with future invocations. Most significantly, even though some parts of the program are executed concurrently and may indeed operate on shared data, the semblance of serial execution is nonetheless preserved. Thus, program reasoning is simplified since data dependencies present in a sequential program are not violated in a version augmented with safe futures.Besides presenting a programming model and API for safe futures, we formalize the safety conditions that must be satisfied to ensure equivalence between a sequential Java program and its future-annotated counterpart. A detailed implementation study is also provided. Our implementation exploits techniques such as object versioning and task revocation to guarantee necessary safety conditions. We also present an extensive experimental evaluation of our implementation to quantify overheads and limitations. Our experiments indicate that for programs with modest mutation rates on shared data, applications can use futures to profitably exploit parallelism, without sacrificing safety.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
 
2
3
4
 
5
Bernstein, A. Program analysis for parallel processing. IEEE Transactions on Computers 15, 5 (Oct. 1966), 757--762.
6
7
8
9
10
11
12
13
14
15
 
16
17
18
19
20
21
22
23
 
24
25
 
26
Jensen, E. H., Hagensen, G. W., and Broughton, J. M. A new approach to exclusive data access in shared memory multiprocessors. Tech. rep., Lawrence Livermore National Laboratories, 1987.
 
27
JSR166: Concurrency utilities. http://java.sun.com/j2se/1.5.0/docs/guide/concurrency/.
 
28
29
30
31
32
33
34
 
35
Proceedings of the ACM Conference on Object-Oriented Programming Systems, Languages, and Applications (Denver, Colorado, Nov.). ACM SIGPLAN Notices 34, 10 (Oct. 1999).
36
37
 
38
39
40
41
 
42
43
44
 
45
Welc, A., Jagannathan, S., and Hosking, A. L. Transactional monitors for concurrent objects. In Proceedings of the European Conference on Object-Oriented Programming (Oslo, Norway, June), M. Odersky, Ed. vol. 3086 of Lecture Notes in Computer Science. Springer-Verlag, 2004, pp. 519--542.

CITED BY  15

Collaborative Colleagues:
Adam Welc: colleagues
Suresh Jagannathan: colleagues
Antony Hosking: colleagues