This describes Our Approach focussing on Integration of Information and Computing and concentrating on coarse grain functionality
|
WebFlow : Dataflow (AVS) using Web with databases and numbercrunching
|
MetaWeb : Metacomputing or rather cluster management using Web
|
RSA Factoring was our first succesful example
|
Financial Modelling will be an obviously important commercial application
|
Java plays a critical role in high level user interfaces for visual programming, visualization of data and performance
|
Web Interfaces to HPF will be particularly useful initially in education -- programming laboratories on the Web
|
VRML is an interesting 3D datastructure
|
This describes Our Approach focussing on Integration of Information and Computing and concentrating on coarse grain functionality
|
WebFlow : Dataflow (AVS) using Web with databases and numbercrunching
|
MetaWeb : Metacomputing or rather cluster management using Web
|
RSA Factoring was our first succesful example
|
Financial Modelling will be an obviously important commercial application
|
Java plays a critical role in high level user interfaces for visual programming, visualization of data and performance
|
Web Interfaces to HPF will be particularly useful initially in education -- programming laboratories on the Web
|
VRML is an interesting 3D datastructure
|
WebWork is an open, world-wide distributed computing environment based on computationally extended Web Technologies
|
The backend computation and information infrastructure is provided by the World-Wide Virtual Machine -- a mesh of computationally extended Web Servers (called Compute Servers)
|
These servers manage (via CGI mechanisms) a collection of standardized computational units called WebWork Modules.
|
Geographically distributed and Web-published WebWork modules interact by HTTP/MIME based message/object passing and form distributed computing surfaces called Compute-Webs
|
The front-end user/client interfaces are provided by evolving Web browsers with increasing support for two-way interactivity (e.g. Java, VRML) that facilitates client side control and authoring.
|
A natural user-level metaphor -- WebFlow -- is supported in terms of visual interactive compute-web authoring tools.
|
RSA security systems based on numbers
-
RSAm = Prime1 * Prime2
-
A product of two large primes
-
RSAm has m decimal digits
-
RSA corporation recommends m>=200
|
Bank of England and English Savings and Loan based on m=155 (512 binary digits)
|
RSA129 cracked by factoring with email team using sophisticated version of Quadratic Sieve. RSA155 will use better Number Field Sieve
|
Need x2 = y2 mod(RSAm) as then gcd(x+y,RSAm) likely to be interesting factor
|
Find x and y by finding lots of interesting a's
-
a = product of small primes = b2 mod(RSAm)
|
Given these a's factored into primes, multiply together so powers of primes are even. This gves desired x
|
This last step requires graph theory and solution (for Bank of England) of 5 million linear equations
|
RSA155 requires about 300 teraops hours to solve with NFS
|
RSA129 needed about an order of magnitude less time. Can be done today faster if use Number Field Sieve
|
We have roughly one to five million independent calculations which form the rows of matrix (after clever graph theory manipulates and combines)
|
Set of master servers publish problem to solved with suitable demos, description of algorithm and full marketing attention.
-
Clients download software, run tests and certify with test case.
-
Clients pick the set of a's they hope to do in a week
-
PC's pick the smaller numbers needing less memory and CPU power
-
Cray's pick the largest hardest numbers
|
Clients return results -- not so easy except by email and cut and paste
|
Best done as a set of cooperating servers where server performing factorization publishs it solution as a file on the WWW.
|
Cooperating servers also better for computer administrators as can control set of clients at a given site
|
Initially use humans but replace by agents when software ready
|
Illustrates implementation of WebWork message passing in terms of
-
a): current Web technologies (HTTP/CGI), and
-
b) next generation multithreaded compute-servers
|
This diagram illustrates point-to-point communication between Web servers, used to implement a webflow channel between compute-web modules. Two extreme implementation modes are described: a) based on today's Web server technology, and b) based on thread memory mapped high performance implementation, expected in future Web compute-servers. Subsequent steps, represented by a sequence of labelled lines in the figure, are described below in both implementation modes.
|
a) Today's Web server mode: (1) -- M1 locks O1 on S1 disk. (2) -- M1 sends POST HTTP message to S2 with M2 URL in the header sector and with O1 URL in the body sector. (3) -- S2 activates M2 via CGI and passes O1 URL as a command-line argument. (4) -- M2 sends GET method to S1 with O1 URL in the header. (5) -- S1 fetches O1 from its document tree. (6) -- S1 sends the content of O1 to M2 which completes the GET exchange. (7) -- M2 saves O1 by overwriting current I2 on the S2 disk. If I2 is
locked, M2 waits (blocks). (8) -- After O1 is saved on the S2 disk, M2 returns 'end-of-transfer' acknowledgment to M1 which completes the POST exchange. (9) -- M1 unlocks O1 and exists.
|
b) Compute-server (future Web server) mode: (1) - M1 locks its memory object O1. (2) - M1 checks if socket connection to M2 is in M1 connection table. If yes, go to (5) below. Otherwise, M1 connects to S2 and sends M2 creation script. (3) - S2 spawns M2 and acknowledges. (4) - M1 receives acknowledge message and saves new socket in connection table. (5) - M1 gets O1 handle. (6) - M1 writes O1 to M2 using socket lib calls. (7) - M2 reads O1 using socket lib calls. If I2 is free, O1 buffer is
copied directly to I2 buffer. If I2 is locked, M2 creates O1 clone and blocks. (8) - M2 sends acknowledge to M1. (9) - M1 unlocks O1 and blocks.
|
http://cooperate.com/cgi-bin/FAFNER/factor.pl
|
Features
-
Fill out a form and click to check out
-
"Server in a Box" includes server code
-
and initial task allocation
-
Automatically refills from the original source
-
Configurable to meet local standards of decency:
-
selective availability of services
|
months of runtime, dozens of collaborators,
|
eight nations, four continents
|
hardware platforms from an i386 laptop to an IBM SP/2 (including HPs, Alphas, MIPS, Suns, SGI machines, RS6000s)
|
Most Heterogeneous and Geographically Dispersed Award, 3rd Annual HPC Challenge, Supercomputing '95.
|
We developed new algorithms for risk neutral valuation of derivative financial instruments
|
Theoretical prices of derivative instruments are obtained by discounting their expected payoffs under the equivalent martingale measure using money market interest rate.
|
The core algorithm is Path Integral Monte Carlo which used to generate arbitrary distributions of underlying risk factors (stocks, bonds, short interest rates, commodities, indices etc.)
|
The advantage of the new algorithm is that sensitivities of derivative prices with respect to changes in all model parameters are computed in a single simulation.
-
This is crucial for effective hedging.
|
Parallel version of the algorithm is written in C and MPI and relies on task parallelism and functional decomposition (could also use HPF)
|
Monte Carlo samples are generated on multiple processors in embarrassingly parallel fashion
|
New powerful Web'96 technologies from Netscape, JavaSoft, Oracle, NeXT etc. will result in a new generation of interactive services
|
A natural next step is to start Chaining (Integrating) such services to a distributed PSE by providing a server to server communication and dataflow support
|
However Web'96 becomes also increasingly complex with its competing and overlapping multi-lingual standards
-
HTML, CGI, Perl, Java, JavaScript, LiveWire, VRML, VRMLScript
|
Visual Programming for a multi-server Web (We call it WebVM) based dataflow (we call it WebFlow) is a natural next generation user-friendly programming environment
|
We view the area of distributed Web based computing for PSE as a promising niche for NPAC and academic R and D where we expect industry to continue their focus on client-server aspects of the Web where near term profits can be made
|
http://www.npac.syr.edu/users/gcf/npacaddons -- see foil 105
|
Java provides a convenient way to build flexible graphics interfaces
|
The screendump shows the message passing traffic and status of (36) parallel nodes used in a sorting algorithm
|
In the example, the 36 threads are running the explicit algorithm on the client
|
Alternatively and more generally, the threads are replaying a trace of the program which is or was running on a separate set of nodes
|
If one uses Web Servers to control master parallel computation or more generally integrates Web into computing, these Web servers can naturally feed event traces into Java based display
-
These traces can be real-time or batch
|
We illustrate here how the individual component technologies cooperate in a complete application, WebAMR (Adaptive Mesh Refinement)
|
A mesh of computationally extended Web servers, connected via HTTP based message passing, acts as WebVM that runs PDE solver modules for individual grids
|
In a simple static AMR topology (WebWork model), a tree of refined meshes is constructed by the user via the AVS like visual programming tools (WebFlow)
|
Dynamic AMR trees require interpreted programming support -- a pilot "little language" design towards WebHPL
|
WebAMR applications can be configured and run on heterogeneous clusters, including any WebWindows compliant platform
|
Example of WebTop System in this domain in a set of WebVM/WebFlow modules, packaged and customized as a PDE Toolkit for a given Grand Challenge community.
|
Features of the Java language and runtime
-
Secure, architecture neutral, Object Oriented but simpler than C++
-
runtime modules dynamically downloadable with applet mechanism and portable opcodes (from PC, Mac, to Workstation)
|
Can build on existing work on HPF HPC++ -- especially latter
|
Two basic types of opportunities:
-
Build a modest performance totally portable runtime in Java
-
Use current PCRC runtime as native classes for a (data-parallel) Java
-
What is minimum set of PCRC routines which MUST be native(C)?
|
Applet mechanism naturally incorporates task parallelism -- need to add "channel" class (as in Fortran-M, CC++) to augment "thread" and "socket" classes
-
Need to implement Java runtime in Nexus or similar distributed thread package -- again native Java would be portable but lowish performance
|
Java can be used both on Server and Client side as expect soon good Java based clients and servers
|
See the E language http://www.communities.com/e.html
|
or my class notes http://www.npac.syr.edu/users/gcf/cps616java96 or
|
http://www.npac.syr.edu/users/gcf/cps616tech96
|