260 likes | 349 Views
School of ECE, University of Tehran. Grid programming models: current tools, issues and directions. Instructor : Dr. S.M. Fakhraie Presented By Naser Sedaghati n.sedaghati@ece.ut.ac.ir
E N D
School of ECE, University of Tehran Grid programming models:current tools, issues and directions Instructor : Dr. S.M. Fakhraie Presented By Naser Sedaghati n.sedaghati@ece.ut.ac.ir This is a class presentation. All data are copy righted to respective authors as listed in the references and have been used here for educational purpose only.
Outline • Introduction • Programming Models • Grid Programming Issues • A Brief Survey of Grid Programming Tools • Advanced Programming Support • Conclusion
Introduction • The term Grid Computing originated in the early 1990s as a metaphor for making computer power as easy to access as an electric power Grid. • Today, Grid Computing: • A type of parallel and distributed system. • A service for sharing computer power and data storage capacity over the Internet.
Introduction (Cont.) • What is the main goal of Grid programming? • Grid Programming in an open-ended, heterogeneous, and dynamic environments. • The design of interaction between remote services, data sources, and hardware resources. • Current tools and languages are insufficient to support the effective development of efficient Grid codes.
Introduction (Cont.) • Grid applications will tend to be heterogeneous and dynamic. • Grid for large-scale and high performance computing. • Achieve peta-flops rates on coupled Grid clusters of giga-flops processors. • The main issues: • Where current programming models are lacking? • What new capabilities are required? • Whether they are best implemented at the language level, at the tool level, or in the run-time system?
Programming Models • A Programming model: • Can be present in many different forms (i.e., a language). • Can be present in frameworks, portals, and problem-solving environments. • Enable both high performance and the flexible composition and management of resources. • Influence the entire software life cycle. • Successful programming models should also facilitate the effective use of all types of development tools.
Grid Programming Issues • Portability, Interoperability, and Adaptivity • Discovery • Performance • Fault Tolerance • Security • Program Metamodels
Portability, Interoperability, and Adaptivity • Current high-level languages allowed Processor-independent codes. • Such portability is a necessary prerequisite for coping with dynamic and heterogeneous configurations. • The notion of using different but equivalent codes and services implies interoperability. • Portability and interoperability promote adaptivity.
Discovery • Resource discovery is an integral part of Grid computing. • Grids must be able to discover various services and the interfaces they support. • Programming environments and tools must be aware of available discovery services. • Offer a user to exploit those services while developing and deploying Grid applications.
Performance • For many Grid applications, performance will be an issue. • Grids present heterogeneous bandwidth and latency hierarchies. • Reliable performance will be an equally important issue. • QoS will become necessary to achieve reliable performance. • Some users may require an actual deterministic performance model.
Fault Tolerance • The necessity of some level of fault tolerance. • It is probable that some resources will fail during the computation. • The ability to check the run-time faults. • Tools could assure a minimum level of reliable computation in the presence of faults.
Security • Grid codes will commonly run across multiple administrative domains. • Strong authentication between two sites is crucial. • It will not be uncommon that an application will involve multiple sites all under program control. • A security mechanism that provides authentication must be integral to Grid programming models.
Program Metamodels • Complete Grid programming will require models about the programs themselves. • Traditional programming and a translation between two programming models. • Different but analogous metamodels will be constructed for Grid codes. • The application of enhancements, will be complicated by the distributed, heterogeneous Grid nature.
A Brief Survey of Grid Programming Tools • Shared-State models • Message-passing models • RPC and RMI models • Hybrid models • Peer-to-peer models • Frameworks, component models, and portals • Web service models • Coordination models
Shared-State models • Associated with tightly coupled, synchronous languages and execution models. • The low BW and deep, heterogeneous latencies will make such tools ineffective. • There are nonetheless programming models based on this method. • JavaSpaces • Publish/Subscribe
Message-Passing Models • Processes run in disjoint address spaces and information is exchanged using MP of one form. • Gives the user full control. • Applicable to problems where more convenient semiautomatic programming models may fail. • Several versions: • MPI and variants • One-sided message-passing
RPC and RMI Models • Explicitly marshaled arguments being sent to a matched receive. • Remote Procedure Call (RPC) and Remote Method Invocation (RMI). • Several models: • Grid-enabled RPC • Java RMI
Hybrid Models • Make all manner of hosts available to Grid applications. • Running between both within and across address space. • Such a situation occurs in clumps (clusters of symmetric multiprocessors) and also in Grids. • Several models: • OpenMPI and MPI • OmniRPC • MPJ
Peer-to-Peer Models • Sharing of computer resources and services by direct exchange between systems. • Advantage over existing desktop computing power and networking connectivity. • Whatever role is most efficient for the network. • Focus on the flexible sharing and innovative use of heterogeneous computing and network resources. • Several models: • JXTA
Framework, component model, and portals • Few important examples: • Cactus • CORBA • CoG kit • Legion • Component architectures • Portals
Web-Service Models • OGSA: A most important model. • OGSA defines the Grid Service. • The OGSA effort aims to define a common resource model. • OGSA aims to define the semantic of a Grid Service instance. • OGSA does not address issues of implementation.
Coordination Model • The different type of integration. • Distinguishes the computational concerns of a distributed or parallel application from the cooperation ones. • Conceptually related to that of heterogeneity. • Encourages the use of heterogeneous ensembles of machines. • Offers a composing mechanism.
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 Grid-aware run-time systems
Conclusion • Considering the programming models for Grid computing environment. • What will comprise a successful Grid-programming model consists of many aspects. • The programming models and tools that get developed will largely depend on which models and tools are considered to be the dominant paradigm. • Most probably see continued development of the Open Grid Services Architecture. • Continued development in MPI. • Issue of programming style
Reference • F. Berman, A. J. G. Hey, and G. C. Fox“Grid Computing Making the Global Infrastructure a Real (Chapter 21)”, John Wiley & Sons Ltd, 2003 • Online encyclopedia documents available at : http://www.wikipedia.org