MultiAgent Systems to Support Networked Scientific Computing

Anupam Joshi, Naren Ramakrishnan, Elias N. Houstis · Purdue e-Pubs (Purdue University System) · 1997

The new economic realities require the rapid prototyping of manufadured artifacts and rapid solutions to problems with numerous interrelated elements.This, in turn, requires the fast, accurate simulation of physical processes and design optimization using knowledge and computational models from multiple disciplines in science and engineering.High Performance Computing &.Communication (HPCC) Systems facilitate this scenario.This paper explores the use of advisory agents to enable harnessing the power of (inter)networked computational resources (agents) to solve scientific computing problems.Many hitherto dormant and difficult challenges in applied sciences, such as modeling protein folding or internal combustion engine design, have become feasible to attack using the power of HPCC.The evolution of the Internet into the Global Information Infrastructure (GIr) , and the concomitant growth of computational power and network bandwidth suggests that computational modeling and experimentation will continue to grow in importance as a tool for big and small science.Networked Scientific Computing (NSC) seems to be the next step in the evolution of the HPCC.It allows us to use the high performance communication infrastructure (vBNS, Internet II etc.) to view heterogeneous networked hardware (including specialized high performance resources such as the proposed terraflops machines) and software (e.g.specialized solvers, databases of material properties, performance measuring systems) resources as a single "meta computer" [llj(http://www.cecs.missouri.edu/Joshi/sciag/).NSC enables scientists to begin to address the class of complex problems that are envisaged in the Accelerated Strategic Computing Initiative (ASCI) from DOE.In this type of problems, "Iifecycle simulation" is the operative keyword.The design process operates at the scale of the whole physical system with a large number of components that have different shapes, obey different physical laws and manufacturing constraints, and interact with each other via geometric and physical interfaces through time.The scientific computing software of tomorrow, developed with such applications in mind, will use software agent based techniques to build systems from software components which run on heterogeneous, networked platforms.It will allow wholesale reuse of legacy software and provide a natural approach to parallel and distributed problem solving.Yet, for all its potential payoffs, the state-of-the-art. in Scientific Computing systems is woefully inadequate in terms of ease of use.Take, for example, parallel computing.Diane O'Leary in a recent article[22] compared parallel computing of today to the "prehistory" of computing, where computers were used by a select few who understood the details of the architecture and operating system, where programming was complex, and debugging required reading hexadecimal dumps.Computer time had to be reserved, jobs were submitted in batches, and crashes were common.Users were never sure of whether an error was due to a bug in their code or in the system.One can safely argue that ifparallcl processing is in its prehistory, then networked scientific computing (NSC) is probably in the mesozoic era.Clearly, if the NSC based computational paradigm for the scientific process is to succeed and become ubiquitous, it must provide the simplicity of access similar to the point and click capability of networked information resources like t.he web.This means that an infrastructure needs to be developed to allow scientific computing applications to use resources and services from many sources spread across the (inler)network.The system, however, needs to be network and evolution transparent to the user.In other words, the user should be presented an abstraction of the underlying networked infrastrudure as a single meta-computer, and details such as locating the appropriate software and hardware resources for the present problem, changes/updates/bug fixes to the Bonware components etc. should be handled at the system level with minimal user involvement.The first part of the problem can be handled by creating advisory agents that accept a problem definition and some performance/success criteria from the user, and suggest software components and hardware resources that can be deployed to solve this problem.This is very similar in substance to the idea of recommender systems that is being mooted for harnessing distributed information resources.While the problem has been identified in the networked information resources scenario, and initial research done [24], the problem remains largely ignored for the domain of networkcd computational resources.Note that the problem is different from invoking a known method remotely on some object, for which a host of distributed 00 techniques are being deveoped and proposed.To rcalize the need for such an advisory system, consider the present day approximation to "Networked" scientific computing.Several software libraries for scientific computing arc available, such as Nellib, Lapack/ScaLapack etc.There are even some attempts to make such systems accessible over the web, such as Web / /ELLPACK(from Purdue, http://pellpack.cs.purdue.edu/)and NetSolvc(from UTK/ORNL, http://WWW.C5.utk.edu/netsolvcJ).Soft-.ware such as GAMS[l](http://gams.nist.gov/)exists which enables users to identify and locate the right class of software for their problem.However, the user has to identify the software most appropriate for the given problem, download the software and its installation and use instructions, install the software, compile and (possibly port) it, and learn how to invoke it appropriately.Clearly this is a non-trivial task even for a single piece of software, and can be enormously complex when multiple software components need to be used.Using the networked resources of today is the modern day equivalent of programming ENIAC, which required direct manipulation of connecting wires.Research is needed to provide systems which will abstract away the detail of the underlying networked system from the user, who should be able to interact with this system in the application domain.This is where PSEs with inherent "intelligence" come in.A Problem Solving Environment is a computer system that provides the user with a high level abstraction of the complexity of the underlying computational facilities.The design objectives and architecture of PSEs are described in [29].It provides all the computational facilities necessary to solve a target class of problems [6].These facilities include advanced solution methods, automatic or semiautomatic selection of solution methods, and ways to easily incorporate novel solution methods.Moreover, PSEs usc the language of the target class of problems and provide a "natural" interface, so users can use them without specialized knowledge of the underlying computer hardware or software.The user can not.be expected to be well versed in selecting appropriate numerical, symbolic and parallel systems, along with their associated parameters, that are needed to solve a problem.Nor can s/he be expected to be aware of all possible software components and hardware resources that are available across the network to solve a problem.An important task of aPSE is to accept some "high level" description of the problem from the user, and then automatically locate and select the appropriate computational resources (hardware, software) needed to solve the problem.Clearly, this task requires the use of "intelligent" techniques -it requires knowledge about the problem domain and reasoning strategies.The purpose of our research is to address the issue of intelligence in the general networked scientific computing domain.Specifically, we have developed advisory systems for the class of applications that can be described by mathematical models involving Partial Differential Equations(PDEs).The numerical sol ution of partial differential equation models depends on many factors including the nature of the operator, the mathematical behavior of its coefficients and its exact solution, the type of boundary and initial conditions, and the geometry of the space domains of definition.There are many numerical solvers (software) for PDEs.These solvers normally require a number of parameters that the user must specify, in order to obtain a solution within a specified error level while satisfying certain resource (e.g., memory and time) constraints.The problem of selecting a solver and its parameters for a given PDE problem to satisfy the user's computational objectives is difficult and of great importance.With the heterogeneity of machines available across the network to the PSE, including parallel machines, an additional decision that has to be

Read the paper · More papers on PaperTik