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