Sun Labs December 4 2002 . Java Grande Update http://www.javagrande.org. PTLIU Laboratory for Community Grids Geoffrey Fox Computer Science, Informatics, Physics Indiana University, Bloomington IN 47404 (Technology Officer, Anabas Corporation, San Jose) - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Java Grande in a Nutshell Concept started in December 1996 with first meeting on
Java for Science and Engineering Forum established in February 1998 Multiple forum activities in numerics, message-passing
and parallel/distributed systems Ongoing set of workshops sponsored by ACM
• Bill Joy talked in 2000, Guy Steele in 2001 Multiple useful Web Sites and papers/presentations JSR activities with probably insufficient momentum No institutional contact with Sun for 2 years No impressive support for Java on HPC machines with
Java Grande Concept Use of Java for “Performance” and “Usability” in: High Performance Network Computing Scientific and Engineering Computation (Distributed) Modeling and Simulation Parallel and Distributed Computing Data Intensive Computing HPCC Computational Grids The above is classic “small” technical computing area.
There is a much larger Grande problem: Communication and Computing Intensive Commercial
Applications• Large scale Enterprise Software (iPlanet J2EE etc.)
Java Grande Motivation I: Users We have rather different drivers from HPCC (parallel
computing) and Enterprise Systems In Enterprise software, we have Java as well
established but architectures new (J2EE and messages) so new performance and scaling issues (Enterprise systems are large as in Grids/Autonomic computing)
In HPCC we failed to produce good computing environments in HPCC Initiative and there is a possibly serious gap between field (use of Fortran/C/C++) and next generation of potential Science and Engineering Users (Java, C#, Python ….)• Opportunity to deliver on high productivity HPCC
Java Motivation II: Language 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 Java has excellent 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
Java Grande Forum Group meet either at annual meeting or separately Forum coordinated by Fox Numerics Group led by Boisvert and Pozo The Concurrency and Applications (Benchmarks)
Group led by Caromel and Gannon• MPI subgroup led by Getov
Annual ACM sponsored workshops were in Bay area just before JavaOne upto 2001• In 1999 merged with ISCOPE (Object Methods in Scientific
Computing e.g. C++) but JG dominates• 2002 held just before OOPSLA with 90 attendees and good
quality papers (peak attendance some 220)• No meeting planned for 2003
JG Workshop 2002 I KEYNOTE: Pratap Pattnaik, IBM, Autonomic Computing Session II Grid and Parallel Computing
• The Ninf Portal: An Automatic Generation Tool for Computing Portals • JavaSymphony: New Directives to Control and Synchronize Locality,
Parallelism, and Load Balancing for Cluster and GRID-Computing • Ibis: an Efficient Java-based Grid Programming Environment • Efficient, Flexible and Typed Group Communications for Java • JOPI: A Java Object-Passing Interface
Session III Grid and Peer-to-peer Computing • Abstracting Remote Object Interaction in a Peer-2-Peer Environment • Advanced Eager Scheduling for Java-Based Adaptively Parallel
Computing • A Scaleable Event Infrastructure for Peer to Peer Grids
Session IV Java Compilation • Elimination of Java Array Bounds Checks in the Presence of Indirection • Simple and Effective Array Prefetching in Java • Fast Subtype Checking in the HotSpot JVM • Almost-whole-program Compilation
JG Workshop 2002 II Session V Object-based Computing
• KEYNOTE: Alexander Stepanov, The Future of Abstraction • Generic Programming for High Performance Scientific Applications
Session VI Object-based Computing and Applications • Higher-Order Functions and Partial Applications for a C++ Skeleton
Library • Ravenscar-Java: A High Integrity Profile for Real-Time Java • Parsek: Object Oriented Particle in Cell. Implementation and
Performance Issues • inAspect - Interfacing Java and VSIPL
Session VII Node Java I • Open Runtime Platform: Flexibility with Performance Using Interfaces • Aggressive Object Combining • Run-time Evaluation of Opportunities for Object Inlining in Java
Session IV Node Java II • Jeeg: A Programming Language for Concurrent Objects Synchronization • Specifying Java Thread Semantics Using a Uniform Memory Model • Immutability Specification and its Applications • Adding Tuples to Java: a Study in Lightweight Data Structures
Disappointing Comment I have not seen strong interest from HPCC users and HPCC
purchasers in Java• Possibly Chicken and Egg situation ..
2 years ago, Sun offered poor Java support on HPC • Not certain current situation
IBM Research produced several interesting HPC compilers supporting for example high performance arrays• These were not I think offered on IBM HPC machines
However people voting on this are not from the Internet generation and the “alternatives” are not good!
However one of largest pure Java science applications is from Los Alamos – CartaBlanca for heat transfer and multiphase fluid flow
Scimark http://math.nist.gov/scimark2/ FFT SOR Monte Carlo Sparse Matrix Multiply Dense LU Available as downloadable applet Today peak performance is IBM VM on OS/2 at 380
Numerics I Initially focused on “Java floating rules” that guaranteed same
(bad) result on all processors strictfp: This has been a part of Java for some time now. It is a
keyword that specifies that the original strict (slow) semantics for Java floating point should be followed. • The new default allows 15-bit exponents for anonymous (temporary)
variables. This tiny change allows Java implementations on the x86 family or processors to run at (nearly) full speed.
• Also in default mode the specification of elementary functions is relaxed to allow any result within one unit in the last place of the correctly rounded exact results. This allows more efficient algorithms to be used (including hardware sin/cos).
• There is a separate java.lang.StrictMath library that has a specific implementation of the functions that produces the exact same results on all machines. One must call the strict version explicitly to get the slower but certain result.
Joe Darcy: Joe has the title of Java Floating-Point Czar (it actually says this on his business card). • Joe is working on floating-point issues within Sun and serves
as our main technical contact now.• He has proposed the inclusion of additional methods in
java.lang.Math with the goal of making this library on par with the C math library (libm).
HPJava Conceived as a language for parallel programming, especially
suitable for massively parallel, distributed memory computers. Takes various ideas (hopefully the good ones) from High
Performance Fortran ̶ distributed array model, parallel constructs. But in many respects HPJava is a lower level parallel programming
language than HPF (takes the best of MPI and HPF style programming models)• Explicitly SPMD, requiring parallel programmer to insert calls
to collective communication libraries like MPI or Adlib (library developed originally to support general distributed memory parallel compilers)
• More or less as a by-product, HPJava also has a useful “sequential” subset, that just adds scientific multidimensional arrays (à la Fortran 90) to Java (c.f. Java Grande numerics).
HPspmd Model HPJava was originally intended as a first demonstration of a parallel
programming model we called the HPspmd model. (Single Program Multiple Data)• Java was chosen as the base language for this demo (instead of
Fortran 90 or C++) partly because of JavaGrande philosophy – we expected Java to be a more productive high performance computing environment
Actually it took so long to finish the HPJava preprocessor that in the mean time Java has become comparable in speed with those languages.• Because HPJava uses standard JVMs, it leverages all the progress
Benefits of HPspmd Model Translators are much easier to implement than full parallel
compilers. No compiler magic needed and inherit immediately features of best “standard compilers”.• The current HPJava compiler is just a preprocessor
converting to standard Java, using a simple translation scheme with essentially no optimization. But performance is not embarrassing (see later).
• Of course later we can do optimizations, and (hand-coding suggests) improve performance significantly.
Good (object-oriented) framework for developing specialized parallel libraries.
HPspmd designed to have “ease of writing” of HPF but allow clearer control of parallel implementation for somebody who understood parallel algorithm• HPF criticized by some as too automatic
HPJava Preprocessor Features Input language is a strict extension of Java 2. Multi-arrays are translated into conventional Java 1D arrays Front-end implements all compile-time checks required by the
Java Language Spec (currently testing against Jacks suite).• Goal: if the preprocessor accepts the source, it never outputs a
program the javac back-end will reject. Carefully preserves line numbering, so run-time exception
messages usually point accurately back into original HPJava source code – makes debugging HPJava “easy”.
Full source of preprocessor + libraries will be placed in public domain. No license agreement (We expect.)• Good framework for other experiments with Java language
extensions… Release, very soon, at http://www.hpjava.org.
Libraries Adlib is a comprehensive library for collective operations on
distributed arrays, implementing operations like reductions, shifts, edge exchange for stencil updates, etc.• Invoked like MPI, but higher level.• Originally implemented to support HPF translation (shpf,
PCRC projects).• Originally C++, now Java, implemented on mpjdev
portability layer. MPJ is a proposed Java binding of standard MPI OOMPH is an envisaged HPJava binding of MPI-level
operations, taking advantage of multiarrays to simplify the API.
Low-Level Messaging for HPC mpiJava is our own binding of MPI for Java. Implemented as
native method wrappers for “real” MPI (MPICH, Sun HPC and IBM MPI’s)• Several other groups developed similar APIs, but mpiJava is
probably most cited today. Still maintained ….• Pugh claims Java’s new I/O very fast• Distinguish from “MPI on the Grid” MPICH-G2
MPJ was put forward as a unified “standard” by a small group (including Vladimir Getov, Tony Skjellum and Carpenter from Indiana) but activity appears to be dormant.• API is quite large and inherits some ugly features from MPI
and mpiJava. A smaller, more focused, OOMPH API might be more attractive.
• Note MPI datatype’s are very unsuitable for object-based languages
6 Activity Areas in CG Laboratory II Online Knowledge Center DoD HPCC Support Portal
http://ptlportal.communitygrids.iu.edu/portal/ • Portal, Database, XML Metadata Tools• Jetspeed and portlet architecture• http://www.xmlnuggets.org is “email group” interface for browsing
multiple instances of a Schema (also XML based news groups)• Schema wizard gives general user interfaces for each Schema
Gateway Computing Portal• DoD HPCMO, Geoscience, (Bioinformatics, particle physics)
applications• Web Service based (originally CORBA)• Kerberos, SAML Security, GCE Shell – 70 functions• Integrate data and compute Grids• http://www.gatewayportal.org/ and http://www.servogrid.org/• Portlets in NCSA Alliance Portal
6 Activity Areas in CG Laboratory IIIComponents of an Education Grid
Anabas provides base JMS based collaborative e-learning service (Fox co-founded 2 years ago)
Collaboration as a Web Service• General XGSP specification of Collaborative session capturing H323
SIP JXTA• Audio-Video conferencing as a web service – Admire (Beihang),
Access Grid, VOIP, Polycom, Desktop USB• Move all tools and shared applications (Word, PowerPoint) • General Scheme to make WS’s collaborative using NB
Carousel HandHeld Collaborative Environments• iPAQ running Savaje Java OS linked to PC’s; adding
cell-phone/PDA tandems• SVG as a Web Service demonstrated• Universal Access• http://grids.ucs.indiana.edu/ptliupages/projects/carousel/