Java Grande Forum Pushes JavaTM Technology Toward New HeightsBy Daniel Steinberg; Reprinted from JavaWorld
The Java Grande conference was established with the purpose of championing Java technology for scientific applications and high-performance network computing systems. This article covers the goals of this special forum, as gleaned from an interview with Geoffrey Fox, the academic coordinator for Java Grande.
The 1999 Java Grande Conference, the fourth in a series of meetings "exploring the use of the Java programming language for scientific and engineering computing and high-performance network computing," was held in early June, the weekend before the 1999 JavaOneSM conference in San Francisco. The Java Grande forum was established to promote Java's use in scientific applications and high-performance network computing systems. In choosing a name for the forum, members were careful not to choose a name that implied supercomputing or science exclusively, because they didn't want to put off members of the wider Java programming developer community. Java Grande Academic Coordinator Geoffrey Fox explains that the name was chosen because "it is meant to signify Java on the high-end scientific side, as opposed to the embedded side."
These days, high schools and colleges are using the Java programming language as an introductory programming language. Fox said that all the way back in 1996, he looked down the road and realized that soon the best young minds would no longer be interested in programming in Fortran and C++; he was convinced that eventually those two languages "wouldn't cut it" for high-end scientific apps. He felt that the only option was to convince the scientific community that Java technology could meet its needs.
When he tried to interest colleagues in moving their efforts to the Java platform, he was told that it was not appropriate for scientific use. Fox, who is also the director of the Northeast Parallel Architectures Center and a professor of physics and computer science at Syracuse University, admits that, at that early stage of the language's development, he had to agree with his colleagues' concerns about Java's performance. He pressed on, however, because he considered the goal of "convincing his colleagues to move to Java technology [to be] a matter of national security and economic wealth, given the limitations of programming in the older languages."
Fox began organizing meetings and conferences in 1996 and initially found little support. In the few years since, his efforts have begun to attract attention from those developers interested in high-end computing—and have piqued the interest of Sun Microsystems as well. James Gosling delivered the keynote address at last year's Java Grande meeting. This year, Bill Joy delivered the keynote, and both Gosling and Sun's John Gage attended the conference. Based on the success of this year's meeting, which was endorsed by the Association for Computing Machinery, the Java Grande organizers plan to hold their meeting immediately before the JavaOne conference every year from now on.
Java Grande's Working GroupsAs it stands now, according to Fox, the Java Grande meeting group has two fundamental roles:
The numerics group has found Sun to be very receptive to its ideas. Siamak Hassanzadeh, Sun's liaison to Java Grande, explains that, from Sun's perspective, the Java Grande forum serves as a model of an expert group. In a way, Java Grande has served as a prototype for the Java Community Process (JCP). The numerics group is currently preparing to submit seven Java Specification Requests to the JCP by the end of July.
The Work of the Numerics GroupOne of the challenges for the forum is that the problems its members encounter in developing nonstandard Java applications have many possible solutions, and each one involves a compromise. These problems can have broad implications. For example, there has been much discussion around the problem of how best to implement complex numbers in the Java programming language. According to Hassanzadeh, the team working on the Java 3DTM API at Sun is interested in Java Grande's work in this area, as some of the team's algorithms could benefit from an improvement in this complex-numbers implementation.
One option is to add complex objects to Java programs, but this results
in decreased performance. Other options include adding a primitive type,
or making compilers more clever. Another debate that surfaces in
implementing complex numbers involves operator overload. The Java Grande
forum supports operator overload, so that
At the Wednesday morning keynote address during JavaOne, Bill Joy made a point that is of particular interest to the high-end computing community: there are alternatives to insisting that calculations should have reproducible results across machines. For example, the Java implementation of a sine function currently returns the same value on any platform. Fox notes that "the disadvantages of this in the [high-end computing] community are sufficiently high" to encourage alternatives that might improve performance. There is agreement that Java's default behavior should retain reproducible results across machines, but that there should also be a second option that calls optimized routines for the numerical community.
The implementation of this change has not yet been agreed upon. Joy has
suggested introducing a new keyword called
Concurrency Working Group ActivitiesAnother area of interest to the high-end computing community is large-scale distributed and parallel computing. Gains in some of these concurrency areas have been made using Web-based collaboration, enabling many modestly-sized machines to work on the same problem. JiniTM and JavaSpacesTM can help with these problems if synchronization is not an issue. These so-called pleasingly parallel systems are set up so that, if a process breaks, it notifies other systems of the problem so that another agent can perform the task at another time.
High-end computing applications cannot accommodate the looseness of these asynchronous systems. As Fox points out, if you're doing a realtime fluid dynamics simulation and the component doing calculations for a wing breaks, you can't just get back to it at some vague time in the future. "In an immersive simulation you need all computers working at the same time. You need to synchronize," Fox says. The work of the concurrency group is of interest to a broader community as well, just as that of the numerics group is. For example, improved distributed and parallel computing will help weather forecasters. Bill Joy would like to see Java technology used to simulate the physical world. This work could help that effort, as well as research being done in fields such as cosmology and petroleum engineering.
The Java Grande forum is contemplating the idea that Enterprise JavaBeansTM (EJBs) may be the right things for the high-end computing community. Fox feels that the architecture of RMI is adequate, and wonders whether the forum can develop Enterprise Grande Beans based on EJBs. The forum is also looking at the message-passing interface (MPI), and believes there needs to be a new MPI model for parallel computing.
Future Plans for the ForumThe members of the Java Grande forum do not intend that it become a standards body for the Java programming language. So, for example, although many of its members would like to see parametrized types become a part of the language, the forum has no working group considering the issue. On the other hand, although no group is working on the idea of attaching dimensions to numbers (three meters, three feet, three seconds, and so on), Fox and Hassanzadeh recognize that this might be an appropriate subject for the Java Grande forum to consider in the future.
ResourcesThe Java Grande Web Site
Reprinted with permission from the September 1999 edition of JavaWorld magazine. Copyright Web Publishing Inc., an IDG Communications company. Register for editorial e-mailalerts at: http://www.javaworld.com/javaworld/common/jw-subscribe.html?JDevCon
About the Author
Daniel Steinberg is a visiting assistant professor of computer science and mathematics at Oberlin College. He learned to program in C (by reading Kernigan and Richie, and asking friends) and C++ on a Macintosh to help his research on elastic curves in hyperbolic space. Object-oriented design is the way in which mathematicians view the world, and so programming in the Java programming language was an obvious next step. Daniel has taught an introductory course in Java programming and object-oriented analysis and design.
Reader FeedbackTell us what you think of this article.