Conductor A Framework for Distributed Typechecked Computing Matthew
Conductor A Framework for Distributed, Typechecked Computing Matthew Kehrt
Distributed Computing n Today, people are dealing with larger and larger computational problems
Distributed Computing n Today, people are dealing with larger and larger computational problems n Scientific computations often analyze enormous amounts of data n Radio telescope data
Distributed Computing n Today, people are dealing with larger and larger computational problems n Scientific computations often analyze enormous amounts of data n Radio telescope data n Some problems have large search spaces Factoring n Password cracking n
Distributed Computation n A solution – split large computations across multiple computers
Distributed Computation A solution – split large computations across multiple computers n Some projects already do this n SETI@home n folding@home (protein folding) n evolution@home (genetics) n
Distributed Computation A solution – split large computations across multiple computers n Some projects already do this n SETI@home n folding@home (protein folding) n evolution@home (genetics) n n However, these examples are all for very specific problems
Grid Computing n We want something more generic
Grid Computing We want something more generic n A general framework for distributing computation n n A way of submitting work to a collection of machines
Grid Computing We want something more generic n A general framework for distributing computation n A way of submitting work to a collection of machines We want a peer-to-peer network to distribute code
Safety? n We want to run code on remote hosts
Safety? We want to run code on remote hosts n How do we guarantee code is benign? n n Running code in a safe VM is expensive
Safety? We want to run code on remote hosts n How do we guarantee code is benign? n n n Running code in a safe VM is expensive Native code is faster
Safety? We want to run code on remote hosts n How do we guarantee our code is benign? n n Running code in a safe VM is expensive Native code is faster n Can we do static checks for safety on code to run? n
TAL n Type systems can make static guarantees about program behavior
TAL Type systems can make static guarantees about program behavior n However, we want to send object code over the network n
TAL Type systems can make static guarantees about program behavior n However, we want to send object code over the network n n n Reduces work that needs to be done at runtime How about a typed assembly language which need be only linked?
TAL n A good type system allows us to distribute guaranteed safe code
TAL A good type system allows us to distribute guaranteed safe code n Assembly language means little work needs to be done to prepare distributed code for running. n
The Conductor Each machine on the grid runs a Conductor n The Conductor n Maintains a queue of work to be done n Locates peers through a gossip protocol n n Queries known peers for others on the network Downloads, checks and runs work n Returns results n
The Conductor Allows for multiple safety policies (different type systems) selected by the user n Publishes code and results in a distributed hashtable n Caches results for quick recomputation n Is tolerant to machines joining and leaving the network n
Summer Goals n A network running on machines at CMU
Summer Goals A network running on machines at CMU n A larger network running on machines owned by the Pittsburgh public school system n
Summer Goals A network running on machines at CMU n A larger network running on machines owned by the Pittsburgh public school system n Adding a new type system to the conductor (TAL Two, or TALT) n
Summer Goals A network running on machines at CMU n A larger network running on machines owned by the Pittsburgh public school system n Adding a new type system to the conductor (TAL Two, or TALT) n Ability to merge two grids n
- Slides: 25