Full HTML for

Basic foilset Overview of Java Grande Forum

Given by Geoffrey C. Fox at DoD HPC Modernization Users Group Tutorial Monterey Californi on June 7 99. Foils prepared June 11 99
Outside Index Summary of Material


We describe Java Grande -- definition, motivation and current status
  • motivation discusses Java as a language and where it is clearly good and where it could be good!
  • Describe 3 very different aspects of computation where Java can be used
The Java Grande Forum has numerical and distributed computing working groups and projects include
  • study changes to Java and its runtime to enhance Grande applications and their programming environment
  • community activity DATORR/computing Portal to define seamless interfaces allowing universal access to general hosts
Discuss Java for Parallel Computing including message passing passing (MPI) and data parallelism

Table of Contents for full HTML of Overview of Java Grande Forum

Denote Foils where Image Critical
Denote Foils where Image has important information
Denote Foils where HTML is sufficient

1 Java Grande Forum Issues and Activities
2 Abstract of DoD/JavaOne 99 Java Grande Overview
3 What is Java Grande?
4 Basic Issues in Java Grande
5 Why is Java Worth Looking at?
6 What is the Alternative?
7 The 3 Places Java can be Used
8 A Multi-Tier Computing System
9 What is the Process?
10 What is Goal of Java Grande Forum?
11 Presentations at SC98 Panel Session
12 Two types of Things the Forum is doing
13 Activities of the Java Grande Forum I
14 Numerical Computing in Java
15 Java Grande Forum Floating Point Proposals
16 Activities of the Java Grande Forum II
17 Some Remarks on Remote Method Invocation RMI
18 Future Activities of Concurrency Group
19 Java Computing Portal Framework
20 Two Seamless Interfaces
21 Java Computing Portal Framework
22 Possible Services in DATORR or Java Computing Portal Framework
23 Activities in MPI for Java
24 Java and Parallelism I?
25 Java and Parallelism II?
26 What should you do as a Java Grande believer I?
27 What should you do as a Java Grande believer II?

Outside Index Summary of Material



HTML version of Basic Foils prepared June 11 99

Foil 1 Java Grande Forum Issues and Activities

From Overview of Java Grande Forum DoD HPC Modernization Users Group Tutorial Monterey Californi -- June 7 99. *
Full HTML Index
Dod Modernization Users Group
Java Tutorial
June 7 99
Geoffrey Fox
NPAC
Syracuse University
gcf@npac.syr.edu
http://www.javagrande.org

HTML version of Basic Foils prepared June 11 99

Foil 2 Abstract of DoD/JavaOne 99 Java Grande Overview

From Overview of Java Grande Forum DoD HPC Modernization Users Group Tutorial Monterey Californi -- June 7 99. *
Full HTML Index
We describe Java Grande -- definition, motivation and current status
  • motivation discusses Java as a language and where it is clearly good and where it could be good!
  • Describe 3 very different aspects of computation where Java can be used
The Java Grande Forum has numerical and distributed computing working groups and projects include
  • study changes to Java and its runtime to enhance Grande applications and their programming environment
  • community activity DATORR/computing Portal to define seamless interfaces allowing universal access to general hosts
Discuss Java for Parallel Computing including message passing passing (MPI) and data parallelism

HTML version of Basic Foils prepared June 11 99

Foil 3 What is Java Grande?

From Overview of Java Grande Forum DoD HPC Modernization Users Group Tutorial Monterey Californi -- June 7 99. *
Full HTML Index
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!

HTML version of Basic Foils prepared June 11 99

Foil 4 Basic Issues in Java Grande

From Overview of Java Grande Forum DoD HPC Modernization Users Group Tutorial Monterey Californi -- June 7 99. *
Full HTML Index
These exist from both a computer science and user point of view
Grande applications are very complex but field is small (1% or so of total computing world)
  • It is a much larger fraction of academic computation
The field needs Java as it provides a wonderful distributed computing software infrastructure on which to build applications and tools
  • e.g. RMI JINI etc can enable metacomputing?
  • Users can enjoy Java program development environment
Not clear that Java needs the field and so Grande field needs to be humble and persuasive in its requests
Currently the Grande field is intrigued but skeptical due to poor Java performance
Java community doing battle in commercially critical areas
Need to bring communities together

HTML version of Basic Foils prepared June 11 99

Foil 5 Why is Java Worth Looking at?

From Overview of Java Grande Forum DoD HPC Modernization Users Group Tutorial Monterey Californi -- June 7 99. *
Full HTML Index
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 resources
Children will learn Java (and other POW technologies) as it is a social language with natural graphical "hello world"
Java is rapidly getting best integrated program development environments
Java naturally integrated with network and universal machine supports potentially powerful "write once-run anywhere" model
There is a large and growing trained labor force
Can we exploit this in Grande Applications?

HTML version of Basic Foils prepared June 11 99

Foil 6 What is the Alternative?

From Overview of Java Grande Forum DoD HPC Modernization Users Group Tutorial Monterey Californi -- June 7 99. *
Full HTML Index
So most existing Grande codes are written in Fortran or 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 do not look as though they will "make it"
  • 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 no agreement on Grande standards?
  • Java halted C++ (in HPCC) "bandwagon" even though capabilities of C++ has advanced quite significantly

HTML version of Basic Foils prepared June 11 99

Foil 7 The 3 Places Java can be Used

From Overview of Java Grande Forum DoD HPC Modernization Users Group Tutorial Monterey Californi -- June 7 99. *
Full HTML Index

HTML version of Basic Foils prepared June 11 99

Foil 8 A Multi-Tier Computing System

From Overview of Java Grande Forum DoD HPC Modernization Users Group Tutorial Monterey Californi -- June 7 99. *
Full HTML Index
Geographically
Distributed
Grandecomputer
Resources
Enterprise
Middleware
Gateway
System
Geographically Distributed users
and consultants
1
2
3
Java Applets
Java Language
Java Servers

HTML version of Basic Foils prepared June 11 99

Foil 9 What is the Process?

From Overview of Java Grande Forum DoD HPC Modernization Users Group Tutorial Monterey Californi -- June 7 99. *
Full HTML Index
Set of Workshops with increasing interest
  • Syracuse December 96 -- 50 participants
  • Las Vegas June 97 -- 100
  • Palo Alto February 98 -- 200
  • Southampton (Europe) -- 60
Topics include compilation issues; applications; algorithms (math libraries); benchmarking; Java based programming environments(visualization); parallel computing and largest set of papers are in distributed systems
After this meeting (and simultaneously at HPCN in Europe) at IPPS (April 99), next meetings are on June 12-14 collocated with and just before JavaOne 99 (Java developers conference) and as part of ISCOPE99 to enhance interaction between Grande community and mainstream Java and C++ world
  • Also June 19-20 at ICS 99 Rhodes Greece
Java Grande Forum to act as a focus for Grande community activities and coordinate the (feeble 1%) voice into mainstream!

HTML version of Basic Foils prepared June 11 99

Foil 10 What is Goal of Java Grande Forum?

From Overview of Java Grande Forum DoD HPC Modernization Users Group Tutorial Monterey Californi -- June 7 99. *
Full HTML Index
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 with some 250 attendees) where we released our first report (54 pages on web site)
  • Recently two key meetings with Sun at Burlington and Palo Alto
http://www.javagrande.org

HTML version of Basic Foils prepared June 11 99

Foil 11 Presentations at SC98 Panel Session

From Overview of Java Grande Forum DoD HPC Modernization Users Group Tutorial Monterey Californi -- June 7 99. *
Full HTML Index
Report from the Numerics Working Group of the Java Grande Forum, Ron Boisvert NIST
Report from the Applications and Concurrency Working Group of the Java Grande Forum, Dennis Gannon, Indiana University and NASA Ames
Compilers and Performance of Java, Marc Snir, IBM
Linear Algebra in Java, Cleve Moler , The MathWorks
Building Libraries in Java, Jack Dongarra, University of Tennessee and Oak Ridge National Laboratory
Lessons from C++, John Reynders, Los Alamos
Application Experience in Oil Industry, Siamak Hassanzadeh, Sun
Java Benchmarks, David Henty, Edinburgh Parallel Computing Center
MPI for Java, Vladimir Getov, Westminster University England
Java Framework for Computing Services (Desktop Access to Remote Resources), Gregor von Laszewski, Argonne National Laboratory

HTML version of Basic Foils prepared June 11 99

Foil 12 Two types of Things the Forum is doing

From Overview of Java Grande Forum DoD HPC Modernization Users Group Tutorial Monterey Californi -- June 7 99. *
Full HTML Index
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

HTML version of Basic Foils prepared June 11 99

Foil 13 Activities of the Java Grande Forum I

From Overview of Java Grande Forum DoD HPC Modernization Users Group Tutorial Monterey Californi -- June 7 99. *
Full HTML Index
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
  • http://math.nist.gov/javanumerics/
  • Changes in Java controversial handling of floating point which currently has goal of reproducible results but this leads to non optimal accuracy
  • Better Support of Complex arithmetic
  • 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 and Linear Algebra, Transcendental functions

HTML version of Basic Foils prepared June 11 99

Foil 14 Numerical Computing in Java

From Overview of Java Grande Forum DoD HPC Modernization Users Group Tutorial Monterey Californi -- June 7 99. *
Full HTML Index
So Java not only will run anywhere but can be expected to get same answers everywhere
  • As long as use of Native (C, Fortran) libraries and indeterminate concurrency controlled
Natural tension between performance (both in terms of speed and precision) and reproducibility
  • Need to encourage more research into "reproducible algorithms" but support both goals
Java has particularly bad floating point performance due to
  • As in all applications, immature compiler (JIT) technology
  • does not exploit proprietary hardware features (extended precision, fused multiply add)
  • does not allow well known compiler optimizations (associativity)
Solution requires "Change in Java Rules" and better compilers

HTML version of Basic Foils prepared June 11 99

Foil 15 Java Grande Forum Floating Point Proposals

From Overview of Java Grande Forum DoD HPC Modernization Users Group Tutorial Monterey Californi -- June 7 99. *
Full HTML Index
Design Goals/Requirements:
  • Good Performance on most processors
  • High performance supported
  • exact reproducibility supported
  • access to IEEE floating point features
We propose three modes of floating point execution
strictfp: Reproducible results as in current default
new default: Exploit natural hardware (extended exponent in Intel and fused multiply add FMA)
associatefp: Allow conventional compiler optimizations
Sun willingly to consider some version of this starting with ability to use FMA
Generic Types, Operator Overloading and lightweight classes are also serious possibilities for thoughtful additions to Java language
Working with internal Sun staff on drafting modest proposals (as of March 11 meeting in Palo Alto)

HTML version of Basic Foils prepared June 11 99

Foil 16 Activities of the Java Grande Forum II

From Overview of Java Grande Forum DoD HPC Modernization Users Group Tutorial Monterey Californi -- June 7 99. *
Full HTML Index
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 (DATORR/Computing Portal) meetings at Argonne October 98 and Sandia February 99
Development of Grande Application benchmarks
  • NIST and Edinburgh

HTML version of Basic Foils prepared June 11 99

Foil 17 Some Remarks on Remote Method Invocation RMI

From Overview of Java Grande Forum DoD HPC Modernization Users Group Tutorial Monterey Californi -- June 7 99. *
Full HTML Index
So good news is that RMI has enabled very active distributed computing research and indeed development as in JavaSpaces from Sun
Performance is reasonable but insufficient for some applications
  • It is already good enough to get started and for instance outperforms many (Java) CORBA implementations
Forum suggests (optional) changes in several areas including
  • Serialization -- this is used in Persistent object storage and to transmit objects between different programs in a distributed application -- can be optimized differently for each case
  • Transport Layer -- need to be able to layer RMI interfaces over fast transport mechanisms -- Myrinet, native ATM etc.

HTML version of Basic Foils prepared June 11 99

Foil 18 Future Activities of Concurrency Group

From Overview of Java Grande Forum DoD HPC Modernization Users Group Tutorial Monterey Californi -- June 7 99. *
Full HTML Index
What is the Impact of Jini?
  • A collection of standard Java services with major implications for Metacomputing.
    • Discovery of resources
    • Distributed Event management
    • Brokering and Transaction
    • Java Spaces Linda like distributed computing system (whereas Jini is a general service suite)
  • What is the role of Jini in large scale "Grid" environments such as Globus and Legion?
  • Important in Java Computing Portal process

HTML version of Basic Foils prepared June 11 99

Foil 19 Java Computing Portal Framework

From Overview of Java Grande Forum DoD HPC Modernization Users Group Tutorial Monterey Californi -- June 7 99. *
Full HTML Index
So computer users are not only interested in metacomputing but rather in being able to run their jobs in a seamless way that does not keep changing as backend computer resources are upgraded
Viewing computing as a distributed (object) service, need to define a "Java Computing Portal Framework"
This enables development of Web Interfaces ("Portals") 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
  • Metacomputing in addition allows linkage of multiple computers to run together on a single job
The Computing Portal Framework will allow vendors to compete on either User Front End (GUI) or back end services with the JavaCS framework providing universal linkage

HTML version of Basic Foils prepared June 11 99

Foil 20 Two Seamless Interfaces

From Overview of Java Grande Forum DoD HPC Modernization Users Group Tutorial Monterey Californi -- June 7 99. *
Full HTML Index
Seamless Interface
Database1
Database2
User View
System View
2 working groups at
DATORR meetings
Integrate with Grid Forum i.e. Globus Legion Condor

HTML version of Basic Foils prepared June 11 99

Foil 21 Java Computing Portal Framework

From Overview of Java Grande Forum DoD HPC Modernization Users Group Tutorial Monterey Californi -- June 7 99. *
Full HTML Index
Desktop Access to Remote Resources or DATORR was initial name
http://www-fp.mcs.anl.gov/~gregor/datorr
Oct 8-9 Meeting at Argonne and SC98 BoF
Feb 15-16 at Sandia Albuquerque
Collecting projects and abstracting requirements from user and system point of view
Aim is to suggest standards for client-middleware (what is a task?) and middleware-backend (what is a resource) by SC99
  • Standards will be in XML so can use in your favorite object model
Common Portal Architecture initiative in NCSA alliance will drive DATORR with application requirements and (several) "workbench"/"Portal" implementations
Integration with synergistic Grid Forum activities

HTML version of Basic Foils prepared June 11 99

Foil 22 Possible Services in DATORR or Java Computing Portal Framework

From Overview of Java Grande Forum DoD HPC Modernization Users Group Tutorial Monterey Californi -- June 7 99. *
Full HTML Index
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 very important (cf: Globus)

HTML version of Basic Foils prepared June 11 99

Foil 23 Activities in MPI for Java

From Overview of Java Grande Forum DoD HPC Modernization Users Group Tutorial Monterey Californi -- June 7 99. *
Full HTML Index
mpiJava - Modeled after the C++ binding for MPI. Implementation through JNI wrappers to native MPI software. http://www.npac.syr.edu/projects/pcrc/HPJava/
JavaMPI - Automatic generation of wrappers to legacy MPI libraries. C-like implementation based on the JCI code generator. http://perun.hscs.wmin.ac.uk/JavaMPI/
MPIJ - Pure Java implementation of MPI closely based on the C++ binding. A large subset of MPI is implemented using native marshaling. http://ccc.cs.byu.edu/DOGMA/
Working on two MPI bindings for Java
  • Natural extension of current C++ binding - DRAFT Available
  • More powerful one ignoring Fortran and C heritage!
Reports on Java Grande Web Page http://www.javagrande.org

HTML version of Basic Foils prepared June 11 99

Foil 24 Java and Parallelism I?

From Overview of Java Grande Forum DoD HPC Modernization Users Group Tutorial Monterey Californi -- June 7 99. *
Full HTML Index
There are several forms of parallelism
  • a) Fine grain functional parallelism as in overlap of communication and computation
  • b) Coarse grain distributed objects
  • c) Fine grain data parallelism which is historically either implemented with high level language (HPF) or explicit user defined message passing(MPI) -- this gives "massive parallelism" as in parallelism over grid points or particles in scientific computing
In a Nutshell, Java is better than previous languages for a) and b) and no worse for c)
  • Automatically provides "task parallelism" which needs to be added in painful fashion for Fortran
  • The Web integration of Java gives it excellent "network" classes and support for message passing.

HTML version of Basic Foils prepared June 11 99

Foil 25 Java and Parallelism II?

From Overview of Java Grande Forum DoD HPC Modernization Users Group Tutorial Monterey Californi -- June 7 99. *
Full HTML Index
Thus "Java plus message passing" form of parallel computing is actually somewhat easier than in Fortran or C.
  • Java has been integrated with PVM and MPI using either pure Java or with Java wrappers to existing implementations
Coarse grain parallelism very natural in Java and we have discussed how to use this with RMI (see WebFlow example)
"Data Parallel" languages features are NOT in Java and have to be added extending ideas from HPF and HPC++ etc
  • e.g. NPAC's HPJava translates to Java+Messaging just as HPF translates to Fortran plus message passing
Java has built in "threads" and a given Java Program can run multiple threads at a time (see work of Gannon's group)
  • In Web use, allows one to process Image in one thread, HTML page in another etc.
  • threads can be used to do more general parallel computing but only on shared memory computers

HTML version of Basic Foils prepared June 11 99

Foil 26 What should you do as a Java Grande believer I?

From Overview of Java Grande Forum DoD HPC Modernization Users Group Tutorial Monterey Californi -- June 7 99. *
Full HTML Index
Don't 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
Does this change research agenda? (different types of compilers, service-based architectures, re-use commodity technologies -- don't roll your own with federal funds ...)
Retrain your staff in Java Web and distributed object technologies
Put "High Performance Grande Forum compliant" Java support into your RFP's for hardware and software

HTML version of Basic Foils prepared June 11 99

Foil 27 What should you do as a Java Grande believer II?

From Overview of Java Grande Forum DoD HPC Modernization Users Group Tutorial Monterey Californi -- June 7 99. *
Full HTML Index
Get your leaders ( Larry Smarr, Sid Karin, Gil Weigand, Andy White, Ken Kennedy ..) to support the Java Grande process
Explain to Sun and JavaSoft why they should care
Note it is NOT obvious that we will succeed ........
Help us collect Java Grande benchmarks
Work with community on standard classes and libraries
Participate in establishing seamless computing framework by participation in Java Computing Portal process
Participate in Java MPI process

© Northeast Parallel Architectures Center, Syracuse University, npac@npac.syr.edu

If you have any comments about this server, send e-mail to webmaster@npac.syr.edu.

Page produced by wwwfoil on Tue Jul 6 1999