ACM Home Page
Please provide us with feedback. Feedback
Supporting exception handling for futures in Java
Full text PdfPdf (334 KB)
Source PPPJ; Vol. 272 archive
Proceedings of the 5th international symposium on Principles and practice of programming in Java table of contents
Lisboa, Portugal
SESSION: Concurrency table of contents
Pages: 175 - 184  
Year of Publication: 2007
ISBN:978-1-59593-672-1
Authors
Lingli Zhang  University of California, Santa Barbara
Chandra Krintz  University of California, Santa Barbara
Priya Nagpurkar  University of California, Santa Barbara
Sponsors
ACM: Association for Computing Machinery
: Câmara Municipal de Palmela
: Almada Camara Municipal
: RidgeSoft
: ParaRede Business Upgrade
: AMD 64 Opteron
: FUNDAÇÃO Luso-Americana
: Sun Microsystems
IBM : IBM
: YDreams
: GFI
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 7,   Downloads (12 Months): 90,   Citation Count: 4
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

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

ABSTRACT

A future is a simple and elegant construct that programmers can use to identify potentially asynchronous computation and to introduce parallelism into serial programs. In its recent 5.0 release, Java provides an interface-based implementation of futures that enables users to encapsulate potentially asynchronous computation and to define their own execution engines for futures. In prior work, we have proposed an alternative model, called directive-based lazy futures (DBLFutures), to support futures in Java, that simplifies Java programmer effort and improves performance and scalability of future-based applications. In the DBLFuture model, programmers use a new directive, "@future", to specify potentially concurrent computations within a serial program. DBLFutures enable programmers to focus on the logic and correctness of a program in the serial version first, and then to introduce parallelism gradually and intuitively. Moreover, DBLFutures provide greater flexibility to the Java virtual machine for efficient future support.

In this paper, we investigate the exception handling aspect of futures in Java. In Java 5.0 Future APIs, exceptions of future execution are propagated to the point in the program at which future values are queried (used). We show that this exception handling model is not appropriate or desirable for DBLFutures. Instead, we propose an as-if-serial exception handling mechanism for DBL-Futures in which the system delivers exceptions at the same point as they would be delivered if the program was executed sequentially. Our approach, we believe, provides programmers with intuitive exception handling behavior and control. We present the design and implementation of our approach within the DBLFuture framework in the Jikes Research Virtual Machine. Our results show that our implementation introduces negligible overhead for applications without exceptions, and guarantees serial semantics of exception handling for applications that throw exceptions.


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
E. Allan, D. Chase, V. Luchangco, J. Maessen, S. Ryu, G. Steele, and S. Tobin-Hochstadt. The Fortress language specification version 0.785. Technical report, Sun Microsystems, 2005.
 
2
E. Allan, D. Chase, V. Luchangco, J. Maessen, S. Ryu, G. Steele, and S. Tobin-Hochstadt. The Fortress language specification version 0.954. Technical report, Sun Microsystems, 2006.
3
4
5
 
6
 
7
8
 
9
 
10
J. Danaher. The jcilk-1 runtime system. Master's thesis, Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science, June 2005.
 
11
12
13
 
14
 
15
16
 
17
 
18
Intermetrics, editor. Information Technology -- Programming Languages -- Ada. ISO/IEC 8652:1995(E), 1995.
 
19
V. Issarny. An exception handling mechanism for parallel object-oriented programming: Towards reusable, robust distributed software. Journal of Object-Oriented Programming, 6(6):29--39, 1993.
20
 
21
Java Remote Method Invocation Specification. http://java.sun.com/j2se/1.4.2/docs/guide/rmi/.
 
22
IBM Jikes Research Virtual Machine (RVM). http://www-124.ibm.com/developerworks/oss/jikesrvm.
 
23
JSR166: Concurrency utilities. http://java.sun.com/j2se/1.5.0/docs/guide/concurrency.
24
25
 
26
I. Lee. The JCilk multithreaded language. Master's thesis, Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science, August 2005.
 
27
28
 
29
 
30
 
31
OpenMP specifications. http://www.openmp.org/specs.
32
 
33
 
34
 
35
R. van Nieuwpoort, J. Maassen, T. Kielmann, and H. Bal. Satin: Simple and efficient Java-based grid programming. Scalable Computing: Practice and Experience, 6(3):19--32, September 2005.
36
 
37
 
38
 
39
 
40
L. Zhang, C. Krintz, and S. Soman. Efficient Support of Fine-grained Futures in Java. In International Conference on Parallel and Distributed Computing Systems (PDCS), 2006.


Collaborative Colleagues:
Lingli Zhang: colleagues
Chandra Krintz: colleagues
Priya Nagpurkar: colleagues