Given by Geoffrey C. Fox at Penn State Jan 13 Wright State Jan 23 on January 97. Foils prepared January 17 97
Outside Index
Summary of Material
Java appears to offer a good compromise between C++ and Fortran with both high performance and attractive object oriented features and will be learnt by the next generation as their first language
|
Java Collaboration Systems promise to add to Web dissemination of material (which we review) interactive linkage of teachers and students -- the missing link |
TANGOsim links concepts with a discrete event simulator integrated into collaboration environment
|
Outside Index
Summary of Material
Geoffrey Fox NPAC Syracuse University |
111 College Place |
Syracuse NY 13244-4100 |
Java appears to offer a good compromise between C++ and Fortran with both high performance and attractive object oriented features and will be learnt by the next generation as their first language
|
Java Collaboration Systems promise to add to Web dissemination of material (which we review) interactive linkage of teachers and students -- the missing link |
TANGOsim links concepts with a discrete event simulator integrated into collaboration environment
|
See Original Foil |
Bottom of Pyramid has 100 times dollar value and 1000 times compute power of best supercomputer |
Web Software MUST be cheaper and better than MPP software as more money invested! |
Therefore natural strategy is to get parallel computing environment by adding synchronization of parallel algorithms to loosely coupled Web distributed computing model |
Java likely to be a dominant language as will be learnt and used by a broad group of users
|
Java may replace C++ as major system building language
|
Java for the User Interface: This is roughly the "WebWindows Philosophy" of building applications to Web Server/Client Standards |
Java for Coarse Grain Software Integration: see collaboration and metacomputing |
Java as a high performance scientific language: for "inner" (and outer) loops Here parallelism is important but sequential issues also critical and first issues to examine! |
In future one will NOT write software for either
|
Rather one will write software for WebWindows defined as the operating environment for World Wide Web |
WebWindows builds on top of Web Servers and Web Client open interfaces as in
|
Applications written for WebWindows will be portable to all computers running Web Servers or Clients which hide hardware and native O/S specifics |
WebWindows Interface |
This is least controversial and is essentially WebWindows for User Interfaces |
Fortran was never good at user interfaces! |
An example of Web-based Computing |
It lets researchers author tools and leave them on the machine of choice on the web |
It allows multiple data bases to intercommunicate with each other and the functional operators that the software tools represent and to make a web browser the window into this system. |
From Gregor von Laszewski |
In this section we look at Java for MetaComputing |
and in particular WebFlow which can be thought of as WebWindows version of AVS or Khoros |
See Original Foil |
See Original Foil |
See Original Foil |
http://www.packet.com/packet/ Hot Wired Tuesday January 7 Edition |
Applet calculates pi while you read article! |
Java for User Interfaces and MetaComputing is natural from its design! |
Java for your favourite Conjugate Gradient routine (etc.) is less obvious ..... |
Clearly Java can easily replace Fortran as a Scientific Computing Language as can be compiled as efficiently and has much better software engineering (object) and graphics (web) capabilities
|
Java can unify classic science and engineering computations with more qualitative macroscopic "distributed simulation and modelling" arena which is critical in military and to some extent industry |
1)Classic solution of large scale PDE or Particle dynamics problem
|
2)Modest Grain size Functional Parallelism as seen in overlap of communication and computation in a node process of a parallel implementation.
|
3)Object parallelism seen in Distributed Simulation where "world" modelled (typically by event driven simulation) as set of interacting macroscopic (larger than grid points) objects
|
4)MetaProblems consisting of several large grain functionally distinct components such as
|
Java: 1) Not Supported, 2) is Thread mechanism, 3) is Java Objects or Applets, 4) is JavaBeans or equivalent |
Fortran: 1)is supported in HPF, 2--4) are not supported |
As we saw large scale Applications need many forms of parallelism and it is not needed/appropriate to use the same mechanism for each form
|
Thus Java needs (runtime and perhaps language) extension to support HPF/HPC++ like (shared memory model for programmer) data parallelism but "Java plus message passing" is already here
|
We can use Java as an interface to to a Web-implemented simulation linking to either Server or Client |
NPAC HPJava Activity -- Michael Chang and Bryan Carpenter |
NPAC HPJava Activity -- Michael Chang and Bryan Carpenter |
Key question is performance of Java |
Note Web Software can be run on High Performance IntraNets such as Iway so hardware need NOT be a problem! |
Java is currently semi-interpreted and (as in Linpack online benchmark) is about 50 times slower than good C or Fortran
|
Java --> (javac)--> Downloadable Universal Bytecodes --> (Java Interpreter) |
--> Native Machine Code
|
However Language can be efficiently compiled with "native compilers" |
Java ----> (native compiler) |
---> Native (for Particular Machine) Code |
Lots of Interesting Compiler issues for both compiled and scripted Java |
My SGI INDY gets .54 Megaflops for Java 100 by 100 Linpack |
It has 200 Mhz R4400 and current Netlib benchmark for this chip is 32 mflops for optimized Fortran |
For better resolution see JPEG Version |
see http://www.netlib.org/benchmark/linpackjava/ |
Note Just in Time Compilers are giving a factor of 10 from June 96 Measurements! |
Applications requires a range of capabilities in any language |
High level ("Problem Solving Environment") manipulating"large" objects
|
Intermediate level Compiled Code targetted at "sequential" (multi-threaded) architecture
|
Lower level runtime exploiting parallelism and memory hierarchies
|
One can use "native classes" which is just a predownloaded library of optimized runtime routines which can be high performance compiled Java, C, C++, Fortran, HPF etc. modules invoked by interpreted or compiled Java
|
Use Native Classes selectively for
|
Numerical Objects in (C++/Fortran/C/Java) |
Expose the Coarse Grain Parallelism |
Expose All Levels of Memory Hierarchy |
a) Pure Script (Interpreted) |
c) High Level Language but Optimized Compilation |
d) Machine Optimized RunTime |
b) Semi- Interpreted |
a la Applets |
Memory Levels in High |
Performance CPU |
Nodes of Parallel/ Distributed System |
Syracuse Workshop saw no serious problem to High Performance Java on sequential or Shared Memory Machines |
Some restrictions are needed in programming model |
For instance, Avoid Complicated Exception handlers in areas compilers need to optimize! |
Should be able to get comparable performance on compiled Java C and Fortran starting with either Java Language or JavaVM bytecodes |
The Interpreted (Applet) JavaVM mode would always be slower than compiled Java/C/Fortran -- perhaps by a factor of two with best technology |
We have proposed an approach which uses native classes for "compiler runtime" and follows an HPF style with an interpreted front-end like Matlab or APL or "host" programming model as in *LISP on CM-2 |
e.g. A = HParray.matmul(B,C)
|
This leads again to Java wrappers invoked by HPF-style Java(Script) interpreter which interfaces to native HPF or other implementations.
|
Java can help in both dissemination and collaboration aspects of education |
A Java GreenBoard |
Presented July 22 at Harbin Institute of Technology by Geoffrey Fox |
Web technologies have potential for interactive rich environments which are clearly superior to existing video based conferencing and distance education
|
Java Collaboration systems such as Habanero (NCSA), Shaking Hands(IBM) and Tango(NPAC) very important
|
CGI scripts and client side Javascript is straight forward today |
Virtual Programming Laboratory -- MPI, HPF on the Web -- deployed in Syracuse course CPS615 and next Cornell Virtual Workshop |
Java Applets for simulation as in Syracuse's Phy105/307
|
Multimedia databases with database search of close captions and other text material
|
Database supported Mail, FAQ, User support etc. |
VRML 2.0 for virtual environments and scientific visualization
|
This uses NPAC Web linked Database Technology |
Ongoing NSF MRA grant to Cornell and Syracuse is building advanced Web resources to incorporate simulation (Java Applets) into Syracuse University's very successful "Science for 21st Century" freshman course for non science majors
|
Several Universities using Java in Introductory Computer science courses
|
Living SchoolBook -- Syracuse (NPAC and School of Education, Columbia Teachers college) -- ATM links to New York State schools, Museum of Science and Technology in Syracuse
|
Thinkquest (ANS) database support by Syracuse |
Move Undergraduate courses (e.g. Science for the 21st. Century) to high school level. |
We are told that we should communicate science and engineering better to the world! |
Previously such communication skills were the written and spoken word but now perhaps we can imagine that "Java/Web programming" as another key Communication skill |
This suggests newjob opportunities and new curricula such as |
Degrees in Scientific Communication which combine classical Physics (etc.) education with Simulation and Web Technologies .... |
Set of innovative interfaces (pressure, optical, muscle movement) linked to Java applets |
Link to web disseminated education |
http://www.npac.syr.edu/projects/pulsar
|
see http://www.npac.syr.edu/projects/pulsar |
Includes text triangle where every letter just requires 3 Gestures |
see http://www.npac.syr.edu/projects/pulsar |
From work of Ed Lipson and Dave Warner |
We have made Good Progress here using Web Technology |
WebWisdom is our System at NPAC built from PERL and JavaScript and features |
Built-in Audio |
Hierarchically Arranged Information |
Parameterized HTML |
Automatic Logging of pages accessed |
Set of Illustrations of JavaScript WebWisdom Education and Presentation Delivery System |
Set of Illustrations of JavaScript WebWisdom Education and Presentation Delivery System |
Set of Illustrations of JavaScript WebWisdom Education and Presentation Delivery System |
Set of Illustrations of JavaScript WebWisdom Education and Presentation Delivery System |
Set of Illustrations of JavaScript WebWisdom Education and Presentation Delivery System |
Set of Illustrations of JavaScript WebWisdom Education and Presentation Delivery System |
Set of Illustrations of JavaScript WebWisdom Education and Presentation Delivery System |
Set of Illustrations of JavaScript WebWisdom Education and Presentation Delivery System |
WebWisdom defaults to HTML where "contains all information" and Persuasion/Poewerpoint original Otherwise |
You can always use either version |
Set of Illustrations of JavaScript WebWisdom Education and Presentation Delivery System |
Set of Illustrations of JavaScript WebWisdom Education and Presentation Delivery System |
Java is basis of Web Collaboration Systems with Applets Coordinated by Java Server |
Habanero from NCSA was one of first |
TANGOsim uses more modern Web Technology and incorporates a Discrete Event Simulator |
TANGOTM is a Web based, generalized collaboratory system |
TANGO is designed to:
|
TANGO extends Web paradigm to true collabora- tive computing and beyond the chat and shared whiteboard concept. |
Entirely Web-based system (runtime implemented in Java) |
Able to tap any Web information resources |
Self-distributing software model (applets not applications) |
Unrestricted inter-applet communication |
Supports all basic collaboratory functions:
|
Language independent: support for non-Java applications
|
Archiving system for session replays
|
Dynamic and flexible master-slave mode |
Entirely open, extensible system with growing set of applications |
TANGOsim mode provides support for discrete event simulations |
Used in C2, telemedicine, and weather CIV apps. |
CA -- Control Application |
SA -- Standalone Application |
HTTP -- Classic HTTP Server |
N -- Netscape Navigator |
LD -- Local Daemon |
CS -- Central Server |
DB -- Database |
A -- Java Applet |
This shows how a Java/C Plug-In enables Communication between Java Server and TANGO Clients |
TANGOsim extends TANGO architecture by adding a discrete event simulator
|
TANGO Java |
Collaboratory |
Server |
HTTP |
Server |
MultiMedia Mail |
C2 Commander |
Chat |
VTC |
Event Driven |
Simulation |
Engine |
C2 Radar Officer |
3D GIS |
Scripting |
Language |
C2 Weather Officer |
Message Routing |
SW/Data Distrib. |
Other |
Collaborators |
MultiMedia Mail |
Chat |
Simulation |
Engine Controller |
All Clients |
Typical Clients |
Control Application layout (started in Netscape browser). Two users logged in. List of available applications visible. |
Screen of User1. Talking Heads and Whiteboard applets started. User2 collaborates with User 1 in 2 sessions (Talking Heads and Whiteboard). |
2D GIS applications
|
3D GIS - a futuristic approach to C2 displays
|
Screen of User1. Weather Report, Hopfield Neural Network and Cross Product applets started. |
NPAC Web Based Geographical Information System in Collaborative Mode |
Two GIS application launched on the different machines, but set to be displayed on one screen to show that every instance of GIS in slave mode is synchronized with GIS in master mode. Master browser (upper right) is easily recognized by decoration (thumb-wheels, buttons) around its render area. |
NPAC Web Based Geographical Information System in Stand Alone Mode |
A GIS application is a specialized OpenInventor viewer, however it accepts any OpenInventor 2.1 scene model. That's why it's so easy to integrate it with third party applications, which produce IO/VRML output. The images show GIS integration with Weather Simulation application. A GIS viewer can also display animated objects controlled by Simulation Engine. |
Audio/Video teleconferencing system
|