- 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
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