Enabling Technologies for PSE's
Ron Boisvert NIST (from Purdue)
Faisal Saied Illinois
Paul Wang Kent State
Sanjiva Weerawarana Purdue
Introduction
* Wang came from Macsyma project at MIT
* Weerawarana just got PhD from Purdue
* Enabling Technologies are techniques and tools which provide infrastructure for building PSE's
* One person's tool is another person's application!
Boisvert Presentation -I
* Components include:
- Integration
- Domain Expertise or domain specific subsystems
- User Interface
* Enablers exist at different levels
- Conceptual
- Arcitectural
- Procedural -- the actual implementation tools
Boisvert Presentation II
* ELLPACK used
- Linpack ITPACK etc
- Macro-processor and compiler-compiler -- both built especially for LINPACK
* What are most promising software archiectures for building PSE's?
Saied Presentation -- I
* MGLab is a set of Matlab functions that define an interactive multigrid solver environment
- generate results in Matlab's sparse matrix format
- Use Matlab visualization capabilities
- Design your own V cycle and choose smoother etc.
Saied Presentation -- II
* Matlab has high level language, simple library interface, sparse matrix , visualization and GUI development support
* Missing is 3D arrays, geometry and certain classes of algorithms
* but is extensible with symbolic, neural net, ODE, optimization, image processing toolkits.
* need visual programming voice natural language interfaces
Saied Presentation -- III
* need computational geometry
- solid modeling, mesh generation and adaptive mesh refinement
* scalable software libraries for important algorithms
- including automatic diffentiation
- THIS is in good shape!
* information technology
- look up solution!
* One person's PSE is another one's PSE enabler
- eg Saied used MATLAB as enabler of MGlab
Wang Presentation -- Issues I
* User Interface
* Kernel
* Domain Knowledge (data)base or expert
* Compute Servers -- Symbolic Numeric Graphics AI Database
* Help and Documentation
* Utilities -- Debugging and Performance Tuning
Wang Presentation -- Issues II
* Collection of Solution Procedures
- parallel algorithms
* Aids for Analysing problems
- identify approach
* Aid for preparing problem specific codes
- generate and later modify codes for complex target machines
* Parallel and Distributed Computing Implementation
Wang Presentation -- Needs
* Need flexible reusable numeric system and libraries
* reliable efficient symbolic server
* Expert knowledge based systems
* Connection Interface mechanism
* Parallel and Distributed operating Environments
* Automatic and User Assisted code genearation
- especially for parallel systems
Wang Presentation -- Exchange Issues
* Need to agree on interface between tools
- routine interface, control mechanisms, dataflow protocol
* Scientific data exchange protocols -- exchange formulae, different precision and number number types
- OPEN MATH
- Mathlink -- mathematica
- Iris -- Maple
- MPI -- Message Passing
Wang Presentation -- His Ideas MP
* Continues discussion of data exchange protocol
* MP(MultiProtocol) -- ICM/Kent which is glue between different forms of math data and uses "binary encoded parse trees" and sits
above transport layer
Wang Presentation -- Code Generation
* Capture Parallelism at high level before you lose information by coding in C Fortran etc.
* FINGER is finite element code generator
* PIER is parallel FEM system
Wang Presentation -- Summary
* Need to be object oriented
* PSE frameworks
- these seem to be templates
* PSE standards for data exchange
* PSE user interface standards
Weerawarana -- Overview
* GUI requires many person years! -- Interesting
* Claims languages are a complex issue but not obvious why
Weerawarana -- Needs
* Portable GUI Tools
* OLE OpenDoc CORBA
* ILU Polylith Glish IDL Software component integration using software bus or other models
* Object Oriented is natural as PSE's describe specific objects
* Embeddable (in existing C program) scripting languages such as Perl TCL
* Excutable content and Web Based PSE's -- Java Python
Weerawarana -- PSE Kernels
* Key things needed in building PSE's -- middleware
- from GUI, data management to scripting environment
* Purdue PSE kernel implements this
- Notebook -- missed item here!
- Software bus
- Utilities
- C++ and Web versions exist
* Java should not be used for applications but to invoke existing code in conventional languages