Gluepy: A Framework for Flexible Programming in Complex Grid Environments Ken Hironaka Hideo Saito Kei Takahashi Kenjiro Taura (University of Tokyo) {kenny,

Slides:



Advertisements
Similar presentations
European Research Network on Foundations, Software Infrastructures and Applications for large scale distributed, GRID and Peer-to-Peer Technologies Experiences.
Advertisements

Multiple Processor Systems
A Workflow Engine with Multi-Level Parallelism Supports Qifeng Huang and Yan Huang School of Computer Science Cardiff University
COS 461 Fall 1997 Network Objects u first good implementation: DEC SRC Network Objects for Modula-3 u recent implementation: Java RMI (Remote Method Invocation)
Piccolo: Building fast distributed programs with partitioned tables Russell Power Jinyang Li New York University.
RPC Robert Grimm New York University Remote Procedure Calls.
IPv6 Multihoming Support in the Mobile Internet Presented by Paul Swenson CMSC 681, Fall 2007 Article by M. Bagnulo et. al. and published in the October.
NAT Traversal for P2PSIP Philip Matthews Avaya. Peer X Peer Y Peer W 2. P2PSIP Network Establishing new Peer Protocol connection Peer Protocol messages.
Dinker Batra CLUSTERING Categories of Clusters. Dinker Batra Introduction A computer cluster is a group of linked computers, working together closely.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Naming (2) DISTRIBUTED.
Computer Systems/Operating Systems - Class 8
Task Scheduling and Distribution System Saeed Mahameed, Hani Ayoub Electrical Engineering Department, Technion – Israel Institute of Technology
Efficient Content Location Using Interest-based Locality in Peer-to-Peer Systems Presented by: Lin Wing Kai.
Protocols and the TCP/IP Suite
Spring Routing & Switching Umar Kalim Dept. of Communication Systems Engineering 06/04/2007.
A Grid-enabled Branch and Bound Algorithm for Solving Challenging Combinatorial Optimization Problems Authors: M. Mezmaz, N. Melab and E-G. Talbi Presented.
1CS 6401 Peer-to-Peer Networks Outline Overview Gnutella Structured Overlays BitTorrent.
Fundamentals of Python: From First Programs Through Data Structures
Lecture 2 – MapReduce CPE 458 – Parallel Programming, Spring 2009 Except as otherwise noted, the content of this presentation is licensed under the Creative.
Presenter: Chi-Hung Lu 1. Problems Distributed applications are hard to validate Distribution of application state across many distinct execution environments.
Protocols and the TCP/IP Suite Chapter 4. Multilayer communication. A series of layers, each built upon the one below it. The purpose of each layer is.
High Performance Wide-area Overlay using Deadlock-free Routing Ken Hironaka, Hideo Saito, Kenjiro Taura The University of Tokyo June 12 th, 2009.
DIANE Overview Germán Carrera, Alfredo Solano (CNB/CSIC) EMBRACE COURSE Monday 19th of February to Friday 23th. CNB-CSIC Madrid.
Design and implementation  Main features  Socket API  No need to modify existing applications/middleware  Overlay network  FW/NAT traversal.
Introduction to Parallel Programming MapReduce Except where otherwise noted all portions of this work are Copyright (c) 2007 Google and are licensed under.
Parallel Programming Models Jihad El-Sana These slides are based on the book: Introduction to Parallel Computing, Blaise Barney, Lawrence Livermore National.
DNA REASSEMBLY Using Javaspace Sung-Ho Maeung Laura Neureuter.
Grid Appliance – On the Design of Self-Organizing, Decentralized Grids David Wolinsky, Arjun Prakash, and Renato Figueiredo ACIS Lab at the University.
Cli/Serv.: rmiCORBA/131 Client/Server Distributed Systems v Objectives –introduce rmi and CORBA , Semester 1, RMI and CORBA.
High Throughput Computing on P2P Networks Carlos Pérez Miguel
1 Dryad Distributed Data-Parallel Programs from Sequential Building Blocks Michael Isard, Mihai Budiu, Yuan Yu, Andrew Birrell, Dennis Fetterly of Microsoft.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Gluepy: A Simple Distributed Python Programming Framework for Complex Grid Environments 8/1/08 Ken Hironaka, Hideo Saito, Kei Takahashi, Kenjiro Taura.
Processes and Threads Processes have two characteristics: – Resource ownership - process includes a virtual address space to hold the process image – Scheduling/execution.
An Implementation and Performance Evaluation of Language with Fine-Grain Thread Creation on Shared Memory Parallel Computer Yoshihiro Oyama, Kenjiro Taura,
Workflow Early Start Pattern and Future's Update Strategies in ProActive Environment E. Zimeo, N. Ranaldo, G. Tretola University of Sannio - Italy.
Spring/2002 Distributed Software Engineering C:\unocourses\4350\slides\DefiningThreads 1 RMI.
A Survey on Parallel Computing in Heterogeneous Grid Environments Takeshi Sekiya Chikayama-Taura Laboratory M1 Nov 24, 2006.
Client Call Back Client Call Back is useful for multiple clients to keep up to date about changes on the server Example: One auction server and several.
RF network in SoC1 SoC Test Architecture with RF/Wireless Connectivity 1. D. Zhao, S. Upadhyaya, M. Margala, “A new SoC test architecture with RF/wireless.
Reconsidering Internet Mobility Alex C. Snoeren, Hari Balakrishnan, M. Frans Kaashoek MIT Laboratory for Computer Science.
A Framework for Flexible Programming in Complex Grid Environments 04/24/08 Taura Lab. 2 nd Year Ken Hironaka.
A High Performance Middleware in Java with a Real Application Fabrice Huet*, Denis Caromel*, Henri Bal + * Inria-I3S-CNRS, Sophia-Antipolis, France + Vrije.
1 Threads, SMP, and Microkernels Chapter 4. 2 Process Resource ownership: process includes a virtual address space to hold the process image (fig 3.16)
More on Adaptivity in Grids Sathish S. Vadhiyar Source/Credits: Figures from the referenced papers.
Gluepy: A Simple Distributed Python Programming Framework for Complex Grid Environments 8/1/08 Ken Hironaka, Hideo Saito, Kei Takahashi, Kenjiro Taura.
A Utility-based Approach to Scheduling Multimedia Streams in P2P Systems Fang Chen Computer Science Dept. University of California, Riverside
Executing Parallel Programs with Potential Bottlenecks Efficiently Yoshihiro Oyama Kenjiro Taura Akinori Yonezawa {oyama, tau,
Virtual Private Grid (VPG) : A Command Shell for Utilizing Remote Machines Efficiently Kenji Kaneda, Kenjiro Taura, Akinori Yonezawa Department of Computer.
CS 484 Load Balancing. Goal: All processors working all the time Efficiency of 1 Distribute the load (work) to meet the goal Two types of load balancing.
CS533 - Concepts of Operating Systems 1 Threads, Events, and Reactive Objects - Alan West.
A Stable Broadcast Algorithm Kei Takahashi Hideo Saito Takeshi Shibata Kenjiro Taura (The University of Tokyo, Japan) 1 CCGrid Lyon, France.
Copyright © 2004, Keith D Swenson, All Rights Reserved. OASIS Asynchronous Service Access Protocol (ASAP) Tutorial Overview, OASIS ASAP TC May 4, 2004.
Distributed Algorithms Dr. Samir Tartir Extracted from Principles of Concurrent and Distributed Programming, Second Edition By M. Ben-Ari.
KYUNG-HWA KIM HENNING SCHULZRINNE 12/09/2008 INTERNET REAL-TIME LAB, COLUMBIA UNIVERSITY DYSWIS.
Computer Science Lecture 4, page 1 CS677: Distributed OS Last Class: RPCs RPCs make distributed computations look like local computations Issues: –Parameter.
Department of Computer Science, Johns Hopkins University Pregel: BSP and Message Passing for Graph Computations EN Randal Burns 14 November 2013.
Topic 4: Distributed Objects Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
Fault tolerance, malleability and migration for divide-and-conquer applications on the Grid Gosia Wrzesińska, Rob V. van Nieuwpoort, Jason Maassen, Henri.
Module 12: I/O Systems I/O hardware Application I/O Interface
Spark Presentation.
Async or Parallel? No they aren’t the same thing!
Real-World Distributed Computing with Ibis
Chapter 16: Distributed System Structures
Protocols and the TCP/IP Suite
Threaded Programming in Python
Protocols and the TCP/IP Suite
Peer-to-peer networking
Parallel programming in Java
Threads CSE 2431: Introduction to Operating Systems
Presentation transcript:

gluepy: A Framework for Flexible Programming in Complex Grid Environments Ken Hironaka Hideo Saito Kei Takahashi Kenjiro Taura (University of Tokyo) {kenny, h_saito, kay, Package available from Home Page: Overview Grid-enabled distributed object oriented programming model Distributed object model with implicit mutual exclusion Programming model that allows join/failure of nodes Incorporate NAT/firewalled clusters by using overlay gluepy : “glue Python” Distributed object oriented library extension for Python Implements our proposed programming model for flexible Grid computing Real Grid Applications on real Grid Environments Over 900 real nodes across 9 clusters Heterogeneous Network Settings (including NAT, firewalls) Related Works Grid-enabled Programming Models Satin [Wrzesinska et al. 2006], Jojo [Nakada et al. 2004], Jojo2 [Aoki et al. 2006] Distributed Objects on the Grid ProActive [Huet et al. 2004], Ibis RMI [van Nieuwpoort, et al. 2005] Wide-area Connection Management SmartSockets [Maassen et al. 2007], MC-MPI [Saito et al. 2007] Programming Model Asynchronous RMIs (Remote Method Invocations) with Futures any invocation may be made asynchronous returns a future, a place holder in which results will be returned Serialization Semantics (Synchronization) At most 1 running thread per object RMIs are handled by a separate thread At any given time, at most 1 thread can execute an object’s method: the owner thread (eliminate race-conditions) If a thread blocks while in the method’s scope, other threads are permitted to execute methods on the object (eliminate deadlocks for common usage) Signals to Object Signals may be sent to objects Any thread blocking in the object’s context will unblock and return None Runtime Node Joins Need to obtaining reference to existing objects A fully decentralized remote object lookup scheme Query for remote reference via random walking among peers Node failure (RMI failure) detection RMI failures are returned as Exceptions Failure of object host process Failure of communication or intermediate processes Automatic Overlay Construction on Grid Construction Scheme: Steps for each peer obtain endpoint information to other peers attempt TCP connections to a selected few peers NAT-Cluster Peers Connectable to global IP peers Firewall-Cluster Peers Automatic SSH-portforwarding Adaptive routing on overlay [Perkins et al. 1997] Failure Detection on Overlay communication path is maintained for each RMI Intermediate peers remember the next peer: Path Pointer Path pointer garbage collected on return On failure of connection, error is returned along path Evaluation Results Experimental Environment hongo(98) chiba(186) okubo(28) suzuk(72) imade(60) kototoi (88) kyoto(70) istbs(316) tsubame(64) Global IPs Firewall Private IPs All packets dropped NAT Firewall Global IP Attempt connection SSH Firewall traversal Overlay Connectivity Simulation Probability of connected random graph 3 Cluster Combinations hongo, chiba, okubo, suzuk, imade, kyoto, kototoi (4 Global clusters (384 peers), 3 Private clusters (218 peers) ) okubo, suzuk, imade, kyoto, kototoi (2 Global clusters (100 peers), 3 Private clusters (218 peers) ) okubo, imade, kyoto, kototoi (1Global clusters (28 peers), 3 Private clusters (218 peers) ) Master-Worker application with node joins/failures A Simple Master Worker Program that distributes tasks to workers New tasks to new workers via async. RMIs Tasks given to failed workers are redistributed By catching and handling RMI failure exceptions Th object owner thread waiting threads Th object new owner thread Give-up Owner ship block Grid Application: Parallel Permutation Flowshop Solver A combination optimization problem Given a sequence of n jobs that use m machines, find a permutation of jobs that give the shortest makespan Path pointer RMI handler failure return error Master Worker doJob() exchange_bound() Finds the optimal solution by parallel branch and bound Master divides the search space into sub-tasks to workers Worker periodically exchange latest bounds with master class Master : def __init__(self): self.nodes = [] self.jobs = [] def nodeJoin(self, node): self.nodes.append(node) self.signal() def run (self): assigned = {} while True: while len(self.nodes)>0 and len(self.jobs)>0: node = self.nodes.pop() job = self.jobs.pop() f = node.doJob.future(job) assigned[f] = (node, job) readys = wait(assigned.keys()) if readys == None: continue for f in readys: node, job = assigned.pop(f) try: print ”done:”, f.get() self.nodes.append(node) except RemoteException, e: self.jobs.append(job) aync. RMI, doJob() to idle workers Block and wait for some results retrieve results Exception raised on failure Future Work Application to much wider range of Grid Applications Development of library package A prototype package is available at Home Page!! Signal thread blocking in master object None returns when unblocked by signal Atomic Section Th object Unblock On signal re-contest for ownership Example Master-Worker Excerpt