Java Technology Home Page
A-Z Index

Java Developer Connection(SM)
Technical Articles

Downloads, APIs, Documentation
Java Developer Connection
Tutorials, Tech Articles, Training
Online Support
Community Discussion
News & Events from Everywhere
Products from Everywhere
How Java Technology is Used Worldwide
Print Button
 
Articles Index

Java Grande Forum Pushes JavaTM Technology Toward New Heights

By Daniel Steinberg; Reprinted from JavaWorld
(September 1999)

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 Groups

As it stands now, according to Fox, the Java Grande meeting group has two fundamental roles:
  • It works with Sun to make "modest changes in the Java programming language to support scientific computing."
  • The members explain to the high-end computing community how to use Java technology and the Grande framework—and why they should want to do so.
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 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 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 the Java technology. 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. 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 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.

Resources

The Java Grande Web Site

coffeecup

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 Feedback

Tell us what you think of this article.

Duke

 Very worth reading  Worth reading  Not worth reading

If you have other comments or ideas for future articles, please type them here:


Print Button
[ This page was updated: 27-Nov-2000 ]
Products & APIs | Developer Connection | Docs & Training | Online Support
Community Discussion | Industry News | Solutions Marketplace | Case Studies
Glossary | Feedback | A-Z Index
For more information on Java technology
and other software from Sun Microsystems, call:
(800) 786-7638
Outside the U.S. and Canada, dial your country's AT&T Direct Access Number first.
Sun Microsystems, Inc.
Copyright © 1995-2000 Sun Microsystems, Inc.
All Rights Reserved. Terms of Use. Privacy Policy.