Institute of Computer Science AGH MOCCA - H2O-based CCA component framework for programming grids and metacomputing systems Maciej Malawski, Marian Bubak,

Slides:



Advertisements
Similar presentations
웹 서비스 개요.
Advertisements

Institute of Computer Science AGH Towards Multilanguage and Multiprotocol Interoperability: Experiments with Babel and RMIX Maciej Malawski, Daniel Harężlak,
A Workflow Engine with Multi-Level Parallelism Supports Qifeng Huang and Yan Huang School of Computer Science Cardiff University
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 2.
GridRPC Sources / Credits: IRISA/IFSIC IRISA/INRIA Thierry Priol et. al papers.
The road to reliable, autonomous distributed systems
Cracow Grid Workshop, November 5-6, 2001 Towards the CrossGrid Architecture Marian Bubak, Marek Garbacz, Maciej Malawski, and Katarzyna Zając.
Harness and H2O Alternative approaches to metacomputing Distributed Computing Laboratory Emory University, Atlanta, USA
On Using Ice Middleware in the IARnet Framework Oleg Sukhoroslov Institute for Systems Analysis, RAS, Moscow Distributed Computing Systems Laboratory.
Latest techniques and Applications in Interprocess Communication and Coordination Xiaoou Zhang.
Technical Architectures
Session 2: task 3.2 GCM, Kracow, June l Current status of GCM Denis Caromel (10 mn each talk) l Wrapping CCA Components as GCM Components Maciej.
1 Component-based Grid Environment for Programming Scientific Applications Maciej Malawski.
Comparison of the RMI and the socket APIs
Communication in Distributed Systems –Part 2
Web Services Michael Smith Alex Feldman. What is a Web Service? A Web service is a message-oriented software system designed to support inter-operable.
.NET, and Service Gateways Group members: Andre Tran, Priyanka Gangishetty, Irena Mao, Wileen Chiu.
Web Services Mohamed Fahmy Dr. Sherif Aly Hussein.
CGW 2003 Institute of Computer Science AGH Proposal of Adaptation of Legacy C/C++ Software to Grid Services Bartosz Baliś, Marian Bubak, Michał Węgiel,
Institute of Computer Science AGH MOCCA – A Distributed CCA Framework based on H2O Maciej Malawski, Dawid Kurzyniec, Vaidy Sunderam Distributed Computing.
Web services: Why and How OOPSLA 2001 F. Curbera, W.Nagy, S.Weerawarana Nclab, Jungsook Kim.
A Hybrid Decomposition Scheme for Building Scientific Workflows Wei Lu Indiana University.
Distributed Communication via ASP.Net Web Services and.Net Remoting By Richard King.
1 CCA Meeting, Januray 25th 2007 Supporting the Master-Worker Paradigm in the Common Component Architecture Hinde Lilia Bouziane, Christian Pérez, Thierry.
第十四章 J2EE 入门 Introduction What is J2EE ?
WEB SERVICES Mahmoud Rabie – EGJUG W EB SERVICES The world before Situation Problems Solutions Motiv. for Web Services Probs. with Curr. sols. Web.
DEVS Namespace for Interoperable DEVS/SOA
The Grid Component Model: an Overview “Proposal for a Grid Component Model” DPM02 “Basic Features of the Grid Component Model (assessed)” -- DPM04 CoreGrid.
International Telecommunication Union Geneva, 9(pm)-10 February 2009 ITU-T Security Standardization on Mobile Web Services Lee, Jae Seung Special Fellow,
Web Services Kanda Runapongsa Dept. of Computer Engineering Khon Kaen University.
Crossing The Line: Distributed Computing Across Network and Filesystem Boundaries.
CCA Common Component Architecture CCA Forum Tutorial Working Group Contributors: Language Interoperability Using Gary.
Cracow Grid Workshop, October 27 – 29, 2003 Institute of Computer Science AGH Design of Distributed Grid Workflow Composition System Marian Bubak, Tomasz.
Grid Computing Research Lab SUNY Binghamton 1 XCAT-C++: A High Performance Distributed CCA Framework Madhu Govindaraju.
Web Services Based on SOA: Concepts, Technology, Design by Thomas Erl MIS 181.9: Service Oriented Architecture 2 nd Semester,
Open Service Gateway Initiative (OSGi) Reporter : 林學灝 侯承育 1.
Center for Component Technology for Terascale Simulation Software CCA is about: Enhancing Programmer Productivity without sacrificing performance. Supporting.
SCIRun and SPA integration status Steven G. Parker Ayla Khan Oscar Barney.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Extreme! Computing Lab, Dept. of Computer Science, Indiana University 1 Programming the Grid with Components Madhu Govindaraju Aleksander Slominski Dennis.
Databases JDBC (Java Database Connectivity) –Thin clients – servlet,JavaServer Pages (JSP) –Thick clients – RMI to remote databases –most recommended way.
Virtualization in MetaSystems Vaidy Sunderam Emory University, Atlanta, USA
07/09/04 Johan Muskens ( TU/e Computer Science, System Architecture and Networking.
EC-project number: Universal Grid Client: Grid Operation Invoker Tomasz Bartyński 1, Marian Bubak 1,2 Tomasz Gubała 1,3, Maciej Malawski 1,2 1 Academic.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
XML and Web Services (II/2546)
 Common Object Request Broker Architecture  An industry standard developed by OMG to help in distributed programming.
S imple O bject A ccess P rotocol Karthikeyan Chandrasekaran & Nandakumar Padmanabhan.
CCA Common Component Architecture CCA Forum Tutorial Working Group CCA Status and Plans.
SOAP-based Web Services Telerik Software Academy Software Quality Assurance.
Distributed Components for Integrating Large- Scale High Performance Computing Applications Nanbor Wang, Roopa Pundaleeka and Johan Carlsson
An Introduction to Web Services Web Services using Java / Session 1 / 2 of 21 Objectives Discuss distributed computing Explain web services and their.
1 ProActive GCM – CCA Interoperability Maciej Malawski, Ludovic Henrio, Matthieu Morel, Francoise Baude, Denis Caromel, Marian Bubak Institute of Computer.
.NET Mobile Application Development XML Web Services.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
Toward a Distributed and Parallel High Performance Computing Environment Johan Carlsson and Nanbor Wang Tech-X Corporation Boulder,
CCA Distributed Framework Interoperability. Goals Assume you have two (or more) framework instances. –Assume it contains a network of component instances.
Nguyen Thi Thanh Nha HMCL by Roelof Kemp, Nicholas Palmer, Thilo Kielmann, and Henri Bal MOBICASE 2010, LNICST 2012 Cuckoo: A Computation Offloading Framework.
CCA Common Component Architecture CCA Forum Tutorial Working Group Common Component Architecture.
Service Oriented Architecture (SOA) Prof. Wenwen Li School of Geographical Sciences and Urban Planning 5644 Coor Hall
Sabri Kızanlık Ural Emekçi
CORBA Alegria Baquero.
Distribution and components
Inventory of Distributed Computing Concepts and Web services
CORBA Alegria Baquero.
Service Oriented Architecture (SOA)
Introduction to Web Services
Distributed System using Web Services
Distributed System using Web Services
Presentation transcript:

Institute of Computer Science AGH MOCCA - H2O-based CCA component framework for programming grids and metacomputing systems Maciej Malawski, Marian Bubak, Michał Placek, Daniel Harężlak, Dawid Kurzyniec, Vaidy Sunderam Institute of Computer Science AGH, Kraków, Poland Academic Computer Centre CYFRONET-AGH, Kraków, Poland Distributed Computing Laboratory in the Dept. of Math and Computer Science, Emory University, Atlanta

Institute of Computer Science AGH 2 Outline Motivation – programming grids Component approach and CCA as a component standard H2O resource sharing platform Design and implementation of MOCCA Applications and initial results Future research – GCM interoperability

Institute of Computer Science AGH 3 Problem – how to program the Grid Many programming models: –MPI –Service Oriented Architectures, Web Services –Tuple spaces, HLA –Distributed Objects –Custom protocols –Components –...

Institute of Computer Science AGH 4 Common Component Architecture Component standard for High Performance Computing Uses and provides ports described in SIDL Support for scientific data types (complex numbers, data arrays) Existing tightly coupled (CCAFFEINE) and loosely coupled, distributed (XCAT) frameworks

Institute of Computer Science AGH 5 Existing CCA Frameworks CCAFFEINE –Tightly coupled –Support for Babel –MPI support XCAT –Loosely coupled –Globus-compatible –Java-based DCA –MPI based –MxN problems SCIRun2 –Metacomponent model LegionCCA –Based on Legion Metacomputing system

Institute of Computer Science AGH 6 Requirements for a Metacomputing-oriented CCA Framework Facilitated deployment - provide easy mechanisms for creation of components on distributed shared resources; Efficient communication - both for distributed and local components; Flexible - allow flexible configuration of components and various application scenarios; Support native components, i.e. components written in non-Java programming languages and compiled for specific architecture. Interoperable with Grid standards (Web services) Solution: H2O

Institute of Computer Science AGH 7 H2O Resource sharing platform Providers own resources They independently share them over the network –access control policies Clients discover, locate, and utilize resources Resources configurable via plugins Aggregation and reselling: cascading pairwise relationships

Institute of Computer Science AGH 8 H2O Component Model Nomenclature –container = kernel –component = pluglet Pluglet = remotely accessible object –implements Pluglet interface, used by kernel to signal/trigger pluglet state changes Remote access: based on the RMI model –Pluglets export functional remote interfaces Pluglet Functional interfaces Kernel Clients (e.g. Hello ) tutorial/step1/srv/Hello.java public interface Hello extends Remote { String hello() throws RemoteException; } Interface Pluglet { void init(RuntimeContext cxt); void start(); void stop(); void destroy(); }

Institute of Computer Science AGH 9 Example scenarios of H2O 1. Provider = deployer e.g. resource = legacy application 2. Reseller:= developer = deployer e.g. computational service offered within a grid system 3. Client = deployer e.g. client runs custom distributed application on shared resources

Institute of Computer Science AGH 10 RMIX Communication Substrate Extensible framework Remote Method Invocations paradigm Pluggable protocol providers Multiple protocols supported –JRMPX, ONC-RPC, SOAP Request-Response and Asynchronous calls Combines simplicity, flexibility, and performance ONC-RPC Web Services SOAP clients JXTA RMIX RMIX XSOAP RMIX RPCX RMIX JXTA RMIX JRMPX Java Service

Institute of Computer Science AGH 11 RMIX: multiple protocols Protocol switching Protocol negotiation Various protocol stacks for different situations –SOAP: interoperability –SSL: security –ARPC, custom (Myrinet, Quadrics): efficiency Harness Kernel Internet security firewall efficiency H2O Kernel

Institute of Computer Science AGH 12 RMIX over JXTA Fully operational RMI implementation running over JXTA P2P network Methods can be invoked on remote objects located behind firewalls or NATs Our implementation of JXTA socket factories manages all the JXTA connectivity transparently from user’s point of view

Institute of Computer Science AGH 13 MOCCA Implementation in H2O Each component running in separate pluglet –Facilitated deployment and security Thanks to H2O kernel security mechanisms, multiple components may run without interfering Using RMIX for communication – efficiency, multiprotocol interoperability Flexibility and multiple scenarios – as in H2O MOCCA_Light: pure Java implementation - need for supporting multilanguage components

Institute of Computer Science AGH 14 Remote Port Call

Institute of Computer Science AGH 15 How to use MOCCA (step by step) Implement component code extending CCA interfaces (cca.Port, cca.Component) Compile component classes into JAR file Publish application JARs on HTTP server Use the Java client API or write a Jython script to assemble application from components –Specify components and their connections –Specify locations of H2O kernels where to instantiate components Running the script automatically deploys necessary pluglets into H2O kernels and spawns application

Institute of Computer Science AGH 16 Example script builder = MoccaMainBuilder() uriKernel1 = URI.create(" uriKernel2 = URI.create(" userBuilderID = builder.addNewBuilder(uriKernel1, "MyBuilderPlugletA") providerBuilderID = builder.addNewBuilder(uriKernel2, "MyBuilderPlugletB") properties = MoccaTypeMap() properties.putString("mocca.plugletclasspath", " properties.putString("mocca.builderID", userBuilderID.getSerialization()) userID = builder.createInstance("My StarterComponent", "mocca.samples.pingpong.impl.MoccaStarterComponent”, properties) properties.putString("mocca.plugletclasspath", " properties.putString("mocca.builderID", providerBuilderID.getSerialization()) providerID = builder.createInstance("MyPingComponent", "mocca.samples.pingpong.impl.PingPongComponent", properties) connectionID = builder.connect(userID, "PingPongUsesPort", providerID, "PingPongProvidesPort") MoccaBuilderClient.invokeGo(userID)

Institute of Computer Science AGH 17 Automatic Flow Composer Example Compose application graph from initial data (e.g. initial ports) or incomplete graph First implemented for XCAT framework Easy migration to MOCCA Modification of code required (xcat.Port) Similar performance for XCAT and MOCCA (exchange of text documents)

Institute of Computer Science AGH 18 Communication Intensive Application Benchmark Simplified scenario: –2 components –Provides port: receive and send-back array of double (ping-pong) Tested on local Gigabit Ethernet and on transatlantic Internet between Atlanta and Krakow 2.4 GHz Linux machines Comparison with XCAT

Institute of Computer Science AGH 19 Small Data Packets Factors: SOAP header overhead in XCAT Connection pools in RMIX

Institute of Computer Science AGH 20 Large Data Packets Encoding (binary vs. base64) CPU saturation on Gigabit LAN (serialization) Variance caused by Java garbage collection

Institute of Computer Science AGH 21 Example: modeling gold clusters Clusters of atoms – Very interesting forms between isolated atoms or molecules and solid state – Important for the technology of constructing nanoscale devices. Modeling of clusters – Several energy minimization methods such as MDSA or L-BFGS, – Choosing an empirical potential – Highly compute-intensive – The optimal result depends on the number of possible iterations and initial configurations for each simulation run.

Institute of Computer Science AGH 22 Example – deployment

Institute of Computer Science AGH 23 Integration with existing Grid middleware A pool of computing resources may be created by submitting a number of H2O kernels on many Grid sites Application components may be deployed on the kernels belonging to the pool

Institute of Computer Science AGH 24 Multilanguage support: motivation Grids are heterogeneous Multiple programming languages – in single application –Java for middleware –C for system programming –FORTRAN for computing –Python for scripting Multiple protocols – in single application –High speed local networks (Myrinet) –TCP/SSL/TLS in WAN –SOAP for loosely coupled message exchange –Overlay P2P networks for traversing private network boundaries (NATs) Context: MOCCA component framework

Institute of Computer Science AGH 25 Multilanguage Solution - Babel SIDL – Scientific Interface Definition Language –Standard for CCA Components –Supports arrays and complex types –Focus on interfaces Babel: –SIDL parser –Code generator –Runtime library Intermediate Object Representation (IOR) –Core of Babel object –Array of function pointers –Generated code in C package example version 1.2 { class Hello { string hello( in string hello); } // user defined non-static methods: /** * Method: hello[] */ public java.lang.String hello_Impl ( /*in*/ java.lang.String hello ) { // DO-NOT-DELETE splicer.begin(example.Hello.hello) // Insert-Code-Here {example.Hello.hello} (hello) return ”Server says: ” + hello; // DO-NOT-DELETE splicer.end(example.Hello.hello) } /** * Method: hello[] */ char* example_Hello_hello( /*in*/ example_Hello self, /*in*/ const char* hello);

Institute of Computer Science AGH 26 Currently: Babel for Local Applications All Babel objects in one process Implemented in CCAFFEINE framework Existing multilanguage CCA components – see CCA tutorial Java application Fortran native library SIDL C++ native library SIDL Babel IOR

Institute of Computer Science AGH 27 Our Solution Babel + RMIX Implementation of Babel RMI extensions – generic mechanism of method invocation (reflection) – Dynamic loading of communication library – No need for code generation and compilation Java application Fortran native library SIDL C++ native library SIDL Babel IOR RMIX library Babel IOR Network SIDL RMIX library SIDL

Institute of Computer Science AGH 28 Beyond CCA ? Supporting multiple component standards –Goal: to enable loading of components written for different standards (e.g. Corba CCM, other) –Examples of similar solutions: CCAFFEINE supports „classic” and „Babel” components; SCIRun2 implementing meta- component model Using MOCCA as promising platform for feasibility studies in various aspects of Grid components –For experiments with advanced features Scheduling and load-balancing Fault-tolerance Semantic description and composition –As a platform for higher-level grid services and tools

Institute of Computer Science AGH 29 Fractal/GCM – CCA Interoperability? CCA as Fractal –Adapter calls setServices() on a component –Component registers ports on the adapter –Component is ready for introspection and connection Fractal as CCA –CCA framework creates component, adapter and invokes setServices() –Adapter introspects the component and registers interfaces to the framework –Adapter obtains references to external interfaces (getPort()) and binds them to the component

Institute of Computer Science AGH 30 References Maciej Malawski, Dawid Kurzyniec, and Vaidy Sunderam. MOCCA – towards a distributed CCA framework for metacomputing, Accepted for: 10th International Workshop on High-Level Parallel Programming Models and Supportive Environments (HIPS2005) at IPDPS’ H2O Project homepage: CCA Forum: –CCA Specification –Tutorial MOCCA homepage: –Download binary and source distribution –README