GridRPC Sources / Credits: IRISA/IFSIC IRISA/INRIA Thierry Priol et. al papers.
-
Upload
jodie-holland -
Category
Documents
-
view
222 -
download
2
Transcript of 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
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
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.
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
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
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)
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.
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
CORBA ArchitectureCORBA Architecture
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
IDL ExampleIDL Example
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?
Common ApproachCommon Approach
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.
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
Extended IDL ExampleExtended IDL Example
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
Results on Pentium II ClusterResults on Pentium II Cluster
SOAP/WSDL for GridRPCSOAP/WSDL for GridRPC(Ninf system)(Ninf system)
Ninf on SOAP PerformanceNinf on SOAP Performance
Bottlenecks – serialization and Bottlenecks – serialization and deserializationdeserialization
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
Results due to OptimizationsResults due to Optimizations
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.