Tammy Dahlgren, Tom Epperly, Scott Kohn, & Gary Kumfert.

Slides:



Advertisements
Similar presentations
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)
Advertisements

COM vs. CORBA.
RPC Robert Grimm New York University Remote Procedure Calls.
Remote Procedure CallCS-4513, D-Term Remote Procedure Call CS-4513 Distributed Computing Systems (Slides include materials from Operating System.
Common Object Request Broker Architecture (CORBA) By: Sunil Gopinath David Watkins.
CORBA Architecture Nitin Prabhu. Outline CORBA Object Model CORBA Architecture Static Invocation Dynamic Invocation CORBA Communication Model.
The road to reliable, autonomous distributed systems
Tammy Dahlgren, Tom Epperly, Scott Kohn, and Gary Kumfert Center for Applied Scientific Computing Common Component Architecture Working Group October 3,
1 HANDOUT 14 Remote Method Invocation (RMI) BY GEORGE KOUTSOGIANNAKIS THIS DOCUMENT CAN NOT BE REPRODUCED OR DISTRIBUTED WITHOUT TH E WRITTEN PERMISSION.
Bronis R. de Supinski Center for Applied Scientific Computing Lawrence Livermore National Laboratory June 2, 2005 The Most Needed Feature(s) for OpenMP.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Introduction to Remote Method Invocation (RMI)
Apache Axis: A Set of Java Tools for SOAP Web Services.
Communication in Distributed Systems –Part 2
Remote Procedure Calls. 2 Client/Server Paradigm Common model for structuring distributed computations A server is a program (or collection of programs)
GKK 1 CASC Recommended Viewing: Since this is a pictorial presentation, I’ve gone through the effort to type up what I normally say in the “notes” section.
Gary Kumfert with Bill Bosl, Tammy Dahlgren, Tom Epperly, Scott Kohn, & Steve Smith Achieving Language Interoperability with.
H Research Issues in CORBA Peter de Jong Hewlett-Packard Usenix 8/12/97 Research Issues in CORBA What keeps CORBA people awake at Night! Peter de Jong.
COM vs. CORBA Computer Science at Azusa Pacific University September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Other Topics RPC & Middleware.
1 Chapter 38 RPC and Middleware. 2 Middleware  Tools to help programmers  Makes client-server programming  Easier  Faster  Makes resulting software.
Fundamentals of Database Chapter 7 Database Technologies.
CASC This work was performed under the auspices of the U.S. Department of Energy by University of California Lawrence Livermore National Laboratory under.
Remote Procedure Call Andrew Whitaker CSE451. Remote Procedure Call RPC exposes a programming interface across machines: interface PriceService { Price.
CSCI 6962: Server-side Design and Programming Web Services.
Cli/Serv.: rmiCORBA/131 Client/Server Distributed Systems v Objectives –introduce rmi and CORBA , Semester 1, RMI and CORBA.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Distributed Real- Time in the RTSJ Andrew Borg. Presentation RMI – A brief introduction The RTSJ – A (very) brief introduction The DRTSJ – The 3 Levels.
CCA Common Component Architecture CCA Forum Tutorial Working Group Contributors: Language Interoperability Using Gary.
Tammy Dahlgren with Tom Epperly, Scott Kohn, and Gary Kumfert Center for Applied Scientific Computing Common Component Architecture Working Group October.
Grid Computing Research Lab SUNY Binghamton 1 XCAT-C++: A High Performance Distributed CCA Framework Madhu Govindaraju.
1 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Introduction to Etch Scott.
Spring/2002 Distributed Software Engineering C:\unocourses\4350\slides\DefiningThreads 1 RMI.
MapReduce Kristof Bamps Wouter Deroey. Outline Problem overview MapReduce o overview o implementation o refinements o conclusion.
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Distributed Objects and Middleware. Sockets and Ports Source: G. Coulouris et al., Distributed Systems: Concepts and Design.
Liang, Introduction to Java Programming, Seventh Edition, (c) 2009 Pearson Education, Inc. All rights reserved Chapter 43 Remote Method Invocation.
CSE 451: Operating Systems Winter 2015 Module 22 Remote Procedure Call (RPC) Mark Zbikowski Allen Center 476 © 2013 Gribble, Lazowska,
Scott Kohn with Tammy Dahlgren, Tom Epperly, and Gary Kumfert Center for Applied Scientific Computing Lawrence Livermore National Laboratory October 2,
CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.
Update on CORBA Support for Babel RMI Nanbor Wang and Roopa Pundaleeka Tech-X Corporation Boulder, CO Funded by DOE OASCR SBIR.
Eric Tryon Brian Clark Christopher McKeowen. System Architecture The architecture can be broken down to three different basic layers Stub/skeleton layer.
ORNLKohl/ Mux and MxN: A Revelation… (a.k.a. “Collective” is Dead? :-o) James Arthur Kohl David E. Bernholdt Oak Ridge National Laboratory Thursday,
Distributed Components for Integrating Large- Scale High Performance Computing Applications Nanbor Wang, Roopa Pundaleeka and Johan Carlsson
Tammy Dahlgren, Tom Epperly, Scott Kohn, & Gary Kumfert.
1 Chapter 38 RPC and Middleware. 2 Middleware  Tools to help programmers  Makes client-server programming  Easier  Faster  Makes resulting software.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Proxy Pattern. What’s a Proxy? A remote proxy acts as a local representative of a remote object Remote Object: instantiated in a different JVM heap (a.
Gary Kumfert & Scott Kohn Tammy Dahlgren, Tom Epperly, Steve Smith, and Bill Bosl Introducing...
Java Distributed Object Model A remote object is one whose methods can be invoked from another JVM on a different host. It implements one or more remote.
CEN6502, Spring Understanding the ORB: Client Side Structure of ORB (fig 4.1) Client requests may be passed to ORB via either SII or DII SII decide.
Data-Centric Systems Lab. A Virtual Cloud Computing Provider for Mobile Devices Gonzalo Huerta-Canepa presenter 김영진.
© Oxford University Press 2011 DISTRIBUTED COMPUTING Sunita Mahajan Sunita Mahajan, Principal, Institute of Computer Science, MET League of Colleges, Mumbai.
Region-Based Software Distributed Shared Memory Song Li, Yu Lin, and Michael Walker CS Operating Systems May 1, 2000.
Distributed Computing & Embedded Systems Chapter 4: Remote Method Invocation Dr. Umair Ali Khan.
Liang, Introduction to Java Programming, Fifth Edition, (c) 2005 Pearson Education, Inc. All rights reserved Chapter 29 Remote Method.
Distributed Computing
Knowledge Byte In this section, you will learn about:
CSE 451: Operating Systems Winter 2006 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Autumn 2003 Lecture 16 RPC
CSE 451: Operating Systems Winter 2007 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Chapter 40 Remote Method Invocation
CSE 451: Operating Systems Winter 2004 Module 19 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Spring 2012 Module 22 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Autumn 2009 Module 21 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Chapter 46 Remote Method Invocation
Chapter 46 Remote Method Invocation
CSE 451: Operating Systems Autumn 2010 Module 21 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Winter 2003 Lecture 16 RPC
CSE 451: Operating Systems Messaging and Remote Procedure Call (RPC)
Presentation transcript:

Tammy Dahlgren, Tom Epperly, Scott Kohn, & Gary Kumfert

GKK 2 CASC Format Recap of Gatlinburg Talk only in Reverse Conceptually, not literally.

GKK 3 CASC Example #1: 1-D Vectors double d = x.dot( y ); x x y y y

GKK 4 CASC Example #2: Undirected Graph

GKK 5 CASC Big Picture l What is the largest set of MxN Redistributable components? l How do we allow developers to add to this set? l Generality over Performance

GKK 6 CASC Other Complicated Tasks in CS l GUI APIs u Java-AWT: must extend “Frame” u Lots of default behaviors inherited l Threaded Apps u Java: class must implement Runnable u Must implement methods so JVM can interact with class correctly

GKK 7 CASC Last few Rhetorical Questions l Can we employ a similar strategy for MxN? l Corollaries u If so, which one? u How?

GKK 8 CASC Tale of two Customers l Library Developer l Familiar with Component Tech. l Formal Software Training l Application Programmer l May not be aware of using Babel l May have no formal SW training Developer User

GKK 9 CASC Zen of Babel l If its difficult let Babel do it. l If its impossible for Babel let developer do it. l If its difficult for user shift burden to Babel or Developer if at all possible

GKK 10 CASC Solution l Babel provides a MUX in its runtime l Parallel Distributed Components MUST IMPLEMENT the MxNRedistributable Interface l All communication & data redistribution details hidden from user. except performance, of course! ;-)

GKK 11 CASC Ramifications l User still programs in SPMD model l User may not selectively exclude processes or threads from a parallel RMI l User may not alter communication modes (synch v. asynch, etc.) u Determined by Babel u Modifiers may be available to developer in SIDL... e.g. “oneway” !

GKK 12 CASC Ramifications (2) l No MPI communicator connecting M to N u May not know M and N when driver is launched l M = N, M N, M=1, N=1, Okay l Non-rectilinear Data, No Problem l Owner Computes

GKK 13 CASC Now Drilling One Level Deeper...

GKK 14 CASC Babel Inserts Code between User & Developer l language interoperability u COMPLEX*(4) == complex l virtual function dispatch u call foo() on interface, dispatch to implementing class l implement RMI l remap distributed data no industry precedent

GKK 15 CASC Impls and Stubs and Skels Application Stubs Skels IORs Impls l Application: uses components in user’s language of choice l Client Side Stubs: translate from application language to C l Internal Object Representation: Always in C l Server Side Skeletons: translates IOR (in C) to component implementation language l Implementation: component developers choice of language. (Can be wrappers to legacy code)

GKK 16 CASC Out of Process Components Application Stubs IPC IORs Skels IORs Impls IPC

GKK 17 CASC Internet Remote Components Application Stubs Marshaler IORs Line Protocol Unmarshaler Skels IORs Impls

GKK 18 CASC All MxN Components inherit one interface l All Distributed Objects are Containers l They are by nature subdivisible l If an interface can make any container “look like” a 1-D vector then a MUX is little more than a KELP Mover

GKK 19 CASC MxNRedistributable Interface interface Serializable { store( in Stream s ); load( in Stream s ); }; interface MxNRedistributable extends Serializable { int getGlobalSize(); local int getLocalSize(); local array getLocal2Global(); split ( in array maskVector, out array pieces); merge( in array pieces); };

GKK 20 CASC We saw something similar yesterday l Kelp uses callbacks for user to define copy, serialization, etc. l I’m using an interface that user must implement l Kelp uses rectilinear regions l I’m using explicit local-global maps (for now) l Kelp has a Mover u most of the “guts” of the solution u that depends on the user callbacks l I’m calling it a MUX

GKK 21 CASC MxNRedistributable Interface in action l Last Time u I started with object creation u I handled problems as they aroze l This time u I’ll just do the MxN stuff u I’ll gloss over details altogether

GKK 22 CASC Example #2: Undirected Graph

GKK 23 CASC pp->minSpanTree( graph ); orb graph MUX graph MUX pp l MUX queries graph for global size (12) l Graph determines particular data layout (blocked) require l MUX is invoked to guarantee that layout before render implementation is called

GKK 24 CASC MUX generates communication schedules ( client & server ) orb graph MUX graph MUX pp require 0, 1, 2, 3 4, 5 6, 7 8, 9, 10, 11

GKK 25 CASC MUX opens communication pipes orb graph MUX graph MUX pp require 0, 1, 2, 3 4, 5 6, 7 8, 9, 10, 11

GKK 26 CASC MUX splits graphs with multiple destinations (server-side) orb graph MUX graph MUX pp require 0, 1, 2, 3 4, 5 6, 7 8, 9, 10,

GKK 27 CASC MUX sends pieces through communication pipes (persistance) orb graph MUX graph MUX pp require

GKK 28 CASC MUX receives graphs through pipes & assembles them (client side) orb graph MUX graph MUX pp require

GKK 29 CASC Summary l All distributed components are containers and subdivisable l The smallest globally addressable unit is an atom l MxNRedistributable interface reduces general component MxN problem to a 1-D array of ints l MxN problem is a special case of the general problem N handles to M instances l Babel is uniquely positioned to contribute a solution to this problem

GKK 30 CASC Tentative Research Strategy l Java only, no Babel u serialization & RMI built-in l Build MUX l Experiment l Write Paper l Finish 0.5.x line l add serialization l add RMI l Add in technology from Fast Track Fast TrackSure Track

GKK 31 CASC Closing Remarks l User calls without regard to data distribution l Developers code assuming data distributed appropriately l Babel does all the redistribution between the two u Requires Developers implementing an interface (a.k.a. callbacks)

GKK 32 CASC Open Questions l Non-general, Optimized Solutions l Client-side Caching issues l Fault Tolerance l Subcomponent Migration l Inter vs. Intra component communication l MxN, MxP, or MxPxQxN

GKK 33 CASC MxPxQxN Problem Long-Haul Network

GKK 34 CASC MxPxQxN Problem Long-Haul Network

GKK 35 CASC The End

GKK 36 CASC Work performed under the auspices of the U. S. Department of Energy by the University of California, Lawrence Livermore National Laboratory under Contract W-7405-Eng-48 UCRL-VG Apr 2001