Java Grande pushes Java toward new heights
September 1, 1999
September 1, 1999
by Daniel H. Steinberg, with contributions from Paul Philion
(IDG) -- he 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 JavaOne 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 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 Java 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 Java 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 groups
As it stands now, according to Fox, the Java Grande meeting group has two fundamental roles:
Currently, the forum is divided into a numerics working group and a concurrency working group. The forum, though, "is open to any qualified member of academia, industry, or government who is willing to play an active role."
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 group
One 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 Java. According to Hassanzadeh, the team working on the Java 3D 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, 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 a + b means addition whether the two variables are integers or complex numbers.
Fox says that, if the high-end computing community is to commit to this programming language, "Java has to first be reasonable," in the same way that doctors pledge to first "do no harm."
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 fast, which, when included in a class, indicates that your compiler should use traditional methods. The point would be to establish performance options that enable the high-end computing community to buy into the idea of programming in Java. The current debate is whether there should be two levels of performance options or three.
Other issues being discussed by the numerics group include those centered around the actual implementation of various algorithms, interval arithmetic, and the huge amount of overhead that currently comes with multidimensional arrays.
Concurrency working group activities
Another 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.
Jini and JavaSpaces 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 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 JavaBeans (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 forum
The 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.
Sun sees magic in details of MAJC chip
RELATED IDG.net STORIES:
Security bug hits Microsoft's Java virtual machine
Java Grande Web site
|Back to the top||
© 2001 Cable News Network. All Rights Reserved.|
Terms under which this service is provided to you.
Read our privacy guidelines.