Cluster Computing and the Grid, Proceedings

Slides:



Advertisements
Similar presentations
National Institute of Advanced Industrial Science and Technology Ninf-G - Core GridRPC Infrastructure Software OGF19 Yoshio Tanaka (AIST) On behalf.
Advertisements

Three types of remote process invocation
GXP in nutshell You can send jobs (Unix shell command line) to many machines, very fast Very small prerequisites –Each node has python (ver or later)
Grid Resource Allocation Management (GRAM) GRAM provides the user to access the grid in order to run, terminate and monitor jobs remotely. The job request.
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.
Job submission architectures in GRID environment Masamichi Ando M1 Student Taura Lab. Department of Information Science and Technology.
A Computation Management Agent for Multi-Institutional Grids
USING THE GLOBUS TOOLKIT This summary by: Asad Samar / CALTECH/CMS Ben Segal / CERN-IT FULL INFO AT:
Threads Section 2.2. Introduction to threads A thread (of execution) is a light-weight process –Threads reside within processes. –They share one address.
Slides for Grid Computing: Techniques and Applications by Barry Wilkinson, Chapman & Hall/CRC press, © Chapter 1, pp For educational use only.
Application-specific Tools Netsolve, Ninf, and NEOS CSE 225 Chas Wurster.
Resource Management Reading: “A Resource Management Architecture for Metacomputing Systems”
CS470/570 Lecture 5 Introduction to OpenMP Compute Pi example OpenMP directives and options.
1 Chapter Client-Server Interaction. 2 Functionality  Transport layer and layers below  Basic communication  Reliability  Application layer.
2003/10/3 UK Jpana N+N Meeting 1 “Grid Platform for Drug Discovery” Project Mitsuhisa Sato Center for Computational Physics, University of Tsukuba, Japan.
Evaluation of Agent Teamwork High Performance Distributed Computing Middleware. Solomon Lane Agent Teamwork Research Assistant October 2006 – March 2007.
Integrating Computing Resources on Multiple Grid-enabled Job Scheduling Systems Through a Grid RPC System Yoshihiro Nakajima, Mitsuhisa Sato, Yoshiaki.
Virtual Private Grid (VPG) : A Command Shell for Utilizing Remote Machines Efficiently Kenji Kaneda, Kenjiro Taura, Akinori Yonezawa Department of Computer.
Department of Computer Science and Software Engineering
© 2006 Cisco Systems, Inc. All rights reserved.Cisco PublicITE I Chapter 6 1 Router Initialization steps.
GridRPC Sources / Credits: IRISA/IFSIC IRISA/INRIA Thierry Priol et. al papers.
Kento Aida, Tokyo Institute of Technology Ninf-G: GridRPC System Tokyo Institute of Technology Kento Aida.
CT101: Computing Systems Introduction to Operating Systems.
Planning the Addressing Structure
Introduction to Operating Systems Concepts
Chapter 4 – Thread Concepts
Architecture Review 10/11/2004
OPERATING SYSTEM CONCEPT AND PRACTISE
Duncan MacMichael & Galen Deal CSS 534 – Autumn 2016
Dynamic Deployment of VO Specific Condor Scheduler using GT4
Chapter 3: Process Concept
EEE Embedded Systems Design Process in Operating Systems 서강대학교 전자공학과
Credits: 3 CIE: 50 Marks SEE:100 Marks Lab: Embedded and IOT Lab
GWE Core Grid Wizard Enterprise (
OPERATING SYSTEMS CS3502 Fall 2017
Module 4 Remote Login.
Chapter 2: System Structures
Chapter 4 – Thread Concepts
CS399 New Beginnings Jonathan Walpole.
Operating System (013022) Dr. H. Iwidat
Introduction to OpenMP
XWN740 X-Windows Configuring and Using Remote Access
INTER-PROCESS COMMUNICATION
Globus Job Management. Globus Job Management Globus Job Management A: GRAM B: Globus Job Commands C: Laboratory: globusrun.
Client-Server Interaction
Chapter 3: Windows7 Part 4.
Chapter 4: Processes Process Concept Process Scheduling
Chapter 2: The Linux System Part 2
Outline Midterm results summary Distributed file systems – continued
Multiple Processor Systems
Presented By - Avinash Pawar
Chapter 40 Remote Method Invocation
Distributed Program Design
Planning the Addressing Structure
Multithreaded Programming
Chapter 2: The Linux System Part 5
Chapter 46 Remote Method Invocation
AbbottLink™ - IP Address Overview
Chapter 3: Processes.
Chapter 46 Remote Method Invocation
Chapter 2: Operating-System Structures
CS510 Operating System Foundations
Atlas: An Infrastructure for Global Computing
Machine-Independent Operating System Features
Chapter 4: Threads.
Grid Computing Software Interface
Processes August 10, 2019 OS:Processes.
Chapter 3: Process Management
Threads CSE 2431: Introduction to Operating Systems
Presentation transcript:

OmniRPC a Grid RPC System for Parallel Programming in Cluster and Grid Environment Cluster Computing and the Grid, 2003. Proceedings. CCGrid 2003. 3rd IEEE/ACM International Symposium 碩電一甲 1095318148 鍾翔航

Outline INTRODUCTION The OmniRPC system Implementation Parallel programming using OmniRPC Related Work Current Status and Future Work

INTRODUCTION(1) high-performance network computing: clusters of workstations/PCs and computational grids a thread-safe remote procedure call system a thread-safe implementation of Ninf RPC intuitive programming interface The remote libraries: implemented as executable programs, and registered

INTRODUCTION(2) OmniRPC supports a limited persistence model initialization procedure Globus toolkit: a grid software infrastructure local environments are supported by the use of rsh (remote shell) remote hosts by ssh (secure shell)

The OmniRPC system(1) Background: Ninf RPC OmniRPC inherits its API(Application Programming Interface ) and basic architecture from Ninf A client and the remote computational hosts may be connected via a local area network or over a wide-area network The remote libraries are implemented as an executable program containing a network stub routine as the main routine

The OmniRPC system(2) OmniRpcCall /* declaration */ double A[N][N],B[N][N],C[N][N]; .... /*calls matrix multiplication, C = A*B */ dmmul(A,B,C,N); /* call remote library */ OmniRpcCall("dmmul",A,B,C,N); dmmul is the entry name of the library registered as an executable on a remote host

The OmniRPC system(3) MatrixMult Module MatrixMult; ... Define dmmul(long mode_in int n, mode_in double A[n][n], mode_in double B[n][n], mode_out double C[n][n]) "... description ..." /* Use C calling convention. */ Calls "C" dmmul(n,A,B,C);

The OmniRPC system(4) OmniRPC persistence model: automatic initializable module Once a remote executable is invoked, the client attempts to use the invoked remote executable for subsequent RPC calls persistence of the remote executable can be exploited in certain applications

The OmniRPC system(5) Module MatrixMult; ... /* define procedure */ Define Initialize(long int n, double B[n][n]){ /* store B somewhere */ storeB(n,B); } Define dmmulB(long mode_in int n, mode_in double A[n][n], mode_out double C[n][n]) Calls "C" dmmulB(n,A,C);

The OmniRPC system(6) The client would then set initialization of the module as follows: double A[N][N],B[N][N],C[N][N] ... OmniRpcInitModule("MatrixMult",n,B); .... OmniRpcCall("dmmulB",N,A,C); OmniRpcInitModule only specifies the arguments for the initialization procedure, and does not execute the initialization

The OmniRPC system(7) OmniRPC environment setting By default, the registry is located in the home directory of each user Each remote executable is registered in each remote host registry Cluster: the user can enter the server host of the cluster in the host file with a particular job scheduler private IP address: the user needs to specify the use of a proxy for communication between the client and the remote hosts inside the cluster

Implementation(1) OmniRPC agent in the remote host omrpc-agent remote shell command rsh (local area network) Globus Resource Allocation Manager (GRAM) API of the Globus toolkit (grid environment) secure remote shell command ssh

Implementation(2) Submission of the job of the remote executable with the local job scheduler specified in the host file the job scheduler is not specified, the agent executes the remote executable by the fork system call Management of processes for the submitted jobs Reading of the registry information in the remote host, and delivery to the client Proxy for communications between the client and the remote executables executed at cluster nodes

Implementation(3) Scheduling and re-use of remote executables OmniRPC initialization function OmniRpcCallmakes remote host use the agent the initialization procedure is automatically called the executable waits for subsequent requests for this module in an inactive state the scheduler selects an appropriate remote host to invoke the executable when all executables are active and no executable can be terminated, the thread requesting a remote procedure call is blocked until a remote host becomes available

Implementation(4) I/O multiplexing using the OmniRPC agent Usually, the executable running in a remote host makes the connection directly to the client The OmniRPC agent can work as a proxy between the client and the remote executables invoked by the agent to allow multiplexing of multiple communications from several remote executables into a single connection to the client

Implementation(5) Ssh port forwarding The user uses ssh to invoke the OmniRPC agent in a secure way using the authentication agent ssh-agent This is very convenient when using remote hosts behind a firewall

Implementation(6) Basic performance of OmniRPC The cluster is a PC cluster with 8 node of Athlon MP dual processors (1.5GHz), placed behind the firewall Host B (also Althon MP dual) is a server node of the cluster, and have a global IP address Host A (Pentium4 Xeon 2.8GHz) is a client, which connect to host B via the campus backbone network of University of Tsukuba Host C is a node of the PC cluster that cannot be directly connected from Host A

Implementation(7) Module sample; Define echo(IN int in_size, IN int in_buf[in_size], IN int out_size, OUT int out_buf[out_size]) { /* do nothing */ } Define hostname(OUT string ss[], OUT int r[]) { char s[100]; *r = gethostname(s,100); *ss = s; }

Parallel programming using OmniRPC(1) OpenMP client using OmniRPC OmniRpcinit(&argc,&argv); /* initialize RPC */ .... #pragma omp parallel for for(i = 0; i < N; i++) OmniRpcCall("work",i,...); #pragma omp parallel sections { #pragma omp section OmniRpcCall("subA"); #pragma omp section OmniRpcCall("subB"); #pragma omp section OmniRpcCall("subC"); }

Parallel programming using OmniRPC(2) Example: the knapsack problem main(int argc,char *argv[]){ OmniRpcInit(&argc,&argv); ... r = knap_bfs(Cap,breadth); OmniRpcInitModule("knap",N,W,P); #pragma omp parallel for private(rr) for(k=0;k<breadth;k++){ OmniRpcCall("knap_dfs",states[k].i, states[k].cp,states[k].M,&GLow,&rr); #pragma omp critical { if(rr > r) r = rr; } } OmniRpcFinalize();

Parallel programming using OmniRPC(3) The sample knapsack contained 40i tems with the same unit value The number of subtree generated by the sequential breadth-first search was 100 This strategy may have the disadvantage that the variance for the sub-tree search could be substantial, resulting in load imbalance The maximum execution time of sub-tasks was 61 sec, and the average of the execution time of sub-tasks was 12.3 sec

Future Work The current implementation employs a simple round-robin scheduling over available remote hosts In the grid environment, the computation time of RPCs may be greatly influenced by many factors, including the computational ability of the hosts, the distance to the hosts with respect to the communication bandwidth, and the status of the hosts A more sophisticated scheduling scheme using dynamic information reported by the local job scheduler in the remote host will be required for efficient remote execution, especially in cluster of clusters

www.omni.hpcc.jp/OmniRPC/