Efficient Support of Fine-Grained Futures in Java

L. Zhang, C. Krintz, and S. Soman (USA)


Java, futures, fine-grained, parallel programming, task scheduling, profile-guided


A future is a parallel programming language construct that enables programmers to specify potentially asynchronous computations. We present and empirically evaluate a novel implementation of futures for Java. Our futures implemen tation is a JVM extension that couples estimates of future computational granularity with underlying resource avail ability to enable automatic and adaptive decisions of when to spawn futures in parallel or to execute them sequentially. Our system builds from, combines, and extends (i) lazy task creation and (ii) a JVM sampling infrastructure previously used solely for dynamic and adaptive compilation. We em pirically evaluate our system using different benchmarks, triggers for automatic spawning of futures, processor avail ability, and JVM configurations. We show that our future implementation for Java is efficient and scalable for fine grained Java futures without requiring programmer inter vention.

Important Links:

Go Back