260 likes | 353 Views
This class presentation covers the current tools, issues, and directions in grid programming at the School of ECE, University of Tehran, instructed by Dr. S.M. Fakhraie. Topics include programming models, advanced support, and more. Learn about grid computing, portability, fault tolerance, and security in this educational overview.
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