Grid programming models
This presentation is the property of its rightful owner.
Sponsored Links
1 / 27

Grid Programming Models: PowerPoint PPT Presentation

  • Uploaded on
  • Presentation posted in: General

Grid Programming Models:. Current Tools, Issues and Directions. Author: Craig Lee and Domenico Talia Presenter: Tuan Cameron. Introduction. The main goal of this paper is to: Discuss the major issues facing grid programming

Download Presentation

Grid Programming Models:

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript

Grid programming models

Grid Programming Models:

Current Tools, Issues and Directions

Author: Craig Lee and Domenico Talia

Presenter: Tuan Cameron



  • The main goal of this paper is to:

    • Discuss the major issues facing grid programming

    • Survey the common programming models being used and proposed in the grid environment

    • Discuss programming techniques and approaches that could be used to resolve the major issues.

Grid programming issues

Grid Programming Issues

  • Portability, Interoperability, and Adaptivity

  • Discovery

  • Performance

  • Fault Tolerance

  • Security

  • Program Meta-Models

Grid programming issues portability interoperability and adaptivity

Grid Programming Issues Portability, Interoperability, and Adaptivity

  • Portability is a necessary prerequisite for coping with dynamic, heterogeneous configurations.

  • The notion of using different but equivalent codes and services implies interoperability of programming model implementations.

  • A grid program should be able to adapt itself to different configurations based on available resources.

Grid programming issues discovery

Grid Programming Issues Discovery

  • Discovery is an important issue because grid codes will need to discover suitable hosts on which to run

  • Programming environments and tools must be aware of available discovery services and offer a user explicit or implicit mechanisms to exploit those services

Grid programming issues performance

Grid Programming IssuesPerformance

  • Performance becomes an issue since grids present heterogeneous bandwidth and latency hierarchy that can make it difficult to achieve high performance and good utilization of co-scheduled resources.

  • In a shared environment, quality of service will become increasingly necessary to achieve reliable performance for a given programming construct on a given resource configuration.

Grid programming issues fault tolerance

Grid Programming Issues Fault Tolerance

  • As the number of resources involved increases, so does the probability that some resource will fail during the computation.

  • Grid applications must be able to check run-time faults of communication and/or computing resources and provide actions to recover or react to faults.

Grid programming issues security

Grid Programming Issues Security

  • Since grid codes will commonly run across multiple administrative domains using shared resources such as networks, security become an issue.

  • A mechanism that provides authentication and privacy must be integral to grid programming tools.

Grid programming issues program meta models

Grid Programming Issues Program Meta-Models

  • Complete grid programming will require models about the programs themselves.

  • Grid Programming models such do everything current programming models do on a grid scale.

  • The application of enhancements, however, will be complicated by the distributed, heterogeneous nature of the grid.

Grid programming tools

Grid Programming Tools

  • Shared-State Models

  • Message-Passing Models

  • RPC and RMI Models

  • Hybrid Models

  • Peer-to-peer Models

  • Frameworks, Component Models and Portals

Grid programming tools shared state models

Grid Programming Tools Shared-State Models

  • Shared-State programming models are typically associated with tightly coupled, synchronous languages and execution models that are intended for shared memory machines or distributed memory machines with a dedicated interconnection network that provides very high bandwidth and low latency.

    • JavaSpaces is a Java-based implementation of the Linda tuplespaces concept, in which tuples are represented as serialized objects.

    • In a publish/Subscribe system, publishers post messages to an intermediary Broker and subscribers register subscriptions with that broker.

Grid programming tools message passing models

Grid Programming Tools Message-Passing Models

  • In message-passing models, processes run in disjoint address spaces and information is exchanged using message passing of one form or another.

    • MPI and Variants– The Message Passing Interface(MPI) is a widely adopted standard that defines a two-sided message passing library with matched sends and receives, that is, well-suited for grids. Examples includes MPICH-G2, MagPIe, PACX-MPI and Stampi

    • One-sided Message Passing – In this case a send operation does not necessarily have an explicit receive operation. eg. Nexus

Grid programming tools rpc and rmi models

Grid Programming Tools RPC and RMI Models

  • RPC and RMI Models structure the interaction between sender and receiver more as a language construct, rather than a library function call that simply transfers an uninterpreted buffer of data between points.

    • Grid-enable RPC – GridRPC is an RPC model and API for grids.

    • Java RMI – Java Remote Method Invocation enables a programmer to create distributed Java-based applications.

Grid programming tools hybrid models

Grid Programming Tools Hybrid Models

  • Applications that run multi-threaded within a shared-address space, and also by passing data and control between machines are Hybrid models

    • OpenMP and MPI– OpenMP is a library that supports parallel programming in shared-memory parallel machines.

    • OmniRPC - OmniRPC was specifically designed as a thread-safe RPC facility for clusters and grids.

    • MPJ – Message-passing Java makes multithreading, RMI and message-passing available to application builders.

Grid programming tools peer to peer models

Grid Programming Tools Peer-to-peer Models

  • Peer-to-peer (P2P) computing is the sharing of computer resources and services by direct exchange between systems.

  • Peer-to-peer computing takes advantage of:

    • Existing desktop computing power

    • Networking connectivity

  • An example of an open generalized peer-to-peer protocol is JXTA.

Grid programming tools frameworks component models and portals

Grid Programming ToolsFrameworks, Component Models and Portals

  • Cactus


  • CoG Kit

  • Legion

  • Component Architecture

  • Portal

  • Web Service Models

  • Coordination Models

Advanced programming support

Advanced Programming Support

  • Traditional Techniques

  • Data-driven Techniques

  • Speculative or Optimistic Techniques

  • Distributed Techniques

  • Grid-Aware I/O

  • Advanced Communication Services

  • Security

  • Fault Tolerance

  • Program Metamodels and GridAware Runtime Systems

Advanced programming support traditional techniques

Advanced Programming Support Traditional Techniques

  • There are a number of traditional performance enhancing techniques that can be brought to bear in grid codes.

    • Overlapping computation with communication

    • Shadow arrays

    • Aggregated communication

    • Compression

    • Protocol tuning

Advanced programming support data driven techniques

Advanced Programming Support Data-driven Techniques

  • Data-driven programming techniques can facilitate a more asynchronous, loose coupled execution model.

  • Both Workflow and Stream programming are instances of this model.

Advanced programming support speculative or optimistic techniques

Advanced Programming SupportSpeculative or Optimistic Techniques

  • Speculative or optimistic technique is another method of producing a more asynchronous, loosely coupled execution.

  • The goal is to control the level of optimism such that the benefits of loosely coupled execution are maximized while the overhead of wasted computation is minimized.

Advanced programming support distributed techniques

Advanced Programming SupportDistributed Techniques

  • Distributed techniques can achieve very high aggregate bandwidths between local data and processing through the distribution of processing over data.

  • Eg: Grid Datafarm Architecture which is designed to exploit access locality by scheduling programs across a large-scale distributed diskfarm that has processing close to the storage.

Advanced programming support grid aware i o

Advanced Programming SupportGrid-Aware I/O

  • While I/O systems may concentrate on the movement of data , they can certainly have a large effect on how programs are written.

Advanced programming support advanced communication services

Advanced Programming SupportAdvanced Communication Services

  • Advanced Communication Services is essentially any type of semantics associated with communication beyond the simple, reliable unicast transfer of data from point A to point B, or even the multicast of data one to many.

  • Motivation:

    • The need to become topology-aware to achieve better performance

    • The need for fundamentally different communication properties

  • Can be classified into several categories:

    • Augmented communication semantics

    • Collective operations

    • Content-based and Policy-based Routing

    • Communication scope

Advanced programming support security

Advanced Programming SupportSecurity

  • Grid applications may want authentication, authorization, integrity checking and privacy.

  • Problems:

    • Signing and checking certificates on an RPC represents an overhead that must be balanced against the amount of work represented by the RPC

  • Solution:

    • Use trusted domain that could limit per-RPC security overheads in favor of the one-time cost of establishing the domain

Advanced programming support fault tolerance

Advanced Programming SupportFault Tolerance

  • Reliability and fault tolerance in grid programming models/tools are largely unexplored, beyond simple check pointing and restart.

  • The issue here, is how to make grid programming models and tools inherently more reliable and fault tolerance.

  • It should be possible to:

    • Detect the fault

    • Propagate the notification of the fault to relevant sites

    • Take action to either recover or limit the effects of the faults

  • Event Models may be used to make grid programming models and tools more reliable and fault tolerant.

Advanced programming support program metamodels and gridaware runtime systems

Advanced Programming SupportProgram Metamodels and GridAware Runtime Systems

  • Regardless of how grids are ultimately deployed, they will consist of components and services that are either persistent or can be instantiated.

  • Some of these components and services will become widely used and commonly available. Hence, many applications will be built through the composition of components and services.

  • Meta-models can be used to define a component’s characteristics and properties in effect allowing composition to be accomplished automatically.



  • A successful grid programming model would need to have the following:

    • Portability

    • Interoperability

    • Adaptivity

    • The ability to support discovery

    • Security

    • Fault tolerance

    • Good performance

  • Login