HELP! * YELLOW=global GREY=local Full HTML for

GLOBAL foilset Feb 5 Delivered Lecture for Course CPS616 -- Java as a Computional Science and Engineering Programming Language

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:
  • User Interfaces
  • Coarse Grain Software Integration
  • Coding Computational Kernels
We illustrate concepts with examples

Table of Contents for full HTML of Feb 5 Delivered Lecture for Course CPS616 -- Java as a Computional Science and Engineering Programming Language


1 CPS 616 Java Lectures
with Audio February 5 97
Overview of Java as a Scientific Programming Language
See:
http://www.npac.syr.edu/users/gcf/cps616-97feb5

2 Abstract of CPS616-97 Lecture of February 5
3 Java for Computational Science and Engineering Web Resource at NPAC (Has Plenty of Internal Pointers to Other URLs)
4 The Computing Pyramid
5 Exaop computing on the Web in 2007 (Pyramid/Web Compute Power)
6 Implications of the Computing Pyramid
7 Synergy of InterNet and IntraNets
8 Some Critical Features of Java as a Programming Language
9 There are (at least) 3 Major Roles for JAVA in Computation
10 The 3 Roles of Java
11 Open Universal WebWindows --
A Revolution in the Software Industry!

12 The WebWindows Operating System
13 NCSA Biology Workbench
14 NCSA Biology Workbench
15 Kivanc Dincer's Java FrontEnd to Pablo - I
16 Pablo Java Interface
17 Screens Opened for Java Interface to Distributed Computing Environment
18 Java for Coarse Grain Distributed Computing and Software Integration
19 41:WebFlow/WebVM Overview
20 Article on MIP Sucking Java Applets
21 Mip Sucking Article -- Press Archive and week of January 6 Tuesday
22 Article on MIP Sucking Java Applets
23 Java as the Language for Computational Kernels!
24 Comparison of Java and Fortran 77/90
25 Classes of Simulations and their High Performance Needs
26 Some Critical Features of Java and Parallelism - II
27 Network of Web Servers and Clients
28 Select Active Processors in HPJava Demo
29 Java Links the Bottom and Top of Pyramid
30 Isn't the Web hardware and software too slow to be interesting for HPCC? -Java- I
31 Performance of Java is Dreadful!
32 Java LINPACK Benchmark Page
33 LinPack Java Performance Updated to Sept 30 1996
34 Isn't the Web hardware and software too slow to be interesting for HPCC? -Java- III

This table of Contents Abstract



HELP! * YELLOW=global GREY=local HTML version of GLOBAL Foils prepared 6 February 97

Foil 1 CPS 616 Java Lectures
with Audio February 5 97
Overview of Java as a Scientific Programming Language
See:
http://www.npac.syr.edu/users/gcf/cps616-97feb5

From Feb 5 Delivered Lecture for Course CPS616 -- Java as a Computional Science and Engineering Programming Language CPS616 spring 1997 -- Feb 5 1997. * See also color IMAGE
Secs 67.6 Full HTML Index
Instructor: Nancy McCracken
teamed with Meryem Ispirli, Geoffrey Fox,
Tom Scavo, John Yip
Syracuse University
111 College Place
Syracuse
New York 13244-4100

HELP! * YELLOW=global GREY=local HTML version of GLOBAL Foils prepared 6 February 97

Foil 2 Abstract of CPS616-97 Lecture of February 5

From Feb 5 Delivered Lecture for Course CPS616 -- Java as a Computional Science and Engineering Programming Language CPS616 spring 1997 -- Feb 5 1997. * See also color IMAGE
Secs 84.9 Full HTML Index
We review role of Java as a language for computational science and engineering
We divide use of Java into three areas:
  • User Interfaces
  • Coarse Grain Software Integration
  • Coding Computational Kernels
We illustrate concepts with examples

HELP! * YELLOW=global GREY=local HTML version of GLOBAL Foils prepared 6 February 97

Foil 3 Java for Computational Science and Engineering Web Resource at NPAC (Has Plenty of Internal Pointers to Other URLs)

From Feb 5 Delivered Lecture for Course CPS616 -- Java as a Computional Science and Engineering Programming Language CPS616 spring 1997 -- Feb 5 1997. *
Secs 95 Full HTML Index
See Original Foil

HELP! * YELLOW=global GREY=local HTML version of GLOBAL Foils prepared 6 February 97

Foil 4 The Computing Pyramid

From Feb 5 Delivered Lecture for Course CPS616 -- Java as a Computional Science and Engineering Programming Language CPS616 spring 1997 -- Feb 5 1997. * Critical Information in IMAGE
Secs 252 Addon(Pyramid/Web Compute Power) Full HTML Index
Bottom of Pyramid has 100 times dollar value and 1000 times compute power of best supercomputer

HELP! * YELLOW=global GREY=local HTML version of GLOBAL Foils prepared 6 February 97

Foil 5 Exaop computing on the Web in 2007 (Pyramid/Web Compute Power)

From Feb 5 Delivered Lecture for Course CPS616 -- Java as a Computional Science and Engineering Programming Language CPS616 spring 1997 -- Feb 5 1997. *
Secs 168.4 Full HTML Index
See Original Foil

HELP! * YELLOW=global GREY=local HTML version of GLOBAL Foils prepared 6 February 97

Foil 6 Implications of the Computing Pyramid

From Feb 5 Delivered Lecture for Course CPS616 -- Java as a Computional Science and Engineering Programming Language CPS616 spring 1997 -- Feb 5 1997. * Critical Information in IMAGE
Secs 188.6 Full HTML Index
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

HELP! * YELLOW=global GREY=local HTML version of GLOBAL Foils prepared 6 February 97

Foil 7 Synergy of InterNet and IntraNets

From Feb 5 Delivered Lecture for Course CPS616 -- Java as a Computional Science and Engineering Programming Language CPS616 spring 1997 -- Feb 5 1997. * Critical Information in IMAGE
Secs 241.9 Full HTML Index

HELP! * YELLOW=global GREY=local HTML version of GLOBAL Foils prepared 6 February 97

Foil 8 Some Critical Features of Java as a Programming Language

From Feb 5 Delivered Lecture for Course CPS616 -- Java as a Computional Science and Engineering Programming Language CPS616 spring 1997 -- Feb 5 1997. * See also color IMAGE
Secs 182.8 Full HTML Index
Java likely to be a dominant language as will be learnt and used by a broad group of users
  • We have taught 3 full courses and several tutorials
  • Popular as widely applicable (growing number of API's etc.) and one gets good graphics outpiut easily.
  • Further can use Web to exchange results of your program with peers
  • Expect to be very effective in middle and high school programming
  • Kids will come to University and jobs knowing and expecting to use Java
    • They will not accept Fortran as unfamiliar and less attractive
    • They may accept C++ as a later more complicated language
    • The bottom up revolution!
Java may replace C++ as major system building language
  • Perhaps greater functionality (e.g. pointers) of C++ critical although "WebWindows" favors Java
  • but this is not topic today!

HELP! * YELLOW=global GREY=local HTML version of GLOBAL Foils prepared 6 February 97

Foil 9 There are (at least) 3 Major Roles for JAVA in Computation

From Feb 5 Delivered Lecture for Course CPS616 -- Java as a Computional Science and Engineering Programming Language CPS616 spring 1997 -- Feb 5 1997. * See also color IMAGE
Secs 60.4 Full HTML Index
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!

HELP! * YELLOW=global GREY=local HTML version of GLOBAL Foils prepared 6 February 97

Foil 10 The 3 Roles of Java

From Feb 5 Delivered Lecture for Course CPS616 -- Java as a Computional Science and Engineering Programming Language CPS616 spring 1997 -- Feb 5 1997. * Critical Information in IMAGE
Secs 113.7 Full HTML Index

HELP! * YELLOW=global GREY=local HTML version of GLOBAL Foils prepared 6 February 97

Foil 11 Open Universal WebWindows --
A Revolution in the Software Industry!

From Feb 5 Delivered Lecture for Course CPS616 -- Java as a Computional Science and Engineering Programming Language CPS616 spring 1997 -- Feb 5 1997. * See also color IMAGE
Secs 228.9 Full HTML Index
In future one will NOT write software for either
  • Windows95/NT, UNIX, Digital VMS, IBM VM etc.
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
  • CGI interface for Servers
  • Java or equivalent applet technology for clients
Applications written for WebWindows will be portable to all computers running Web Servers or Clients which hide hardware and native O/S specifics

HELP! * YELLOW=global GREY=local HTML version of GLOBAL Foils prepared 6 February 97

Foil 12 The WebWindows Operating System

From Feb 5 Delivered Lecture for Course CPS616 -- Java as a Computional Science and Engineering Programming Language CPS616 spring 1997 -- Feb 5 1997. * Critical Information in IMAGE
Secs 80.6 Full HTML Index
WebWindows Interface

HELP! * YELLOW=global GREY=local HTML version of GLOBAL Foils prepared 6 February 97

Foil 13 NCSA Biology Workbench

From Feb 5 Delivered Lecture for Course CPS616 -- Java as a Computional Science and Engineering Programming Language CPS616 spring 1997 -- Feb 5 1997. * Critical Information in IMAGE
Secs 43.2 Addon Full HTML Index
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.

HELP! * YELLOW=global GREY=local HTML version of GLOBAL Foils prepared 6 February 97

Foil 14 NCSA Biology Workbench

From Feb 5 Delivered Lecture for Course CPS616 -- Java as a Computional Science and Engineering Programming Language CPS616 spring 1997 -- Feb 5 1997. *
Secs 41.7 Full HTML Index
See Original Foil

HELP! * YELLOW=global GREY=local HTML version of GLOBAL Foils prepared 6 February 97

Foil 15 Kivanc Dincer's Java FrontEnd to Pablo - I

From Feb 5 Delivered Lecture for Course CPS616 -- Java as a Computional Science and Engineering Programming Language CPS616 spring 1997 -- Feb 5 1997. * Critical Information in IMAGE
Secs 12.9 Addon Full HTML Index

HELP! * YELLOW=global GREY=local HTML version of GLOBAL Foils prepared 6 February 97

Foil 16 Pablo Java Interface

From Feb 5 Delivered Lecture for Course CPS616 -- Java as a Computional Science and Engineering Programming Language CPS616 spring 1997 -- Feb 5 1997. *
Secs 180 Full HTML Index
See Original Foil

HELP! * YELLOW=global GREY=local HTML version of GLOBAL Foils prepared 6 February 97

Foil 17 Screens Opened for Java Interface to Distributed Computing Environment

From Feb 5 Delivered Lecture for Course CPS616 -- Java as a Computional Science and Engineering Programming Language CPS616 spring 1997 -- Feb 5 1997. * Critical Information in IMAGE
Secs 48.9 Full HTML Index
From Gregor von Laszewski

HELP! * YELLOW=global GREY=local HTML version of GLOBAL Foils prepared 6 February 97

Foil 18 Java for Coarse Grain Distributed Computing and Software Integration

From Feb 5 Delivered Lecture for Course CPS616 -- Java as a Computional Science and Engineering Programming Language CPS616 spring 1997 -- Feb 5 1997. * Critical Information in IMAGE
Secs 177.1 Full HTML Index
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

HELP! * YELLOW=global GREY=local HTML version of GLOBAL Foils prepared 6 February 97

Foil 19 41:WebFlow/WebVM Overview

From Feb 5 Delivered Lecture for Course CPS616 -- Java as a Computional Science and Engineering Programming Language CPS616 spring 1997 -- Feb 5 1997. *
Secs 38.8 Full HTML Index
See Original Foil

HELP! * YELLOW=global GREY=local HTML version of GLOBAL Foils prepared 6 February 97

Foil 20 Article on MIP Sucking Java Applets

From Feb 5 Delivered Lecture for Course CPS616 -- Java as a Computional Science and Engineering Programming Language CPS616 spring 1997 -- Feb 5 1997. * Critical Information in IMAGE
Secs 31.6 Addon Full HTML Index
http://www.packet.com/packet/ Hot Wired Tuesday January 7 Edition
Applet calculates pi while you read article!

HELP! * YELLOW=global GREY=local HTML version of GLOBAL Foils prepared 6 February 97

Foil 21 Mip Sucking Article -- Press Archive and week of January 6 Tuesday

From Feb 5 Delivered Lecture for Course CPS616 -- Java as a Computional Science and Engineering Programming Language CPS616 spring 1997 -- Feb 5 1997. *
Secs 162.7 Full HTML Index
See Original Foil

HELP! * YELLOW=global GREY=local HTML version of GLOBAL Foils prepared 6 February 97

Foil 22 Article on MIP Sucking Java Applets

From Feb 5 Delivered Lecture for Course CPS616 -- Java as a Computional Science and Engineering Programming Language CPS616 spring 1997 -- Feb 5 1997. * Critical Information in IMAGE
Secs 84.9 Addon Full HTML Index
http://www.packet.com/packet/ Hot Wired Tuesday January 7 Edition
Applet calculates pi while you read article!

HELP! * YELLOW=global GREY=local HTML version of GLOBAL Foils prepared 6 February 97

Foil 23 Java as the Language for Computational Kernels!

From Feb 5 Delivered Lecture for Course CPS616 -- Java as a Computional Science and Engineering Programming Language CPS616 spring 1997 -- Feb 5 1997. * Critical Information in IMAGE
Secs 72 Full HTML Index
Java for User Interfaces and MetaComputing is natural from its design!
Java for your favourite Conjugate Gradient routine (etc.) is less obvious …..

HELP! * YELLOW=global GREY=local HTML version of GLOBAL Foils prepared 6 February 97

Foil 24 Comparison of Java and Fortran 77/90

From Feb 5 Delivered Lecture for Course CPS616 -- Java as a Computional Science and Engineering Programming Language CPS616 spring 1997 -- Feb 5 1997. * See also color IMAGE
Secs 311 Full HTML Index
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
  • Fortran90 is object oriented but very small user base and not clear if will replace Fortran77
  • Note Fortran90 discussion started in 1978 (after Fortran77 agreed) and took fourteen years and even now Cray's Fortran77 compiler is (on C90 for numerical relativity) much better than their Fortran90 compiler.
  • Originally Fortran90 (as Fortran8X) was designed precisely for Cray architecture systems!
  • This illustrates that informal standards activities (as in the Web and HPF) are most appropriate for rapidly changing technologies
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

HELP! * YELLOW=global GREY=local HTML version of GLOBAL Foils prepared 6 February 97

Foil 25 Classes of Simulations and their High Performance Needs

From Feb 5 Delivered Lecture for Course CPS616 -- Java as a Computional Science and Engineering Programming Language CPS616 spring 1997 -- Feb 5 1997. * See also color IMAGE
Secs 93.6 Full HTML Index
1)Classic solution of large scale PDE or Particle dynamics problem
  • Data parallelism over grid points or particles
2)Modest Grain size Functional Parallelism as seen in overlap of communication and computation in a node process of a parallel implementation.
  • More generally overlap of I/O -- disk,visualization -- and computation
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
  • Objects are weopens, military units etc. in SIMNET/DSI (Forces Modelling)
4)MetaProblems consisting of several large grain functionally distinct components such as
  • Structural Analysis, Airflow, Manufacturing Process, Pricing, Controls etc. in MDO approach to manufacturing and design
  • more generally are components of a Problem Solving Environment
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

HELP! * YELLOW=global GREY=local HTML version of GLOBAL Foils prepared 6 February 97

Foil 26 Some Critical Features of Java and Parallelism - II

From Feb 5 Delivered Lecture for Course CPS616 -- Java as a Computional Science and Engineering Programming Language CPS616 spring 1997 -- Feb 5 1997. * See also color IMAGE
Secs 280.8 Full HTML Index
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
  • Coarse Grain Software Integration or Coordination (item 4))
    • Naturally built into Java through Applet mechanism and networking classes
  • But Data Parallelism (item 1)) -- needed for "massive parallelism" -- but although not directly supported, we can do by hand!
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
  • Most Examples of Java+MP are in Information arena (This is how you build Java Collaboratories) but scientific examples are emerging
  • We can do Java+MP for "Laplace Equation Jacobi Iteration" and this how we (Caltech) started hypercube work in 1981
  • Note that Fortran or C plus message passing (PVM,MPI) is dominant implementation technology for data parallelism over last ten years

HELP! * YELLOW=global GREY=local HTML version of GLOBAL Foils prepared 6 February 97

Foil 27 Network of Web Servers and Clients

From Feb 5 Delivered Lecture for Course CPS616 -- Java as a Computional Science and Engineering Programming Language CPS616 spring 1997 -- Feb 5 1997. * Critical Information in IMAGE
Secs 221.7 Full HTML Index
We can use Java as an interface to to a Web-implemented simulation linking to either Server or Client

HELP! * YELLOW=global GREY=local HTML version of GLOBAL Foils prepared 6 February 97

Foil 28 Select Active Processors in HPJava Demo

From Feb 5 Delivered Lecture for Course CPS616 -- Java as a Computional Science and Engineering Programming Language CPS616 spring 1997 -- Feb 5 1997. * Critical Information in IMAGE
Secs 24.4 Addon Full HTML Index
NPAC HPJava Activity -- Michael Chang and Bryan Carpenter

HELP! * YELLOW=global GREY=local HTML version of GLOBAL Foils prepared 6 February 97

Foil 29 Java Links the Bottom and Top of Pyramid

From Feb 5 Delivered Lecture for Course CPS616 -- Java as a Computional Science and Engineering Programming Language CPS616 spring 1997 -- Feb 5 1997. * Critical Information in IMAGE
Secs 10 Full HTML Index
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!

HELP! * YELLOW=global GREY=local HTML version of GLOBAL Foils prepared 6 February 97

Foil 30 Isn't the Web hardware and software too slow to be interesting for HPCC? -Java- I

From Feb 5 Delivered Lecture for Course CPS616 -- Java as a Computional Science and Engineering Programming Language CPS616 spring 1997 -- Feb 5 1997. * See also color IMAGE
Secs 171.3 Addon Full HTML Index
Java is currently semi-interpreted and (as in Linpack online benchmark) is about 50 times slower than good C or Fortran
  • http://www.netlib.org/benchmark/linpackjava/
Java --> (javac)--> Downloadable Universal Bytecodes --> (Java Interpreter)
--> Native Machine Code
  • Just in Time Compilers speed this up by factor of 10
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

HELP! * YELLOW=global GREY=local HTML version of GLOBAL Foils prepared 6 February 97

Foil 31 Performance of Java is Dreadful!

From Feb 5 Delivered Lecture for Course CPS616 -- Java as a Computional Science and Engineering Programming Language CPS616 spring 1997 -- Feb 5 1997. * Critical Information in IMAGE
Secs 15.8 Addon Full HTML Index
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

HELP! * YELLOW=global GREY=local HTML version of GLOBAL Foils prepared 6 February 97

Foil 32 Java LINPACK Benchmark Page

From Feb 5 Delivered Lecture for Course CPS616 -- Java as a Computional Science and Engineering Programming Language CPS616 spring 1997 -- Feb 5 1997. *
Secs 388.8 Full HTML Index
See Original Foil

HELP! * YELLOW=global GREY=local HTML version of GLOBAL Foils prepared 6 February 97

Foil 33 LinPack Java Performance Updated to Sept 30 1996

From Feb 5 Delivered Lecture for Course CPS616 -- Java as a Computional Science and Engineering Programming Language CPS616 spring 1997 -- Feb 5 1997. * Critical Information in IMAGE
Secs 5.7 Addon Full HTML Index
see http://www.netlib.org/benchmark/linpackjava/
Note Just in Time Compilers are giving a factor of 10 from June 96 Measurements!

HELP! * YELLOW=global GREY=local HTML version of GLOBAL Foils prepared 6 February 97

Foil 34 Isn't the Web hardware and software too slow to be interesting for HPCC? -Java- III

From Feb 5 Delivered Lecture for Course CPS616 -- Java as a Computional Science and Engineering Programming Language CPS616 spring 1997 -- Feb 5 1997. * See also color IMAGE
Secs 125.2 Full HTML Index
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
  • This does NOT violate Web Philosophy in our opinion!
Use Native Classes selectively for
  • Compiler Runtime, Matrix Primitives, Image Processing and other engineering/science libraries,
  • PDE primitives such as mesh generators,
  • optimization as needed in resource management or applications

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 Sun Feb 16 1997