| A Collaborative Code Development Environment for Computational Electromagnetics : A Collaborative Code Development Environment for Computational Electromagnetics David W. Walker, Oak Ridge National Lab
Omer Rana, Matthew Shields, Cardiff University
David Golby, BAE SYSTEMS, Sowerby |
| The Aim: Scientific Insight : The Aim: Scientific Insight Better understanding of the fundamental laws of the universe and how these interact to produce complex phenomena.
New technologies for economic competitiveness and a cleaner and safer environment.
But computational scientists and mathematicians often have to struggle with a variety of software and hardware environments.
We want to provide problem-solving power to the end user based on state-of-the-art algorithms, system software, and hardware. |
| Scientific Computing : Scientific Computing Prediction : as in traditional computational science.
Abstraction : the recognition of patterns and inter-relationships.
Visualization for steering, navigation, and immersion.
Data mining.
Collaboration : brings a wide range of expertise to a problem. We use computers to advance science through: |
| Innovative Environments : Innovative Environments Gives transparent access to heterogeneous distributed resources
Supports all aspects of software creation and use
Seamlessly incorporates new hardware and software We seek to support prediction, abstraction,
and collaboration in an integrated computing
environment that: |
| Why PSEs? : Why PSEs? Need: enhanced scientific insight; reduced development costs; improved product quality and industrial efficiency.
Need: transparent means of integrating distributed computers, instruments, sensors, and people.
Need: improved software productivity to extract maximum benefit from advances in computers, networks, and algorithms.
|
| Problem Specification : Problem Specification High-level, problem-specification languages, often coupled with expert system. For example, PDE solvers, numerical integration, etc.
Problem composition in form of dataflow graph using a GUI. Typically used in modelling and simulation of physical systems. |
| Slide7 : Motivation Construct scientific applications, visually, from components.
Components may be JavaBeans or CORBA components.
Components can be written in a number of languages: Java, Fortran, C may be binary or source code.
Components can be sequential codes, parallel (MPI or PVM based) could be sub-routines or complete applications.
Components may be hierarchical, i.e., composed of other components. |
| An Example PSE Architecture : An Example PSE Architecture Main PSE sub-systems are:
Visual Component Composition Environment (VCCE) for graphically composing applications.
Intelligent Resource Management System (IRMS) for scheduling applications on distributed resources. |
| Architecture : Architecture |
| A VCCE for Computational Electromagnetics : A VCCE for Computational Electromagnetics We have implemented a VCCE and prototype PSE for a 2-D computational electromagnetics code, BE2D.
The boundary element method is used to solve Maxwell’s equations in two dimensions.
Input is:
contour of (x,y) values defining the boundary of the 2-D surface
angle of incoming wave relative to surface
frequency of incoming wave
amplitude of incoming wave
Output is:
file of scattering data
file of surface current data |
| EM Scattering Problem : EM Scattering Problem |
| Solution Outline : Solution Outline A mesh generation component outputs a set of (x,y) coordinates specifying the boundary of the surface. This is in the form of a CORBA data object.
A wave control component specifies the angle, frequency, and amplitude of the incident wave.
The BE2D boundary element solver accepts input from the mesh generation and wave control components,and outputs the scattering prediction and surface current as CORBA data objects.
|
| Solution Details : Solution Details The solver is used for the analysis of electromagnetic-wave scattering from infinite cylinders, with the profile in the x-y plane and the cylinder axis along the z-axis.
The grid required for the solver consists of a list of (x,y) co-ordinates around the boundary of the scatterer. Analytical shapes are often used as the basis of the scatterer profile.
The code computes the solution of the EFIE (Electric Field Integral Equation) form of the Maxwell equations for Transverse Electromagnetic (TE) waves using a Method of Moments technique.
The equations are discretised using a Galerkin scheme of 2D Rao-Wilton-Glisson linear elements positioned along the boundary contour of the cylinder.
A dense matrix is computed and solved with a LU solver, producing a complex current distribution around the boundary. |
| How It Works : How It Works An XML file is used to specify the interface of each component, and other details such as
where the component executable resides
the URL of a help information on the component
performance-related information
constraints on the execution of the component
The VCCE uses the XML file to populate the Component Repository
A special CORBA server object called the ActionFactory controls the creation and execution of the components. This is based on the Abstract Factory design pattern, and was written by Dassault Aviation within the JULIUS Project.
The third-party JChart software can be used within the VCCE to display results graphically. |
| The VCCE Interface : The VCCE Interface Components are dragged from the Component Repository on the left of the screen, and dropped onto the canvas on the right of the screen.
Components can then be joined together if their interfaces are compatible.
Output can be stored in a database for subsequent analysis. |
| Display of Results Using JChart : Display of Results Using JChart Scattering prediction Surface current |
| Iterating Over Components : Iterating Over Components We need to be able to iterate over a component.
Iterations may, or may not, be independent.
We must specify:
the component to be iterated over
the initial and final values of the loop control variable, together with the increment
The loop control variable must correspond to one of the inputs to the component we are iterating over. We must specify which input.
Loops can be nested. |
| The Loop Control Template : The Loop Control Template LOOP Start 0 End 180 Increment 10 0 Component Associate with angle BE2Dloop ComponentIn ComponentOut Assume independent loops.
Output from each loop goes to ComponentOut
Termination of loop triggers an event that tells ComponentOut that loop is done. |
| Conditional Execution : Conditional Execution Conditional execution can be handled with an if-then-else component template. if then
Execute Component 1
else
Execute Component 2 where expression is a Boolean given with a C-like syntax. |
| Template Components : Template Components We can also use the idea of a template, or design pattern, to permit the interchangability of components with the same interfaces.
For example, in the BE2D code the main computational task is the solution of a dense linear system. This could be done with:
the original routine in BE2D
the corresponding LAPACK routine
the corresponding ScaLAPACK routine
a call to a NetSolve computational server
Standardization is needed to ensure that different software for a task presents the same interface. |
| Benefits of PSEs : Benefits of PSEs PSEs can be used as “Grid portals” – providing transparent access to distributed computing and information resources.
Are (should be) easy to use.
Allow component software to be shared across disciplines and organisations, thereby enhancing reuse.
Can be used for rapid prototyping, detailed analysis, collaborative multidisciplinary research, decision support, etc.
Can incorporate “intelligence” in the form of expert advisor, input wizards, user-assisted data mining, etc.
Can be used to support computational steering and advanced visualization.
|
| Pitfalls : Pitfalls Distribution may impose a performance penalty compared with original C or Fortran code, especially when different components are located on different computers on a WAN.
Requires a lot of work to implement a working non-trivial PSE.
Must provide what the end users want – flexibility and extensibility are of key importance. |
| Future Work : Future Work Need to clarify the syntax of component composition, particularly in the use of loop and conditional templates.
Need to integrate third party software into the VCCE, particularly visualization.
Need to improve robustness of the current prototype so it can be used by scientists and engineers.
Need to identify which other application areas would most benefit from the PSE approach. |
| Summary : Summary We have implemented a prototype PSE for computational electromagnetics that permits applications to be constructed visually using components.
There is an active body of PSE researchers and developers.
European Research Conference on PSEs took place June 1999 in Spain. Next one in summer 2001. http://www.cs.cf.ac.uk/euresco99/
EuroTools SIG on PSEs. http://www.irisa.fr/EuroTools/Sigs/
PSE web site at Purdue University. http://www.cs.purdue.edu/research/cse/pses/
PSEs are used in science, engineering, finance, and manufacturing.
Current emphasis is on PSE infrastructure and prototypes. |