Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "GridRPC Sources / Credits: IRISA/IFSIC IRISA/INRIA Thierry Priol et. al papers."— Presentation transcript:

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

2 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

3 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.

4 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

5 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

6 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)

7 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.

8 NetSolve + Globus

9 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

10 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

11 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

12 CORBA Architecture

13 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

14 IDL Example

15 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?

16 Common Approach

17 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.

18 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

19 Extended IDL Example

20 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

21 Case 2 – parallel -> sequential

22 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)

23 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.

24 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

25 Results on Pentium II Cluster

26 SOAP/WSDL for GridRPC (Ninf system)

27 Ninf on SOAP Performance

28 Bottlenecks – serialization and deserialization

29 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

30 Results due to Optimizations

31 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):891--909, August 2003. Christophe René and Thierry Priol. MPI code encapsulating using parallel CORBA object. Cluster Computing, 3(4):255--263, 2000. 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.

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

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

34 Interfaces

35 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

36 Parallel Object Invocation Steps


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

Similar presentations


Ads by Google