Conductor A Framework for Distributed, Type-checked Computing Matthew Kehrt.

Slides:



Advertisements
Similar presentations
Distributed Processing, Client/Server and Clusters
Advertisements

Foundational Certified Code in a Metalogical Framework Karl Crary and Susmit Sarkar Carnegie Mellon University.
FUTURE TECHNOLOGIES Lecture 13.  In this lecture we will discuss some of the important technologies of the future  Autonomic Computing  Cloud Computing.
Topics in Grid Computing Orientation Sathish Vadhiyar.
Peer-to-Peer Distributed Search. Peer-to-Peer Networks A pure peer-to-peer network is a collection of nodes or peers that: 1.Are autonomous: participants.
Network+ Guide to Networks, Fourth Edition
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Emery Berger University of Massachusetts Amherst Operating Systems CMPSCI 377 Lecture.
Fabrice Huet Mobility of Active Objects Fabrice Huet INRIA-I3S-CNRS.
Distributed components
Name Services Jessie Crane CPSC 550. History ARPAnet – experimental computer network (late 1960s) hosts.txt – a file that contained all the information.
6th Biennial Ptolemy Miniconference Berkeley, CA May 12, 2005 Distributed Computing in Kepler Ilkay Altintas Lead, Scientific Workflow Automation Technologies.
Peer-to-Peer Networking By: Peter Diggs Ken Arrant.
Fall 2007cs4251 Distributed Computing Umar Kalim Dept. of Communication Systems Engineering 31/10/2007.
CS 300 – Lecture 22 Intro to Computer Architecture / Assembly Language Virtual Memory.
CSCI 4550/8556 Computer Networks Comer, Chapter 19: Binding Protocol Addresses (ARP)
8/14/03ALADDIN REU Symposium Implementing TALT William Lovas with Karl Crary.
Efficiently Sharing Common Data HTCondor Week 2015 Zach Miller Center for High Throughput Computing Department of Computer Sciences.
Network+ Guide to Networks, Fourth Edition Chapter 1 An Introduction to Networking.
Distributed Systems: Client/Server Computing
Introduction to client/server architecture
Middleware for P2P architecture Jikai Yin, Shuai Zhang, Ziwen Zhang.
Distributed Computer Architecture Benjamin Jordan, Kevin Cone, Jason Bradley.
Chapter 2 TCP/ IP PROTOCOL STACK. TCP/IP Protocol Suite Describes a set of general design guidelines and implementations of specific networking protocols.
Internet GIS. A vast network connecting computers throughout the world Computers on the Internet are physically connected Computers on the Internet use.
SYSTEMS SUPPORT FOR GRAPHICAL LEARNING Ken Birman 1 CS6410 Fall /18/2014.
1 Networks, advantages & types of What is a network? Two or more computers that are interconnected so they can exchange data, information & resources.
Welcome Introduction and Overview Computer Science Research Practicum Fall 2012 Andrew Rosenberg.
Distributed Systems Early Examples. Projects NOW – a Network Of Workstations University of California, Berkely Terminated about 1997 after demonstrating.
Network+ Guide to Networks, Fourth Edition Chapter 1 An Introduction to Networking.
Peer to Peer Network Anas Hardan. What is a Network? What is a Network? A network is a group of computers and other devices (such as printers) that are.
1 port BOSS on Wenjing Wu (IHEP-CC)
Chapter 4 Networking and the Internet Introduction to CS 1 st Semester, 2015 Sanghyun Park.
Application-Layer Anycasting By Samarat Bhattacharjee et al. Presented by Matt Miller September 30, 2002.
Mobiscope: A Scalable Spatial Discovery Service for Mobile Network Resources Aug Seungwoo Kang Matthew Denny, M. J. Franklin, P. Castro, A. Purakayastha.
1 Routing. 2 Routing is the act of deciding how each individual datagram finds its way through the multiple different paths to its destination. Routing.
Grid Appliance – On the Design of Self-Organizing, Decentralized Grids David Wolinsky, Arjun Prakash, and Renato Figueiredo ACIS Lab at the University.
Data Structures & Algorithms and The Internet: A different way of thinking.
Information Systems and Network Engineering Laboratory II DR. KEN COSH WEEK 1.
AjaxScope & Doloto: Towards Optimizing Client-side Web 2.0 App Performance Ben Livshits Microsoft Research (joint work with Emre.
Why use a Database B8 B8 1.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
Parallel Processing Steve Terpe CS 147. Overview What is Parallel Processing What is Parallel Processing Parallel Processing in Nature Parallel Processing.
INTERNET PRESENTATION. WHAT IS THE INTERNET? The worlds largest computer network. A collection of local, regional and national computer networks linked.
CoBrow Collaborative Browsing A Virtual Presence Service RE 1003 RE 4003.
ITI-510 Computer Networks ITI 510 – Computer Networks Meeting 3 Rutgers University Internet Institute Instructor: Chris Uriarte.
Copyright © 2011 Curt Hill MIMD Multiple Instructions Multiple Data.
Presented by Rebecca Meinhold But How Does the Internet Work?
Experiment Management System CSE 423 Aaron Kloc Jordan Harstad Robert Sorensen Robert Trevino Nicolas Tjioe Status Report Presentation Industry Mentor:
Worldwide Lexicon Brian McConnell May, WWL – Brian McConnell Worldwide Lexicon Intro Automatic discovery of dictionary, semantic net and translation.
Engine Group Namiruddin Ahmed Ali Kamil. 2 XMLApe XMLApe Research Group Involved in research on a number of projects that are related to XML and inspired.
Background Real-time environmental monitoring is a field garnering an ever-increasing amount of attention. The ability for sensors to make and publish.
Grid Computing Unit I Introduction. Information anytime anywhere!!! support computation across administrative domains Generally  virtualizing computing.
Distributed Computing Projects. Find cures for diseases like Alzheimer's and Parkinson's by analyzing the ways proteins develop (protein.
3/12/2013Computer Engg, IIT(BHU)1 PARALLEL COMPUTERS- 1.
Future Research Web browsers are some of the most frequently used computer applications today. However, a large portion of their data cycles is wasted.
Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Adaptive Choreographies Joint work with Mila Dalla Preda, Jacopo Mauro and Maurizio.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Operating Systems Overview: Using Hardware.
A Fragmented Approach by Tim Micheletto. It is a way of having multiple cache servers handling data to perform a sort of load balancing It is also referred.
Chord: A Scalable Peer-to-Peer Lookup Service for Internet Applications * CS587x Lecture Department of Computer Science Iowa State University *I. Stoica,
An example of peer-to-peer application
Grid Computing Unit I Introduction.
Spark Presentation.
Apache Spark Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing Aditya Waghaye October 3, 2016 CS848 – University.
Chapter 3: Windows7 Part 4.
ITIS 1210 Introduction to Web-Based Information Systems
Chapter 2: Operating-System Structures
Chapter 2: Operating-System Structures
T. Kashiwagi, M. Suetake , K. Kourai (Kyushu Institute of Technology)
When Machine Learning Meets Security – Secure ML or Use ML to Secure sth.? ECE 693.
Distributed Systems and Algorithms
Presentation transcript:

Conductor A Framework for Distributed, Type-checked Computing Matthew Kehrt

Distributed Computing Today, people are dealing with larger and larger computational problems Today, people are dealing with larger and larger computational problems

Distributed Computing Today, people are dealing with larger and larger computational problems Today, people are dealing with larger and larger computational problems Scientific computations often analyze enormous amounts of data Scientific computations often analyze enormous amounts of data Radio telescope data Radio telescope data

Distributed Computing Today, people are dealing with larger and larger computational problems Today, people are dealing with larger and larger computational problems Scientific computations often analyze enormous amounts of data Scientific computations often analyze enormous amounts of data Radio telescope data Radio telescope data Some problems have large search spaces Some problems have large search spaces Factoring Factoring Password cracking Password cracking

Distributed Computation A solution – split large computations across multiple computers A solution – split large computations across multiple computers

Distributed Computation A solution – split large computations across multiple computers A solution – split large computations across multiple computers Some projects already do this Some projects already do this (protein folding) (protein folding) (genetics) (genetics)

Distributed Computation A solution – split large computations across multiple computers A solution – split large computations across multiple computers Some projects already do this Some projects already do this (protein folding) (protein folding) (genetics) (genetics) However, these examples are all for very specific problems However, these examples are all for very specific problems

Grid Computing We want something more generic We want something more generic

Grid Computing We want something more generic We want something more generic A general framework for distributing computation A general framework for distributing computation A way of submitting work to a collection of machines A way of submitting work to a collection of machines

Grid Computing We want something more generic We want something more generic A general framework for distributing computation A general framework for distributing computation A way of submitting work to a collection of machines A way of submitting work to a collection of machines We want a peer-to-peer network to distribute code We want a peer-to-peer network to distribute code

Safety? We want to run code on remote hosts We want to run code on remote hosts

Safety? How do we guarantee code is benign? How do we guarantee code is benign? Running code in a safe VM is expensive Running code in a safe VM is expensive

Safety? We want to run code on remote hosts We want to run code on remote hosts How do we guarantee code is benign? How do we guarantee code is benign? Running code in a safe VM is expensive Running code in a safe VM is expensive Native code is faster Native code is faster

Safety? We want to run code on remote hosts We want to run code on remote hosts How do we guarantee our code is benign? How do we guarantee our code is benign? Running code in a safe VM is expensive Running code in a safe VM is expensive Native code is faster Native code is faster Can we do static checks for safety on code to run? Can we do static checks for safety on code to run?

TAL Type systems can make static guarantees about program behavior Type systems can make static guarantees about program behavior

TAL However, we want to send object code over the network However, we want to send object code over the network

TAL Type systems can make static guarantees about program behavior Type systems can make static guarantees about program behavior However, we want to send object code over the network However, we want to send object code over the network Reduces work that needs to be done at runtime Reduces work that needs to be done at runtime How about a typed assembly language which need be only linked? How about a typed assembly language which need be only linked?

TAL A good type system allows us to distribute guaranteed safe code A good type system allows us to distribute guaranteed safe code

TAL Assembly language means little work needs to be done to prepare distributed code for running. Assembly language means little work needs to be done to prepare distributed code for running.

The Conductor Each machine on the grid runs a Conductor Each machine on the grid runs a Conductor The Conductor The Conductor Maintains a queue of work to be done Maintains a queue of work to be done Locates peers through a gossip protocol Locates peers through a gossip protocol Queries known peers for others on the network Queries known peers for others on the network Downloads, checks and runs work Downloads, checks and runs work Returns results Returns results

The Conductor Allows for multiple safety policies (different type systems) selected by the user Allows for multiple safety policies (different type systems) selected by the user Publishes code and results in a distributed hashtable Publishes code and results in a distributed hashtable Caches results for quick recomputation Caches results for quick recomputation Is tolerant to machines joining and leaving the network Is tolerant to machines joining and leaving the network

Summer Goals A network running on machines at CMU A network running on machines at CMU

Summer Goals A network running on machines at CMU A network running on machines at CMU A larger network running on machines owned by the Pittsburgh public school system A larger network running on machines owned by the Pittsburgh public school system

Summer Goals A network running on machines at CMU A network running on machines at CMU A larger network running on machines owned by the Pittsburgh public school system A larger network running on machines owned by the Pittsburgh public school system Adding a new type system to the conductor (TAL Two, or TALT) Adding a new type system to the conductor (TAL Two, or TALT)

Summer Goals A network running on machines at CMU A network running on machines at CMU A larger network running on machines owned by the Pittsburgh public school system A larger network running on machines owned by the Pittsburgh public school system Adding a new type system to the conductor (TAL Two, or TALT) Adding a new type system to the conductor (TAL Two, or TALT) Ability to merge two grids Ability to merge two grids