Given by Geoffrey Fox at CPS616 spring 1997 on Feb 5 1997. Foils prepared 6 February 97
Abstract * Foil Index for this file
Secs 84.9
See also color IMAGE
We review role of Java as a language for computational science and engineering |
We divide use of Java into three areas:
|
We illustrate concepts with examples |
This table of Contents Abstract
Instructor: Nancy McCracken |
teamed with Meryem Ispirli, Geoffrey Fox, |
Tom Scavo, John Yip |
Syracuse University |
111 College Place |
Syracuse |
New York 13244-4100 |
We review role of Java as a language for computational science and engineering |
We divide use of Java into three areas:
|
We illustrate concepts with examples |
See Original Foil |
Bottom of Pyramid has 100 times dollar value and 1000 times compute power of best supercomputer |
See Original Foil |
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 |
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. |
See Original Foil |
See Original Foil |
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 |
http://www.packet.com/packet/ Hot Wired Tuesday January 7 Edition |
Applet calculates pi while you read article! |
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 Applet 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 |
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 Original Foil |
see http://www.netlib.org/benchmark/linpackjava/ |
Note Just in Time Compilers are giving a factor of 10 from June 96 Measurements! |
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
|