SymGrid

From SCIEnce

Jump to: navigation, search

Contents

[edit] Software access from symbolic computation systems to Grid Services and Computational Grids

[edit] SymGrid

We have designed a new Grid framework, SymGrid, which builds on and extends standard Globus middleware capabilities, providing support for Grid Services and for orchestration of symbolic components into high-performance Grid-enabled applications forming a computational Grid. The project will initially integrate four major computational algebra systems into SymGrid: Maple, GAP, Kant and Mupad. In this way, heterogenous symbolic components can be composed into a single large-scale (possibly parallel) application.

SymGrid comprises two main middleware components (see the picture below): SymGrid-Services provides a generic interface to Grid services, which may be engines of computational algebra (CA) packages; SymGrid-Par links multiple instances of these engines into a coherent parallel application that may be distributed across a geographically-distributed computational Grid. SymGrid-Par may itself be registered as a Grid service. The engines are linked by well-defined interfaces that use the standard OpenMath protocol for describing mathematical objects. We have constructed prototype implementations of both components and are in the process of robustifying these for general use.

[edit] SymGrid-Services

Modern Grid and Web technologies allow simple access to remote applications and other services. Services are exposed through standard ports, which provide mechanisms to allow the discovery of new services and to support interaction with those services. SymGrid-Services provides a set of WSRF-compliant interfaces from symbolic computations to both Grid and Web services, and allows straightforward encapsulation of symbolic computations as Grid service components, including automatic client generation. Mathematical objects are communicated between users and services using OpenMath protocols.

While Grid services have different goals from pure Web services (sharing computing power and resources such as disk storage databases and software applications, compared with simply sharing information), a Grid service is essentially a Web service with a few new additions: stateful services, service instantiation, named service instances, two-level naming scheme, a base set of service capabilities, and lifetime management. These new capabilities improve user interaction with remote symbolic computing services: prior computations can be stored in the service state, using instantiation, personalized services can be created, the naming schemes allow services to be easily modified, standard service data elements allow standard search facilities to be implemented, and, due to the transient character of the services, resource management can easily be performed. All of these features are supported through SymGrid-Services.

[edit] SymGrid-Par

SymGrid-Par orchestrates symbolic components into a (possibly parallel) Grid-enabled application. Each component executes within an instance of a Grid-enabled engine, which can be geographically distributed to form a wide-area computational Grid, built as a loosely-coupled collection of Grid-enabled clusters. Components communicate using the same OpenMath data-exchange protocol that is also used by SymGrid-Services. In this way, a high degree of integration is achieved between services and high-performance computations.

SymGrid-Par is built around GRID-GUM, a system designed to support parallel computations on the Grid, and which has been adapted to interface with symbolic engines. GRID-GUM builds on the basic MPICH-G2 transport protocols and task management capabilities to provide a range of very high-level facilities aimed at supporting large-scale, complex parallel systems. It includes support for ultra-lightweight thread creation, distributed virtual shared-memory management, multi-level scheduling support, automatic thread placement, automatic datatype-specific marshalling/unmarshalling, implicit communication, load-based thread throttling, and thread migration. It thus provides a flexible, adaptive, autonomic environment for managing parallelism/distribution at various degrees of granularity.

SymGrid-Par comprises two interfaces: CAG links the computational algebra systems (CASs) of interest to GRID-GUM; and GCA conversely links GRID-GUM to these CASs. The CAG interface is used by the CAS to interact with GRID-GUM. GRID-GUM then uses the GCA interface to invoke remote CAS functions and communicate with the CASs etc. In this way, we achieve a clear separation of concerns: GRID-GUM deals with issues of thread creation/coordination and orchestrates the CAS engines to work on the application as a whole; while the CAS engine deals solely with execution of individual algebraic computations. Together, the systems provide a powerful, but easy-to-use, framework for executing heterogeneous symbolic computations on a computational Grid. We exploit this framework to provide support for commonly found patterns of computation that may be used directly from within symbolic programs.

See further details in the Technical report D5.4 on middleware for Grid access/components.

[edit] Downloads

Currently we offer:

  • D5.1 Middleware allowing access to Grid services from symbolic computing systems
  • D5.2 Middleware allowing symbolic Grid components
  • D5.3 Extensions to CA systems to exploit middleware

See the Downloads section of our site for links and installation instructions.

Views
Personal tools