Prospects for Effective Tiling in Java

Bowen Alpern and Susan Flynn-Hummel
IBM T. J. Watson Research Center, Yorktown Heights


To those habituated to the norms of optimizing Fortran programs, the land of Java optimizations is apt to be *terra incognita*. We will present a preliminary report on our initial forays into this strange country. Its exotic character is felt along two orthogonal dimensions (neither of them linguistic): its regulatory environment and its optimization terrain.

The regulatory environment of Fortran is quite *laissez-faire*: if there is agreement among a community that a particular program transformation preserves a program's (socially constructed) meaning, then one is free to apply the it. In Java, such transformations are expressly forbidden: a program must appear to have been executed in program order.

Fortran's optimization terrain is painfully dull: either the programmer tiles explicitly or the compiler tiles implicitly. Java's optimization terrain is exquisitely Baroque: implicit tiling might be attempted by a byte-code compiler, a byte-code optimizer, a Just-In-Time compiler, a dynamic compiler, a static compiler, a preprocessor, or even a garbage collector. In addition, native libraries might be consulted or local dialects (heavily persecuted) spoken.

Our talk is completely void of technical content. Being, rather, a travelogue, beginning with a summary of Java restrictions that tend to inhibit tiling, continuing with our (largely possitive) experience with explicit tiling in Java, moving on we present a taxonomy of implicit optimization strategies in Java. Finally, we conclude with our predictions as to whether Java will take over the world.


Further info and related paper(s):