Java Grande Forum
What is Java Grande?
This is 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 ……..
What is Goal of Java Grande Forum?
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"
What are Initial Issues Identified for Java Grande Forum? An initial study was performed by two separate working groups
Numerics Working Group:
(Roldan Pozo and Ron Boisvert reporting)
Summary of Issues
- 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
- multidimensional (continguous) storage
- long integer indices
- standard classes (e.g. FortranArray3D)
- subarrays without copying
- resizing and composing of arrays
- array expressions (: notation of f90, matlab)
- aliasing
- Java numerical library interfaces (APIs)
- standard vector, matrix classes (e.g. SymmetricPackedDouble )(?)
- numeric (programming) exceptions (e.g. nonconforming arrays)
- Java libraries
- numerics
- MPI
- applcation-specific
- interfaces to legacy and native methods
- Lapack, BLAS, etc.
- standardized schemes for f77 bindings
- standard APIs for numeric classes (e.g. FortranArray3D)
- monitors
- debuggers
- visualizations
- Garbage Collection, threads
- JVM opcode extensions
- Java compiler optimizations
- JIT optimizations
Parallel and Distributed Computing Working Group
(Denis Caromel and George Thiruvathukal reporting)
Subjects of top importance:
- RMI
- VM Specification and Implementation
- High-Level parallel, distributed models, and Libraries (SPMD, Active Objects, MIMD, etc. )
- Interfaces to other HPC Services (e.g. Meta-computing)
- Components architectures for scientific Computing
- Benchmarking
Order of priority:
1. RMI and VM
2. High-Level Lib. and Interfaces to HPC Services
3. Components
while Benchmarking is pervasive to all areas
Some details on the two most important topics:
RMI Details:
- Data serialization / Serialization supports, access, and openness
- Allow the writting of specific algorithms for (un)marshalling, and the use of specific transport mechanisms.
- Invocations efficiency
- Different transport mechanisms
- Multicast actual implementation, and openness of the implementation
- Do we need asynchronous calls within RMI ?
- Is the single inheritance a limitation to RMI? and is there a way around it?
VM Details:
- Fast synchronization Mechanisms
- Scalability of Threads
- Multi-programming (and Multi-user ?) VM
- Awkward memory model for thread (simplification) (?)
- class unloading of VM (for long living VM)
- Meta-object (extension to reflection support) (?)
- Robustness of VM (long living)