Title: Java Grande in a Nutshell
1Java Grandein a Nutshell
- Workshop on Java for High Performance Network
Computing - September 2-3 1998 Europar Southampton
- Geoffrey Fox
- Northeast Parallel Architectures Center
- Syracuse University
- 111 College Place
- Syracuse NY
- gcf_at_npac.syr.edu
- http//www.javagrande.org
- http//www.npac.syr.edu/users/gcf/jgeurosept98
2Abstract of EuroTools Java Grande Presentation
- We describe Java Grande Forum -- motivation and
current status - motivation discusses Java as a language and where
it is clearly good and where it could be good! - This has numerical and distributed computing
working groups and one project is a community
activity to define - Seamless interfaces allowing universal access to
general hosts - can be CORBA facility or Java framework
3Why is Java Worth Looking at?
- The Java Language has several good design
features - secure, safe (wrt bugs), object-oriented,
familiar (to C C and even Fortran programmers) - Java has a very good set of libraries covering
everything from commerce, multimedia, images to
math functions (under development at
http//math.nist.gov/javanumerics) - Java has best available electronic and paper
training and support resources - Java is rapidly getting best integrated program
development environments - Java naturally integrated with network and
universal machine supports powerful write
once-run anywhere model - There is a large and growing trained labor force
- Can we exploit this in computational science?
4What is Java Grande?
- 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
doesnt get misunderstood by some community!
5What is the Competition?
- So existing Grande codes are written in Fortran C
and C with a clearly unattractive and
comparatively unproductive programming
environment - These current languages and tools are sufficient
but does not seem likely that can build much
better environments around them - Fortran77 has excellent compilers, good user base
but will not be taught broadly and clearly
limited in capabilities in particular not object
oriented - Fortran90 and HPF will not make it (reasons not
important) - Subsume discussion of C under that of C
- Five years ago, it looked as though C could
become language of choice (perhaps with Fortran
as inner core) but this appears stalled - The language is complex and splintered with no
agreement on Grande standards -- partly because
use in Grande applications is too small to
motivate standards and partly due to culture - Java halted Cbandwagon
- So there is no competition -- Java is currently
our only hope
6Why could Java succeed where Fortran and C
failed?
- It has some natural advantages due its internet
base with threads and distributed computing
built in - It is a young language and we can take steps now
to avoid unproductive proliferation of libraries
and parallel constructs - We could be third (Fortran, C, Java) time lucky
- It could have expressivity and object oriented
advantages of C combined with performance
levels of C and Fortran - It can use its clear GUI advantages as an entrée
into other aspects of Grande programming
7Synergy of Parallel Computing and WebInternetics
as Unifying Principle
- The two forms of Large Scale ComputingScale
Computer for Scale
Users in ProportionPower User
to number of computers - Parallel
Commodity Distributed Computers
Information Systems Technologylt-------
-------- Internetics Technologies
---------------gt
1market
99 of market driving student interest and (Java)
technologies
Parallel Computer
Distributed Computer HPF MPI
Java HTML
XML
8The 3 Roles of Java
9Java and multi-tier Grande Systems
Java wins today?
Java Grande should promote
Parallel or Sequential Java Grande Codes
Java Applet Clients
Java Servers
Geographically Distributed Grandecomputer
Resources
Gateway System hosting Seamless Access Database,
Collaboration Visualization and other Services
GeographicallyDistributed users
10What 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 - First Meeting Mar 1 Palo Alto at Java 98 -- 200
Attendees set Agenda -- 30 permanent people and
further meetings May 9-10, Aug 6-7 - Public Discussion SC98 Orlando November 13 (3
hour panel) - http//www.npac.syr.edu/projects/javaforcse
- http//www.javagrande.org
11Two types of Things we are doing
- 1) Most important in the near term -- encourage
Sun to make a few key changes in Java to allow it
to be a complete efficient Grande Programming
Language - floating point, arrays, complex etc.
- 2) As a community, recognize that sometimes
standards are more appropriate than creativity
and pool results of experiments to produce a Java
Grande framework covering libraries and computer
access - Fiscally important fields such as databases, have
established such standards -- we should follow
their example - 1) requires us to work with the computing
mainstream -- 2) is internal to community
12Activities of the Java Grande Forum I
- Two major working groups promoting standards and
community actions - Numerics Java as a language for mathematics led
by Ron Boisvert and Roldan Pozo from NIST - Changes in Java controversial handling of
floating point which currently has goal of
reproducible results but this leads to non
optimal accuracy - Addition of Complex types or classes
- Lightweight classes and Operator overloading --
enables implementation of complex as a class - Fortran rectangular multidimensional arrays --
Java naturally has arrays of arrays - High quality math libraries with agreed
interfaces -- FFT, Matrices, Transcendental
functions
13Gosling onOperator Overloading
Java Grande 98Feb 28 98
14Activities of the Java Grande Forum II
- Distributed and Parallel Computing led by Dennis
Gannon and Denis Caromel (INRIA, France) - Performance of RMI (Attractive Java distributed
object model - remote method invocation) - Performance of Java runtime (the virtual machine
VM) with lots of threads, I/O, memory use - Parallel Computing interfaces including Java MPI
binding - Development of universal (Condor, Globus, Legion
UNICORE WebSubmit ..) Java interface to computing
resources -- enables seamless computing (easier
than metacomputing!) - Special seamless computing meeting at Argonne
October 98 - Development of Grande Application benchmarks
- http//math.nist.gov/scimark
15Where are we now?
- Both working groups have made substantial
progress - Numerics working group has proposals essentially
ready for Sun - Concurrency working group will propose modest RMI
changes - We are initiating Community actions
- Help us collect Java Grande benchmarks
- Work with community on standard classes and
libraries - Participate in seamless computing framework
- Stress Java and Java runtime (the VM) with large
applications -- where are performance problems? - Join us at SC98 November 13
- Note European involvement has been excellent so
far - Caromel, Getov, Phillipsen
- Edinburgh and NAG
16Java Seamless Computing Framework orCORBA
Facility for Computation
- Allows Universal Access to all computers from the
same Java Applet Front EndInfrastructure for
Metacomputing, Performance Modeling, Interfacing
computers and data to distributed computational
objects
17What/Why is a Framework?
- 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 (Java Database Connectivity) is a
universal interface to all relational databases - Adoption of this JDBC implies that vendor
specific solutions are immediately less
attractive - All vendors must however support JDBC because of
importance of seamless interfaces!
18JDBC Database Framework Architecture
Java applications
JDBC API
JDBC API
JDBC Driver API
JDBC Driver manager
19Proposed Java Computing Services Framework I
- Enables development of Web Interfaces to run a
given job on any computer with any data source
compliant with this framework just as JDBC gives
a universal interface to any relational database - i.e. enables seamless computing which is a part
of metacomputing but not as ambitious - Metacomputing in addition allows linkage of
multiple computers to run together on a single
job - The Computing Services Framework will allow
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. - System vendors would be asked to deliver support
for JavaCS as part of RFP
20Proposed Java Computing Services Framework II
- Requires agreement by suitable interested
parties on - what are the services
- what are the interfaces for a given service
- As with JDBC and Oracles PL/SQL can lead to
difficult choices! - Old (seamless workshop Reading Sept 97) link is
http//www.sis.port.ac.uk/mab/Computing-FrameWork
/ - Abstract ideas developed in Condor Globus Legion
and PACE POEMS PetaSIM for harder problems
(metacomputing / performance specification) and
developed for seamless problem by Sweb (Cornell)
WebSubmit (NIST) or UNICORE (Europe) - Who else should we would be talking to?
21Possible Services in a Java Computing Framework -
I
- Grande Resource Discovery, Allocation and
Scheduling - Recent JINI Sun technology looks attractive
- We are defining methods and properties of
computers and programs viewed as distributed
objects - Thus we are inevitability defining a CORBA
facility for computing - Compiling, Executing, Specification of features
needed for execution optimization - This includes parameters needed by MPI/HPF
decompositions such as number of processors - Resource Management and Scheduling jobs as in
Codine or LSF or commercial NT environments - Accounting -- integrate with Web commerce
technology? - Authentication, Security (especially hard in
metacomputing as link several different
management policies) - Public Key Infrastructure expected from Internet
commerce very important
22Possible Services in a Java Computing Framework -
II
- 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
- Debuggers
- Computational Steering / Interpreted Execution
- Libraries including names in generalized Math
class and - Java Grande defining this in numerics working
group - Module linkage model for metaproblems
(multidisciplinary applications) could be
outside scope -- can we use standard JavaBean
approach?
23What should you do as a Java Grande believer?
- Dont need to rewrite existing codes in Java!
- Rather use Java freely at client and gateway
tier - Wrap existing codes as CORBA or Java distributed
objects - Conduct suitable experiments in using Java in
complete Grande applications - Make certain your interests are represented in
Java Grande Forum - Retrain your staff in Java Web and distributed
object technologies - Put High Performance Grande Forum compliant
Java support into your RFPs for hardware and
software
24Multi Tier Gateway Architecture
Clients
Gateway Systems as Middle Tier
High Performance Computing and Communication Tier
25Multi-Server Gateway Tier
MultidisciplinaryControl (WebFlow)
Gateway Control
Parallel DBProxy
Database
NEOS ControlOptimization
OptimizationService
Origin 2000Proxy
MPP
NetSolveLinear Alg.Server
Matrix Solver
Agent-basedChoice ofCompute Engine
IBM SP2Proxy
Data AnalysisServer
MPP