GridRPC Sources / Credits: IRISA/IFSIC IRISA/INRIA Thierry Priol et. al papers.

Slides:



Advertisements
Similar presentations
Message Passing Vs Distributed Objects
Advertisements

National Institute of Advanced Industrial Science and Technology Ninf-G - Core GridRPC Infrastructure Software OGF19 Yoshio Tanaka (AIST) On behalf.
Three types of remote process invocation
SOAP.
RPC Robert Grimm New York University Remote Procedure Calls.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Emery Berger University of Massachusetts Amherst Operating Systems CMPSCI 377 Lecture.
GridRPC Sources / Credits: IRISA/IFSIC IRISA/INRIA Thierry Priol et. al papers.
Common Object Request Broker Architecture (CORBA) By: Sunil Gopinath David Watkins.
CORBA Architecture Nitin Prabhu. Outline CORBA Object Model CORBA Architecture Static Invocation Dynamic Invocation CORBA Communication Model.
CORBA - Common Object Request Broker Architecture.
Distributed components
Remote Method Invocation Chin-Chih Chang. Java Remote Object Invocation In Java, the object is serialized before being passed as a parameter to an RMI.
Tutorials 2 A programmer can use two approaches when designing a distributed application. Describe what are they? Communication-Oriented Design Begin with.
A brief look at CORBA. What is CORBA Common Object Request Broker Architecture developed by OMG Combine benefits of OO and distributed computing Distributed.
CORBA Case Study By Jeffrey Oliver March March 17, 2003CORBA Case Study by J. T. Oliver2 History The CORBA (Common Object Request Broker Architecture)
Implementing Remote Procedure Calls Authors: Andrew D. Birrell and Bruce Jay Nelson Xerox Palo Alto Research Center Presenter: Jim Santmyer Thanks to:
Sockets  Defined as an “endpoint for communication.”  Concatenation of IP address + port.  Used for server-client communication.  Server waits for.
A First Java ORB Application 1  Object Request Broker (ORB)  This is the object manager in CORBA  Mechanisms for specifying interfaces  Interface Definition.
Ch 12 Distributed Systems Architectures
Communication in Distributed Systems –Part 2
Remote Procedure Calls. 2 Client/Server Paradigm Common model for structuring distributed computations A server is a program (or collection of programs)
.NET Mobile Application Development Remote Procedure Call.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Copyright © 2003 ProsoftTraining. All rights reserved. Distributed Object Computing Using Java and CORBA.
Beyond DHTML So far we have seen and used: CGI programs (using Perl ) and SSI on server side Java Script, VB Script, CSS and DOM on client side. For some.
Understanding the CORBA Model. What is CORBA?  The Common Object Request Broker Architecture (CORBA) allows distributed applications to interoperate.
Jaeki Song ISQS6337 JAVA Lecture 16 Other Issues in Java.
ICOM 5995: Performance Instrumentation and Visualization for High Performance Computer Systems Lecture 7 October 16, 2002 Nayda G. Santiago.
CSCI 6962: Server-side Design and Programming Web Services.
9 Chapter Nine Compiled Web Server Programs. 9 Chapter Objectives Learn about Common Gateway Interface (CGI) Create CGI programs that generate dynamic.
Cli/Serv.: rmiCORBA/131 Client/Server Distributed Systems v Objectives –introduce rmi and CORBA , Semester 1, RMI and CORBA.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Comparison of Web Services, RMI, CORBA, DCOM Usha, Lecturer MCA Department of Computer Science and Engineering.
11 September 2008CIS 340 # 1 Topics To examine the variety of approaches to handle the middle- interaction (continued) 1.RPC-based systems 2.TP monitors.
RELATIONAL FAULT TOLERANT INTERFACE TO HETEROGENEOUS DISTRIBUTED DATABASES Prof. Osama Abulnaja Afraa Khalifah
Distributed Programming CSCI 201L Jeffrey Miller, Ph.D. HTTP :// WWW - SCF. USC. EDU /~ CSCI 201 USC CSCI 201L.
Silberschatz, Galvin, and Gagne  1999 Applied Operating System Concepts Chapter 15: Distributed Communication Sockets Remote Procedure Calls (RPCs) Remote.
RMI remote method invocation. Traditional network programming The client program sends data to the server in some intermediary format and the server has.
 Remote Procedure Call (RPC) is a high-level model for client-sever communication.  It provides the programmers with a familiar mechanism for building.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
Update on CORBA Support for Babel RMI Nanbor Wang and Roopa Pundaleeka Tech-X Corporation Boulder, CO Funded by DOE OASCR SBIR.
Parallel CORBA Objects CORBA May, 22 nd 2000 ARC « Couplage » Christophe René (IRISA/IFSIC)
 Common Object Request Broker Architecture  An industry standard developed by OMG to help in distributed programming.
Message-Passing Computing Chapter 2. Programming Multicomputer Design special parallel programming language –Occam Extend existing language to handle.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Computer Science Lecture 3, page 1 CS677: Distributed OS Last Class: Communication in Distributed Systems Structured or unstructured? Addressing? Blocking/non-blocking?
.NET Mobile Application Development XML Web Services.
(C) 2003 University of ManchesterCS31010 Lecture 14: CORBA.
CEN6502, Spring Understanding the ORB: Client Side Structure of ORB (fig 4.1) Client requests may be passed to ORB via either SII or DII SII decide.
Topic 4: Distributed Objects Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
Java Distributed Computing
Evaluating Web Services Based Implementations of Grid RPC
Prof. Leonardo Mostarda University of Camerino
Java Distributed Computing
CORBA Alegria Baquero.
Distribution and components
Programming Models for Distributed Application
CSE 451: Operating Systems Winter 2006 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CORBA Alegria Baquero.
Lecture 4: RPC Remote Procedure Call Coulouris et al: Chapter 5
CSE 451: Operating Systems Autumn 2003 Lecture 16 RPC
CSE 451: Operating Systems Winter 2007 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Lecture 4: RPC Remote Procedure Call CDK: Chapter 5
CSE 451: Operating Systems Winter 2004 Module 19 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Remote Procedure Call Hank Levy 1.
Remote Procedure Call Hank Levy 1.
CSE 451: Operating Systems Winter 2003 Lecture 16 RPC
Remote Procedure Call Hank Levy 1.
CSE 451: Operating Systems Messaging and Remote Procedure Call (RPC)
Presentation transcript:

GridRPC Sources / Credits: IRISA/IFSIC IRISA/INRIA Thierry Priol et. al papers

GridRPC Introduction Grid RPC (Remote Procedure Call) allows users to make simple sequential function calls to invoke remote applications Ease-of-use for users and high performance for applications E.g. CORBA, JavaRMI, NetSolve, Ninf A RPC system contains mechanisms for application developers (producers) to integrate their applications application developers (producers) to integrate their applications RPC clients to invoke those applications at remote resources RPC clients to invoke those applications at remote resources

Example - NetSolve Server Resources 1. Client makes request to agent. 2. Agent returns sorted list of capable servers. 4. Server runs computation and returns results to client. 3. Client contacts specific server for services.

Working of NetSolve Server side Application developer writes Interface Definition Language (IDL) for the application Application developer writes Interface Definition Language (IDL) for the application Contains application specification Used for: 1. error checking, 2. compiling and linking other parts of middleware code with the problem Provides his application as a function call Provides his application as a function call IDL is compiled; a main driver routine that calls the application function is automatically generated IDL is compiled; a main driver routine that calls the application function is automatically generated The main driver routine along with the function is compiled to form service executable The main driver routine along with the function is compiled to form service executable The problem specification is also added to a database The problem specification is also added to a database

More about IDL Contains problem name Path for its include files The library files (lib*.a) containing functions referred to by the problem Language in which the function was written Input and output arguments

Steps during remote procedure execution Client side Invokes the function call Behind the scenes: the invocation causes the client to contact the agent The agent checks the database to find the problem and a list of servers containing the problem The servers also convey their current load and speed Agent passes this information to the client Client matches the user arguments with the problem specifications; throws error if arguments don’t match with problem specifications (IDL use)

Steps during remote procedure execution contacts a server that it is able to connect to Passes the arguments to the server Server writes the input data to a file Spawn the application service process Application service process’ main driver reads data from file, calls the application function, gets output, returns output back to client.

NetSolve + Globus

NetSolve Parallel Job Execution NetSolve server can spawn MPI jobs on cluster of machines Only the leader of the cluster machines is known to the agent regarding workload reporting The agent chooses among several clusters Clusters can follow their own mechanism for choosing processors The client still has to send the entire data to the remote cluster leader. GrADSolve – a more sophisticated NetSolve for parallel problem solving Now IDL also contains data distribution information in parallel application

GrADSolve Architecture Apache XML Xindice Database Administrators GrADSolve Resources Add user and machine information Service Providers / Library writers End Users Permission Service PostgreSQL Database Rescheduler Contract Negotiator Metascheduler PROBLEM qrwrapper C FUNCTION qrwrapper(IN int N, INOUT double A[N][N]…) TYPE = parallel CONTINUE_CAPABILITY = yes RECONFIGURATION_CAPABILITY = yes add_problem get_perfmodel_template add_perfmodel areResourcesSufficient(, ){ } getExecutionTimeCost(, ){ } mapper(, ){ } /* fill up */ int main(){ gradsolve(“qrwrapper”, N, NB, A, B); } receive problem specification download execution model stage out input data, launch application, stage in output data Performance Modeler

CORBA review Supports distributed object-oriented applications Middleware providing set of services for distributing objects to multiple resources connected by network Disadvantages Supports only sequential objects Supports only sequential objects Not suitable for HPC due to stub and skeleton complexities Not suitable for HPC due to stub and skeleton complexities

CORBA Architecture

Architecture ORB – communication infrastructure standard Transfer syntax Transfer syntax Message formats Message formats ORB accessed by Dynamic interface Dynamic interface Dynamic Invocation Interface (DII) at client for dynamic creation and invocation of requests to objects Dynamic Skeleton Interface (DSI) at server for accepting such requests through ORB and invoking objects that have not yet been compiled and no information is available Static interfaces Static interfaces Through IDL – provides operations, data types IDL compiled to stubs at client and skeletons at server Portable Object Adapter (POA) Interface for miscellaneous duties – interfacing distributed objects with different access policies etc. Interface for miscellaneous duties – interfacing distributed objects with different access policies etc. Also loads and executes the process implementing the object when called from the client Also loads and executes the process implementing the object when called from the client

IDL Example

Encapsulation of Parallel codes in CORBA Objects What should be the interface between ORB and parallel codes? How should the IDL be changed? What should happen at the client stubs? What should be the data distribution model? What should happen to the result of the parallel object invocation?

Common Approach

PaCO (Parallel CORBA Object) Collection of Standard CORBA Objects Separate object for each SPMD process. Objects combine to form collection. During remote invocation, method is executed concurrently in all objects.

PaCO Project Thus stubs modified to issue multiple simultaneous requests Hence IDL modified to extended IDL to generate the modified stubs Extended IDL specifies Number of objects in the collection Number of objects in the collection Data distribution of the parameters Data distribution of the parameters Collective operation on the results Collective operation on the results

Extended IDL Example

More about Stubs For sequential client Stubs have to build and invoke multiple objects Stubs have to build and invoke multiple objects Has to follow the data distribution in IDL for each request Has to follow the data distribution in IDL for each request For parallel client Synchronization of invocations Synchronization of invocations Data redistribution Data redistribution

Case 2 – parallel -> sequential

Parallel Object Invocation Steps 1.One object of the collection is activated 2.The object creates a MPI communicator group 3.Activates other objects and pass them the MPI communicator to join 1. Nodes for starting other objects given by Cobra service (service for resource allocation in CORBA)

New approach – Data Parallel CORBA – OMG specification Data distribution specification given in POA than in IDL 2 separate ORBs – parallel and standard ORBs Calling parallel object from standard ORB requires proxy object to map between standard and parallel ORBs.

CORBA Overheads Client sending a header to notify remote object to invoke a method, t1 Marshal and send the inputs Remote method is executed Marshal and send the outputs Notify the client, t2

Results on Pentium II Cluster

SOAP/WSDL for GridRPC (Ninf system)

Ninf on SOAP Performance

Bottlenecks – serialization and deserialization

Bottlenecks Serialization, wire transfer, deserialization done in sequence Remedy: eliminate the need of content length in HTTP-Post. The server can interpret message by counting and matching XML tags Remedy: eliminate the need of content length in HTTP-Post. The server can interpret message by counting and matching XML tags Significant space complexity of XML elements to array elements Remedy: Use Base-64 encoding Remedy: Use Base-64 encoding

Results due to Optimizations

References / Credits Alexandre Denis, Christian Pérez, and Thierry Priol. Achieving Portable and Efficient Parallel CORBA Objects. Concurrency and Computation: Practice and Experience, 15(10): , August Christophe René and Thierry Priol. MPI code encapsulating using parallel CORBA object. Cluster Computing, 3(4): , Denis, A., Pérez, C., and Priol, T., 2001b. Towards high performance CORBA and MPI middlewares for Grid computing. In Craig A. Lee, editor, Proceedings of the 2nd International Workshop on Grid Computing, Lecture Notes in Computer Science Vol. 2242, Denver, CO, November, Springer-Verlag, Berlin, pp. 14–25. Evaluating Web Services Based Implementations of GridRPC Satoshi Shirasuna, Hidemoto Nakada, Satoshi Matsuoka and Satoshi Sekiguchi Proceeding of HPDC11, July, 2002.

CORBA for High Performance CORBA should automatically handle Network adapter selection Network adapter selection Protocol selection Protocol selection Address resolution Address resolution

PaCO++ All the previous approaches involve changes to CORBA specifications PaCO++ - portable parallel objects Extension of PaCO without modifying the CORBA standard

Interfaces

Motivation New programming model – combination of parallel (MPI) and distributed programming models (CORBA) SPMD programming in CORBA Interconnecting 2 parallel codes by CORBA Intended for coupled simulations

Parallel Object Invocation Steps