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

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

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

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

GridRPCGridRPC

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

paperspapers

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

GridRPC IntroductionGridRPC Introduction

Grid RPC (Remote Procedure Call) allows users Grid RPC (Remote Procedure Call) allows users to make simple sequential function calls to to make simple sequential function calls to invoke remote applicationsinvoke remote applicationsEase-of-use for users and high performance for Ease-of-use for users and high performance for applicationsapplicationsE.g. CORBA, JavaRMI, NetSolve, NinfE.g. CORBA, JavaRMI, NetSolve, NinfA RPC system contains mechanisms forA RPC system contains mechanisms for application developers (producers) to integrate their application developers (producers) to integrate their

applicationsapplications RPC clients to invoke those applications at remote RPC clients to invoke those applications at remote

resourcesresources

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

Example - NetSolveExample - NetSolve

Server Resources

1. Client makes requestto agent.

2. Agent returns sortedlist of capable servers.

4. Server runs computationand returns results to client.

3. Client contacts specificserver for services.

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

Working of NetSolveWorking of NetSolve

Server sideServer side Application developer writes Interface Definition Application developer writes Interface Definition

Language (IDL) for the applicationLanguage (IDL) for the applicationContains application specificationContains application specification

Used for: 1. error checking, 2. compiling and linking other Used for: 1. error checking, 2. compiling and linking other parts of middleware code with the problemparts of middleware code with the problem

Provides his application as a function callProvides his application as a function call IDL is compiled; a main driver routine that calls the IDL is compiled; a main driver routine that calls the

application function is automatically generatedapplication function is automatically generated The main driver routine along with the function is The main driver routine along with the function is

compiled to form service executablecompiled to form service executable The problem specification is also added to a databaseThe problem specification is also added to a database

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

More about IDLMore about IDL

Contains problem nameContains problem name

Path for its include filesPath for its include files

The library files (lib*.a) containing The library files (lib*.a) containing functions referred to by the problemfunctions referred to by the problem

Language in which the function was Language in which the function was writtenwritten

Input and output argumentsInput and output arguments

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

Steps during remote procedure Steps during remote procedure executionexecution

Client side Invokes the function callClient side Invokes the function callBehind the scenes: the invocation causes the client to Behind the scenes: the invocation causes the client to contact the agentcontact the agentThe agent checks the database to find the problem and The agent checks the database to find the problem and a list of servers containing the problema list of servers containing the problemThe servers also convey their current load and speedThe servers also convey their current load and speedAgent passes this information to the clientAgent passes this information to the clientClient matches the user arguments with the problem Client matches the user arguments with the problem specifications; throws error if arguments don’t match with specifications; throws error if arguments don’t match with problem specifications (IDL use)problem specifications (IDL use)

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

Steps during remote procedure Steps during remote procedure executionexecution

contacts a server that it is able to connect contacts a server that it is able to connect totoPasses the arguments to the serverPasses the arguments to the serverServer writes the input data to a fileServer writes the input data to a fileSpawn the application service processSpawn the application service processApplication service process’ main driver Application service process’ main driver reads data from file, calls the application reads data from file, calls the application function, gets output, returns output back function, gets output, returns output back to client.to client.

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

CORBA reviewCORBA review

Supports distributed object-oriented Supports distributed object-oriented applicationsapplicationsMiddleware providing set of services for Middleware providing set of services for distributing objects to multiple resources distributing objects to multiple resources connected by networkconnected by networkDisadvantagesDisadvantages Supports only sequential objectsSupports only sequential objects Not suitable for HPC due to stub and skeleton Not suitable for HPC due to stub and skeleton

complexitiescomplexities

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

CORBA ArchitectureCORBA Architecture

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

ArchitectureArchitectureORB – communication infrastructure standardORB – communication infrastructure standard

Transfer syntaxTransfer syntax Message formatsMessage formats

ORB accessed byORB accessed by Dynamic interfaceDynamic interface

Dynamic Invocation Interface (DII) at client for dynamic creation and Dynamic Invocation Interface (DII) at client for dynamic creation and invocation of requests to objectsinvocation of requests to objectsDynamic Skeleton Interface (DSI) at server for accepting such Dynamic Skeleton Interface (DSI) at server for accepting such requests through ORB and invoking objects that have not yet been requests through ORB and invoking objects that have not yet been compiled and no information is availablecompiled and no information is available

Static interfacesStatic interfacesThrough IDL – provides operations, data typesThrough IDL – provides operations, data typesIDL compiled to stubs at client and skeletons at serverIDL compiled to stubs at client and skeletons at server

Portable Object Adapter (POA)Portable Object Adapter (POA) Interface for miscellaneous duties – interfacing distributed Interface for miscellaneous duties – interfacing distributed

objects with different access policies etc.objects with different access policies etc. Also loads and executes the process implementing the object Also loads and executes the process implementing the object

when called from the clientwhen called from the client

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

IDL ExampleIDL Example

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

Encapsulation of Parallel codes in Encapsulation of Parallel codes in CORBA ObjectsCORBA Objects

What should be the interface between What should be the interface between ORB and parallel codes?ORB and parallel codes?

How should the IDL be changed?How should the IDL be changed?

What should happen at the client stubs?What should happen at the client stubs?

What should be the data distribution What should be the data distribution model?model?

What should happen to the result of the What should happen to the result of the parallel object invocation?parallel object invocation?

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

Common ApproachCommon Approach

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

PaCO (Parallel CORBA Object)PaCO (Parallel CORBA Object)Collection of Standard CORBA ObjectsCollection of Standard CORBA Objects

Separate object for each SPMD process. Objects Separate object for each SPMD process. Objects combine to form collection.combine to form collection.

During remote invocation, method is executed During remote invocation, method is executed concurrently in all objects.concurrently in all objects.

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

PaCO ProjectPaCO Project

Thus stubs modified to issue multiple Thus stubs modified to issue multiple simultaneous requestssimultaneous requests

Hence IDL modified to extended IDL to Hence IDL modified to extended IDL to generate the modified stubsgenerate the modified stubs

Extended IDL specifiesExtended IDL specifies Number of objects in the collectionNumber of objects in the collection Data distribution of the parametersData distribution of the parameters Collective operation on the resultsCollective operation on the results

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

Extended IDL ExampleExtended IDL Example

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

CORBA OverheadsCORBA Overheads

Client sending a header to notify remote object Client sending a header to notify remote object to invoke a method, t1to invoke a method, t1

Marshal and send the inputsMarshal and send the inputs

Remote method is executedRemote method is executed

Marshal and send the outputsMarshal and send the outputs

Notify the client, t2Notify the client, t2

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

Results on Pentium II ClusterResults on Pentium II Cluster

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

SOAP/WSDL for GridRPCSOAP/WSDL for GridRPC(Ninf system)(Ninf system)

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

Ninf on SOAP PerformanceNinf on SOAP Performance

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

Bottlenecks – serialization and Bottlenecks – serialization and deserializationdeserialization

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

BottlenecksBottlenecks

Serialization, wire transfer, deserialization Serialization, wire transfer, deserialization done in sequencedone in sequence Remedy: eliminate the need of content length Remedy: eliminate the need of content length

in HTTP-Post. The server can interpret in HTTP-Post. The server can interpret message by counting and matching XML tagsmessage by counting and matching XML tags

Significant space complexity of XML Significant space complexity of XML elements to array elementselements to array elements Remedy: Use Base-64 encodingRemedy: Use Base-64 encoding

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

Results due to OptimizationsResults due to Optimizations

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

References / CreditsReferences / Credits

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