Given by Geoffrey Fox at Java 98/JavaOne Palo Alto/San Francisco on February 28 98 March 24 98. Foils prepared 12 April 98
Outside Index
Summary of Material
Definition of Grande Applications |
Discussion of Workshops and typical papers
|
Discussion of Forum and areas of study |
Illustration of Frameworks using JDBC as an example |
The Computing Services Framework |
Outside Index Summary of Material
Geoffrey Fox |
Syracuse University |
NPAC |
111 College Place Syracuse NY 13244 4100 |
3154432163 |
Definition of Grande Applications |
Discussion of Workshops and typical papers
|
Discussion of Forum and areas of study |
Illustration of Frameworks using JDBC as an example |
The Computing Services Framework |
Use of Java for: |
High Performance Network Computing |
Scientific and Engineering Computation |
(Distributed) Modeling and Simulation |
Parallel and Distributed Computing |
Data Intensive Computing |
Communication and Computing Intensive Commercial and Academic Applications |
HPCC Computational Grids ........ |
Very difficult to find a "conventional name" that doesn't get misunderstood by some community! |
http://www.npac.syr.edu/projects/javaforcse
|
December 16,17 96 Syracuse -- 40 Attendees |
June 21 97 Las Vegas attached to PPoPP - 100 Attendees |
February 28,March 1 98 Palo Alto -- 200 Attendees |
Proceedings online and in June 97, November 97 and ~August 98 issues of Concurrency:Practice and Experience |
Next Workshop should be when?
|
Expressing applications and programming concepts in Java |
Instrinsic Difficulties with Java (such as floating point rules) |
Numerical Libraries and Applications partly or fully written in Java
|
Nifty compiler issues for Java |
Performance and Benchmarks |
Distributed and Parallel Computing based on Java
|
Discrete Event Simulation in Java |
Distributed Scientific Objects and (Javabean) Components |
Java for interoperable client interfaces; scientific visualization |
Collaborative Environments |
Java has potential to be a better environment for "Grande application development" than any previous languages such as Fortran and C++ |
The Forum Goal is to develop community consensus and recommendations for either changes to Java or establishment of standards (frameworks) for "Grande" libraries and services |
These Language changes or frameworks are designed to realize "best ever Grande programming environment" |
Steering Committee(s) to act as trustees of future Grande workshops and the Forum |
Forum needs representation and support of Industry Government and Academia
|
Forum will meet around every 6-8 weeks aiming to issue preliminary report at SC98 (November 98) and Final report in key areas March 99
|
Language Enhancements
|
Numerics Framework -- "Small Scale Scientific Objects":
|
Indicated that Gosling was willing to seriously consider essential changes to Java Language
|
Allow operator overloading which has been abused but is natural (and essential) in scientific computing |
lightweight objects needed for complex (Kahan suggests imaginary data type as in C9X language enhancement for C) |
Matrices, Rounding, Interval arithmetic, exceptions (traps v flags), subscript checking, need for better garbage collection aimed at scientific contiguous data structure, role of compilers versus language |
Parallel and High Performance Distributed Computing
|
"Large Scale Scientific Objects" -- Interfaces for Computing Systems and Applications ("Scientific JDBC")
|
Implementation Issues
|
Define set of relevant Benchmarks |
Forum will be broken into a few working groups and have plenary and separate working group activities within each meeting |
Forum will be held in "central" places to minimize "average" travel headaches |
Hope Sun can host US Meetings
|
Members of Forum should commit to attend all meetings (with if necessary institutional substitution) |
Typically one representative per institution in Forum |
Goal is around 30 members in Forum |
Currently no travel support available
|
Information put on Web expeditiously
|
Java Calls (mainly Interfaces and not methods) to capabilities expressed in implementation neutral form |
Drivers convert these general calls to vendor specific implementation of service |
Java code can either be all on client (2-tier) or on client and middle tier (3 tier) |
e.g. JDBC is a universal interface to all relational databases |
Adoption of this JDBC implies that vendor specific solutions are immediately less attractive
|
Java applications |
JDBC API |
JDBC Driver manager |
JDBC Driver |
JDBC Driver |
DBMS |
DBMS |
JDBC API |
JDBC Driver API |
JDBC-ODBC |
Bridge |
ODBC Driver |
DBMS |
Java application |
Java applet or |
HTML browser |
Application Server (Java) |
JDBC Driver |
DBMS |
Two-tier Model |
JDBC Driver |
DBMS |
Three-tier Model |
DBMS Proprietary Protocol |
DBMS Proprietary Protocol |
HTTP (RMI, CORBA or other) Protocol |
Numerical Computing Framework
|
Computing Services Framework
|
High Performance Framework
|
Distributed Computing Framework
|
Distributed Simulation Framework
|
Enables development of Web Interfaces to run a given job on any computer compliant with this framework just as JDBC gives a universal interface to any relational database
|
The Computing Services Framework allows vendors to compete on either User Front End (GUI) or back end services with the JavaCS framework providing universal linkage |
The framework is implemented at the backend as a set of drivers which map generic Java Interfaces to particular software (e.g. a compiler) on particular machines. |
Requires agreement by "suitable interested parties" on
|
http://www.sis.port.ac.uk/~mab/Computing-FrameWork/ |
Is CORBA (viewing system as a collection of objects) useful |
Compiling, Executing, Specification of features needed for execution optimization
|
Accounting -- use Web commerce technology? |
Security (especially hard in metacomputing as link several different management policies)
|
Sharing, Accessing and Storing into File Systems |
Data and Performance Visualization Interface (how applets access server side information) |
Performance measurement and recording (cf: Pablo SDDF) |
Interfaces for Programming Tools
|
Libraries including names in Math class and
|
Module linkage model for metaproblems (multidisciplinary applications) as in Javabeans sufficient? |
Commercial: Datamining, Financial Modeling, Oil Resevoir Simulation, Seismic Data Processing, Vehicle and Aircraft Simulation |
Government: Nuclear Stockpile Stewardship, Climate and Weather, Satellite Image Processing, Forces Modeling, |
Academic: Fundamental Physics(particles, relativity,cosmology), Biochemistry, Environmental Engineering, Earthquake Prediction |
exact bits |
rounding |
looseNumerics as discussed by Gosling |
exception flags |
exception traps |
NaNs, Infinities |
interval arithmetic |
extended precision |
complex numbers |
operator overloading |
templates (inlining, parameterized class types) |
arrays
|
Java numerical library interfaces (APIs) |
standard vector, matrix classes (e.g. SymmetricPackedDouble )(?) |
numeric (programming) exceptions (e.g. nonconforming arrays) |
Java libraries
|
interfaces to legacy and native methods
|
Tool interfaces
|
Scalability issues:
|
Garbage Collection, threads |
JVM opcode extensions |
Java compiler optimizations |
JIT optimizations |
Inhibitors of compiler optimizations include:
|
The first meeting of the Java Grande Parallel and Distributed Working Group was chaired by Denis Caromel of INRIA - University of Nice Sophia Antipolis and George K. Thiruvathukal of Tools of Computing LLC and Argonne National Laboratory (Visitor in Math and Computer Science Division). |
Approximately 50 people attended the working group meeting. Parallel and distributed computing comprises a vast array of topics. The working group initially decided to limit its focus to how parallel and distributed computing is addressed in the current instantiation of Java and its add-on frameworks. The high-performance computing community also has significant investments in research on frameworks and services (e.g., Globus, Legion, MPI, and others). |
The following topics have thus been identified in decreasing order of priority: |
Remote Method Invocation (RMI) |
Virtual Machine Issues |
Higher-level libraries and Interfaces to high-performance services |
Components for scientific computing |
The Following foils presents preliminary information for the two highest priority issues identified in the Java Grande Forum workgroup on Parallel and Distributed Computing.. |
Remote Method Invocation (RMI) is a Java framework designed and implemented by Sun Microsystems to support the familiar remote procedure call (RPC) model, available in a wide variety of computing environments, and client/server computing using objects. |
One of the technical paper sessions at Java '98 focused on RMI itself. During this session and follow-up discussions in the working group, a number of issues were raised. Each is summarized in following foils |
There have been many reports of poor performance in serializing Java objects. |
For high-performance computing, there is a general perception that serialization needs to be more open and customizable as well. |
RMI itself is not an open design, making it difficult if not impossible to configure different transport layers. High-performance computing systems make use of many proprietary communication protocols (IBM's MPI/MPL) or more general-purpose communication systems (Globus). |
There are efficiency considerations throughout the design. Many issues have been addressed in both talks and during the forum. Serialization may be responsible for many performance problems. Other issues addressed include the possibility of one-way calls, exception handling issues, and the use of stubs/skeletons and the rmic compiler. |
There are concerns about robustness and scalability of remote object registration. The use of open naming and directory services should be considered as alternatives to the rmiregistry. |
RMI currently supports UnicastRemoteObject only. Multicast is already being used in other high-performance communication systems developed by the HPC community. |
Should asynchronous calls be supported? High-performance communication systems such as Nexus and MPI use asynchronous messaging and remote procedure calls in their design. |
Is the single-inheritance model and insistence by RMI that Remote classes be used as base classes an inconvenience to designers? Strong cases were presented in the forum that there is, indeed, a problem. There is consensus that the use of interfaces would be preferable to base classes as is done with object serialization, because the Remote base classes appear to be used primarily as a tagging mechanism. |
The Java Virtual Machine needs a number of improvements to support large-scale computations as done in the high-performance computing community. These issues are in partial overlap with the Numerics working group but the focus here is on VM issues related to multithreading, dynamic configurability, and reliability: |
Synchronization Needs to be faster. The general consensus of the forum is that thread synchronizations are not efficient when compared to native threads libraries, such as pthreads or Win32 threads. |
Is the thread model of Java scalable? The performance appears to degrade significantly as more threads are created. This is odd when considering the underlying threads mechanisms on operating systems such as Solaris and Win32 appear to scale well. |
The thread memory model of Java is considered awkward by many who attended the forum. (e.g., mutual exclusion mechanisms, thread stack management, etc.) This issue will either be clarified or eliminated as a result of discussions in the next Java Grande Forum meeting. |
Can the Virtual Machine be used effectively in a multiprogramming environment and by many users? Are there plans for such capabilities? The consensus of the forum is that such support is needed for shared-memory multiprocessor systems. This issue is related to class loading/unloading. |
The ability to unload a class and change the version of an already loaded class. This has many implications; however, it is considered to be useful for long-running applications (as found in many HPC applications) where it would be undesirable to abort the program and restart from the beginning. |
The issues in metaclasses pertain to extensions to either the core reflection framework or making object references transparent in the network sense. This issue will either be clarified or eliminated as a result of discussions at the next Java Grande Forum meeting. |
There are concerns about the reliability of the Java Virtual Machine (JVM) for long running applications and computations. |
There is an even greater concern about JVM usage in heterogeneous computing environments, where there is great variance in JVM quality and consistency of implementation. |
Vendors (not just Microsoft) have taken it upon themselves to build their own JVM's which may not be fully-compatible with Sun's implementation of the JVM as found only on Solaris and Win32. |