Aggregate ¡Programming ¡ Part ¡1: ¡Mo0va0on ¡& ¡Field ¡Calculus ¡ Jacob ¡Beal ¡ SFM16: ¡QUANTICOL ¡ June ¡2016 ¡
A generative approach to safety Restrict your development environment … Crowd&Management& Applica'on* dangerousDensity crowdTracking Code* crowdWarning safeDispersal Collec,ve&Behavior& collectivePerception collectiveSummary managementRegions … Developer* APIs* Percep,on& Ac,on& State& distanceTo timer summarize broadcast lowpass average partition recentTrue regionMax … … … Resilient* built&ins) G T if Coordina'on* C Operators* Field*Calculus* built&ins) nbr rep if Constructs* sensors& actuators& Device* communica,on& state& restric,on& local&func,ons& Capabili'es* … to contain only resilient distributed systems.
Dealing with challenging platforms Emerging ¡Computa4onal ¡ Pla6orms ¡ Computa4onal ¡Field ¡ Programming ¡Models ¡ Inherently ¡Resilient ¡ device ¡ Distributed ¡Systems ¡ neighborhood ¡ Pay ¡a ¡liAle ¡efficiency, ¡get ¡a ¡lot ¡of ¡programmability ¡and ¡resilience ¡
Traditional Monolithic Computing The venerable von Neumann model is breaking down in several ways …
The End of Moore’s Law Intel ¡Xeon ¡Phi: ¡61 ¡cores ¡ Xilinx ¡Virtex-‑7: ¡2M ¡Logic ¡cells ¡ High-performance computing = mesh
Networked Devices Everywhere 6 ¡
New Computational Materials • Synthetic Biology: [Weiss] ¡ [Levskaya] ¡ [Medford] ¡ [Hasty] ¡ Other ¡emerging ¡areas ¡too, ¡including ¡nanoassembly, ¡ac5ve ¡materials… ¡
Fundamentally different models Isolate ¡Systems ¡ High ¡Dispersion ¡ High ¡ResoluVon ¡Sense/Act ¡ Extremely ¡High ¡FLOPs ¡ Moderate ¡FLOPs ¡ Abysmal ¡FLOPs ¡ How can we program aggregates adaptively & efficiently? Are there commonalities that cross substrates?
Example: Services for Mass Events 9 ¡
Example: Managing Crowd Danger
Device-Centric Programming Dispersal ¡Advice ¡ Conges0on-‑Aware ¡Naviga0on ¡ Dangerous ¡Density ¡Warning ¡ Crowd ¡Es0ma0on ¡ • Explicit design of adaptation and communication • Complex per-device multi-service application • Intractable to ensure correct behavior
Aggregate Programming Dispersal ¡Advice ¡ Conges0on-‑Aware ¡Naviga0on ¡ Dangerous ¡Density ¡Warning ¡ Crowd ¡Es0ma0on ¡ • Implicit adaptation and communication • Code each collective service independently • Compose via scope and information flow
Aggregate Programming
Aggregate Programming Stack Crowd&Management& Applica'on* dangerousDensity crowdTracking Code* crowdWarning safeDispersal Collec,ve&Behavior& collectivePerception collectiveSummary managementRegions … Developer* APIs* Percep,on& Ac,on& State& distanceTo timer summarize broadcast lowpass average partition recentTrue regionMax … … … Resilient* built&ins) G T if Coordina'on* C Operators* Field*Calculus* built&ins) nbr rep if Constructs* sensors& actuators& Device* communica,on& state& restric,on& local&func,ons& Capabili'es*
Example: Mesh-Network Cell Phones 15 ¡
Geometric Program: Channel DesV-‑ ¡ Source ¡ naVon ¡ (cf. ¡Butera) ¡ 16 ¡
Computing with fields source destination width distance-to distance-to distance 10 ¡ 37 ¡ + dilate <= 17 ¡
(Higher Order) Field Calculus Literal ¡Value ¡ Variable ¡ State ¡ Local ¡Ops ¡ Communica0on ¡ Domain ¡Change ¡ Abstract ¡& ¡Call ¡ Func0ons ¡ [Viroli ¡et ¡al., ¡‘13, ¡Damiani ¡et ¡al., ¡‘15] ¡
Field Calculus Example (def distance-to (region) (rep d infinity (mux region 0 (min-hood (+ (nbr d) (nbr-range)))))) Let’s go examine this in simulation …
Field Calculus is Space-Time Universal Space-time Universal = arbitrarily good approximation of any causal, finitely-approximable computation !"#$%&'!"()*+&##,$&-%+&..$/0!1&2/"'+ Specifica0on: ¡ !"#$% !"#$% !"#$% !"#$% !" &'()$% Non-‑approximable ¡ Acausal ¡ &'()$% &'()$% &'()$% !"#$% !"#$% #$(" %$(" &$(" '$(" !" #$'" &$'" #$&" %$&" #$%" #" !" [Beal, ¡’10; ¡Beal ¡et ¡al., ¡SCW ¡14] ¡ &'()$% &'()$%
Instantiation: Proto Global ¡ ¡ ¡ ¡Local ¡ ¡ ¡Discrete ¡ (def gradient (src) ...) (def distance (src dst) ...) evalua0on ¡ (def dilate (src n) (<= (gradient src) n)) (def channel (src dst width) (let* ((d (distance src dst)) global ¡to ¡local ¡ (trail (<= (+ (gradient src) compila0on ¡ (gradient dst)) d))) plaJorm ¡ device ¡ (dilate trail width))) specificity ¡& ¡ op0miza0on ¡ neighborhood ¡ discrete ¡ approxima0on ¡ Device ¡ Kernel ¡ http://proto.bbn.com/ [Beal ¡& ¡Bachrach, ¡'06] ¡
Instantiation: Protelis • Java-hosted & integrated • Java-like syntax • Eclipse support Architecture: ¡ Protelis)Program) Protelis)Parser) Protelis)Program) Simula/on)Script) Protelis)Program) Enterprise& Protelis'Parser' Simula8on* Protelis) Protelis*Parser* Other& Server& Builder* Devices& Interpreter) Protelis' Other& Environment) Simulated* Protelis* Managers& Interpreter' Service' Variables) Network* Interpreter* Manager' Protelis)Device) Daemon' Environment' Simulated* Environment* Variables' Environment* Variables* Status,' Start/Stop' Sockets' Signals' Protelis'Device' Protelis*Device* Alchemist* Networked' Other& Daemon'Device' Simulator* Simulated*Device* Services& Service' [Pianini, ¡Viroli, ¡& ¡Beal, ¡SAC ¡‘15] ¡
Using Protelis in your projects http://protelis.org
Summary • Aggregate programming addresses emerging networked computation challenges by separating challenges and raising to a more natural abstraction level • Field calculus is a simple, universal model for aggregate programming • Protelis is a field calculus implementation integrated with Java
Recommend
More recommend