Java for Computational Science and Engineering – Simulation and Modeling II

Geoffrey Fox, 21 August 97

NPAC, Syracuse University, 111 College Place, Syracuse NY 13244-4100

 

We are pleased to present a second set of papers discussing the role of Java in Science and Engineering Simulation. The first group of 14 publications was presented at a small workshop with 45 participants at Syracuse Dec 16-17, 1996 and published in the June 97 issue of Concurrency:Practice and Experience. Here we introduce 30 papers from a follow-up workshop that was sponsored by ACM in Las Vegas on June 21. The growing interest in this field is also supported by an email discussion list and other materials collected at the web site http://www.npac.syr.edu/projects/javaforcse.

Java and Web technology can be used in many areas of science and engineering computation. These include sophisticated user interfaces and coarse-grain integration of different modules in complex meta-applications. However there seems general agreement that it is possible to build powerful compilers that will allow Java coded programs to give performance that is very competitive with those written in C or Fortran. The first 6 papers (1_hummel to 6_hardwick) address compiler issues while the next 4 (7_bik to 10_smith) focus on the related runtime support and library area. The next 4 (11,12,13,13A) address worldwide computing which is a natural consequence of Java and the growing Web hardware and software. The 5 following papers (14_bik to 18_philippsen) tackle the related topic of the use of Java to enable parallel and distributed computing. Then 4 contributions (19_cierniak to 22_driggers) discuss Java enhancing the scientific programming environment with tools in collaboration, performance tuning and visualization. Finally there are 7 papers (23_casanova) to 29_adapelli) which deliver on the real point -- namely applications of Java to solve real problems!

Currently it appears that Java promises the computational scientist programming environments that have both attractive user interfaces and high performance execution. An important purpose of our initial workshops and the follow-up events is to get a broad input and study of the issues in this field so that we can guide the rapidly moving Java juggernaut to be maximally effective for scientific and engineering computation. In fact, much of the discussion at the workshop centered on the near term as there was a sense that now is the time to influence the development of the Java language and Virtual Machine so it is truly an excellent scientific programming language. Points discussed included the need for an efficient complex arithmetic data type, the performance implications of Java's insistence on portable results as well as portable code, full IEEE floating point support, efficient multidimensional arrays, a more sophisticated Math class, and the support of parallel programming by Java threads. In concert with these important but perhaps technically clear issues, we can explore the remarkable new horizons offered by the Web and the Java language to change the problems we tackle and the way we approach them.