The Java programming language is well regarded for making things that go blink on a Web site, but it is seen as too limited and too slow for serious number crunching. At the 2000 SIAM Annual Meeting, Ron Boisvert and Roldan Pozo, both of the National Institute of Standards and Technology, Jos Moreira of IBM, and Sid Chatterjee of the University of North Carolina at Chapel Hill described several projects and benchmarking studies that may make the idea of slow Java as outdated as the 25-cent cup of coffee. But its portability, its access to a rich library of graphics and GUIs, and its network savvy account for its widespread acceptance and, hence, a natural wish to see it used for scientific applications. The theological conflicts arise, for example, from Java's requirement for strict array bound checking. While appealing to language purists, this rigid requirement frustrates the numerical analyst who wants to dispense with it to optimize the handling of sparse matrices.
Most existing libraries focus on linear algebra.
Java will reach a new level of usability when a good ODE solver written in pure Java is widely available. As an example of the developments needed to make Java suitable for serious numerics, Moreira provided details on the effort to overcome Java's strict array bound checking, with the goal of optimizing loop nests. In Fortran, he explained, a compiler's first step toward speedup would be to apply code transformations like loop interchange and outer loop unrolling. Unfortunately, important developments like true multidimensional arrays and optimizing compilers for numerics still have uncertain commercial prospects, because those making the business decisions have not yet been persuaded of the market economics. Ron Boisvert, Roldan Pozo, and Jos Moreira will be giving a tutorial on Java for High Performance Computing at the SIAM Parallel Processing Meeting in Portsmouth, Virginia, this spring.