distributed systems basic algorithms · network as a graph • network is a graph : g = (v,e) •...

54
Distributed Systems Basic Algorithms Rik Sarkar University of Edinburgh 2016/2017

Upload: others

Post on 01-Oct-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

DistributedSystems

BasicAlgorithmsRikSarkar

UniversityofEdinburgh

2016/2017

Page 2: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

DistributedComputaEon

•  Howtosendmessagestoallnodesefficiently•  Howtocomputesumsofvaluesatallnodesefficiently

•  Networkasagraph•  BroadcasEngmessages•  CompuEngsumsinatree•  CompuEngtreesinanetwork•  CommunicaEoncomplexity

DistributedSystems,Edinburgh,2016

Ref:NL

Page 3: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

Networkasagraph•  Networkisagraph:G=(V,E)•  Eachvertex/nodeisacomputer/process•  EachedgeiscommunicaEonlinkbetween2nodes•  EverynodehasaUniqueidenEfierknowntoitself.

–  OVenused1,2,3,…n•  Everynodeknowsitsneighbors–thenodesitcanreach

directlywithoutneedingothernodestoroute–  Edgesincidentonthevertex–  Forexample,inLANorWLAN,throughlisteningtothebroadcastmedium

–  Orbyexplicitlyasking:Everyonethatreceivesthismessage,pleasereportback

•  Butanodedoesnotknowtherestofthenetwork

DistributedSystems,Edinburgh,2016

Page 4: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

Example:Unitdiskgraphs

•  Supposeallnodesarewireless•  Eachcancommunicatewithnodeswithindistancer.

•  Say,r=1

•  UDGisamodel•  Notperfect

•  Ingeneral,networkscanbeanygraph

DistributedSystems,Edinburgh,2016

Page 5: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

Directedgraphs

•  WhenAcansendmessagetoB,butBcannotsendmessagetoA

•  Forexample,inwirelesstransmission,ifBisinA’srange,butAisnotinB’srange

DistributedSystems,Edinburgh,2016

BA

Page 6: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

Directedgraphs

•  WhenAcansendmessagetoB,butBcannotsendmessagetoA

•  OrifprotocolortechnologylimitaEonspreventBfromcommunicaEngwithA

DistributedSystems,Edinburgh,2016

BA

Page 7: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

Directedgraphs

•  Protocolsmorecomplex•  Needsmoremessages

DistributedSystems,Edinburgh,2016

Page 8: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

Networkasagraph•  Distance/costbetweennodespandqinthenetwork– Numberofedgesontheshortestpathbetweenpandq(whenalledgesaresame:unweighted)

•  SomeEmes,edgescanbeweighted–  Eachedgee=(a,b)hasaweightw(e)– w(e)isthecostofusingthecommunicaEonlinke(maybelengthe)

– Distance/costbetweenpandqistotalweightofedgesonthepathfromptoqwithleastweight

DistributedSystems,Edinburgh,2016

Page 9: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

Networkasagraph

•  Diameter–  Themaximumdistancebetween2nodesinthenetwork

•  Radius–  Halfthediameter

•  Spanningtreeofagraph:–  Asubgraphwhichisatree,andreachesallnodesofthegraph

–  Ifnetworkhasnnodes•  Howmanyedgesdoesaspanningtreehave?

DistributedSystems,Edinburgh,2016

Page 10: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

CompuEngsumsinatree

•  Supposerootwantstoknowsumofvaluesatallnodes

DistributedSystems,Edinburgh,2016

root

Page 11: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

CompuEngsumsinatree•  Supposerootwantstoknowsumofvaluesatallnodes

•  Itsends“compute”messagetoallchildren

•  Theyforwardthemessagetoalltheirchildren(unlessitisaleafnode)

•  Thevaluesmoveupwardfromleaves

•  Eachnodeaddsvaluesfromallchildrenanditsownvalue

•  Sendsittoitsparent

DistributedSystems,Edinburgh,2016

root

Page 12: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

CompuEngsumsinatree

•  Whatcanyoucomputeotherthansums?

•  Howmanymessagesdoesittake?

•  HowmuchEmedoesittake?

DistributedSystems,Edinburgh,2016

root

Page 13: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

CommunicaEoncomplexity

•  UsedtorepresentcommunicaEoncostforgeneralscenarios

•  CalledCommunicaEonComplexityorAsymptoEccommunicaEoncomplexity

•  UsebigohnotaEon:O

DistributedSystems,Edinburgh,2016

Page 14: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

Bigoh–upperbounds•  Forasystemofnnodes,•  CommunicaEoncomplexityc(n)isO(f(n))means:– ThereareconstantsaandN,suchthat:

– Forn>N:c(n)<a*f(n)

f(n)

c(n)

NAllowingsomeiniEalirregularity,‘c(n)’isnotbiggerthanaconstantEmes‘f(n)’Inthelongrun,c(n)doesnotgrowfasterthanf(n)

a*f(n)

DistributedSystems,Edinburgh,2016

Page 15: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

Examples

•  3n=O(?)•  1000n=O(?)•  n2/5=O(?)•  10logn=O(?)•  2n3+n+logn+200=O(?)•  15=O(?)

DistributedSystems,Edinburgh,2016

Page 16: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

Examples

•  3n=O(n)•  1000n=O(n)•  n2/5=O(n2)•  10logn=O(logn)•  2n3+n+logn+200=O(n3)•  15oranyotherconstant=O(1)

DistributedSystems,Edinburgh,2016

Page 17: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

Example1

•  ‘Star’network•  CompuEngsumofallvalues•  CommunicaEoncomplexity:O(n)

Server

DistributedSystems,Edinburgh,2016

Page 18: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

Example2a•  ‘Chain’topologynetwork•  Simpleprotocolwhereeveryonesendsvaluetoserver

•  CommunicaEoncomplexity:?

Server

DistributedSystems,Edinburgh,2016

Page 19: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

Example2a•  ‘Chain’topologynetwork•  Simpleprotocolwhereeveryonesendsvaluetoserver

•  CommunicaEoncomplexity:1+2+…+n=O(n2)

Server

DistributedSystems,Edinburgh,2016

Page 20: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

Example2b•  ‘Chain’network•  Protocolwhereeachnodewaitsforsumofpreviousvaluesandsends

•  CommunicaEoncomplexity:1+1+…+1=O(n)

Server

DistributedSystems,Edinburgh,2016

Page 21: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

CompuEngsumsinatree

•  Howmanymessagesdoesittake?

•  HowmuchEmedoesittake?

DistributedSystems,Edinburgh,2016

root

Page 22: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

GlobalMessagebroadcast•  Messagemustreachallnodesinthenetwork– DifferentfrombroadcasttransmissioninLAN– Allnodesinalargenetworkcannotbereachedwithsingletransmission

DistributedSystems,Edinburgh,2016

Source

Page 23: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

GlobalMessagebroadcast•  Messagemustreachallnodesinthenetwork– DifferentfrombroadcasttransmissioninLAN– Allnodesinalargenetworkcannotbereachedwithsingletransmissions

DistributedSystems,Edinburgh,2016

Source

Page 24: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

FloodingforBroadcast

•  ThesourcesendsaFloodmessagetoallneighbors

•  Themessagehas– TypeFlood– Uniqueid:(sourceid,messageseq)– Data

DistributedSystems,Edinburgh,2016

Page 25: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

FloodingforBroadcast

•  ThesourcesendsaFloodmessage,withauniquemessageidtoallneighbors

•  Everynodepthatreceivesafloodmessagem,doesthefollowing:–  Ifm.idwasseenbefore,discardm– Otherwise,Addm.idtolistofpreviouslyseenmessagesandsendmtoallneighborsofp

DistributedSystems,Edinburgh,2016

Page 26: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

Floodingforbroadcast

•  Storage– Eachnodeneedstostorealistoffloodidsseenbefore

–  Ifaprotocolrequiresxfloods,theneachnodemuststorexids•  (thereisawaytoreducethis.Think!)

DistributedSystems,Edinburgh,2016

Page 27: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

AssumpEons

•  Weareassuming:– NodesareworkinginsynchronouscommunicaDonrounds(e.g.transmissionsoccurinintervalsof1secondexactly)

– MessagesfromallneighborsarriveatthesameEme,andprocessedtogether

–  Ineachround,eachnodecansuccessfullysend1messagetoeachneighbor

– AnynecessarycomputaEoncanbecompletedbeforethenextround

DistributedSystems,Edinburgh,2016

Page 28: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

CommunicaEoncomplexity

•  Thethemessage/communicaEoncomplexityis:

DistributedSystems,Edinburgh,2016

Page 29: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

CommunicaEoncomplexity

•  Thethemessage/communicaEoncomplexityis:– O(|E|)

DistributedSystems,Edinburgh,2016

Page 30: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

CommunicaEoncomplexity

•  Thethemessage/communicaEoncomplexityis:– O(|E|)– Worstcase:O(n2)

DistributedSystems,Edinburgh,2016

Page 31: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

ReducingCommunicaEoncomplexity(slightly)

•  Nodepneednotsendmessagemtoanynodefromwhichithasalreadyreceivedm– Needstokeeptrackofwhichnodeshavesentthemessage

– Savessomemessages– DoesnotchangeasymptoEccomplexity

DistributedSystems,Edinburgh,2016

Page 32: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

Timecomplexity

•  Thenumberofroundsneededtoreachallnodes:diameterofG

DistributedSystems,Edinburgh,2016

Page 33: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

CompuEngTreefromanetwork

•  BFStree– TheBreadthfirstsearchtree– Withaspecifiedrootnode

DistributedSystems,Edinburgh,2016

Page 34: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

BFSTree

•  Breadthfirstsearchtree– Everynodehasaparentpointer– Andzeroormorechildpointers

– BFSTreeconstrucEonalgorithmsetsthesepointers

DistributedSystems,Edinburgh,2016

Page 35: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

BFSTreeConstrucEonalgorithm•  Breadthfirstsearchtree–  Theroot(source)nodedecidestoconstructatree– Usesfloodingtoconstructatree–  Everynodepongepngthemessageforwardstoallneighbors

– AddiEonally,everynodepstoresparentpointer:nodefromwhichitfirstreceivedthemessage•  IfmulEpleneighborshadfirstsentpthemessageinthesameround,chooseparentarbitrarily.E.g.nodewithsmallestid

–  pinformsitsparentoftheselecEon•  Parentcreatesachildpointertop

DistributedSystems,Edinburgh,2016

Page 36: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

BFSTree

•  Property:BFStreeisashortestpathtree– Forsourcesandanynodep– TheshortestpathbetweensandpiscontainedintheBFStree

DistributedSystems,Edinburgh,2016

Page 37: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

Time&messagecomplexity

•  AsymptoEcallySameasFlooding

DistributedSystems,Edinburgh,2016

root

Page 38: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

Treebasedbroadcast

•  Sendmessagetoallnodesusingtree– BFStreeisaspanningtree:connectsallnodes

•  Floodingonthetree

•  Receivemessagefromparent,sendtochildren

DistributedSystems,Edinburgh,2016

root

Page 39: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

Treebasedbroadcast

•  Simplerthanflooding:sendmessagetoallchildren

•  CommunicaEon:Numberofedgesinspanningtree:n-1

DistributedSystems,Edinburgh,2016

Page 40: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

AggregaEon:Findthesumofvaluesatallnodes

•  WithBFStree

•  Startfromleafnodes– Nodeswithoutchildren– Sendthevaluetoparent

•  Everyothernode:– Waitforallchildrentoreport– Sumvaluesfromchildren+ownvalue– Sendtoparent

DistributedSystems,Edinburgh,2016

Page 41: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

AggregaEon

•  Withoutthetree•  Floodfromallnodes:– O(|E|)costpernode– O(n*|E|)totalcost:expensive– Eachnodeneedstostorefloodidsfromnnodes

•  RequiresΩ(n)storageateachnode– Goodfaulttolerance

•  IfafewnodesfailduringoperaEon,alltherestsEllgetsomevalue

DistributedSystems,Edinburgh,2016

Page 42: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

AggregaEon

•  WithTree

•  AlsocalledConvergecast

DistributedSystems,Edinburgh,2016

Page 43: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

AggregaEon•  WithTree

•  Oncetreeisbuilt,anynodecanuseforbroadcast–  Justfloodonthetree

•  Anynodecanuseforconvergecast–  FirstfloodamessageonthetreerequesEngdata– Nodesstoreparentpointer–  Thenreceivedata

•  WhatisthedrawbackoftreebasedaggregaEon?

DistributedSystems,Edinburgh,2016

Page 44: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

AggregaEon•  WithTree

•  Oncetreeisbuilt,anynodecanuseforbroadcast–  Justfloodonthetree

•  Anynodecanuseforconvergecast–  FirstfloodamessageonthetreerequesEngdata–  Nodesstoreparentpointer–  Thenreceivedata

•  Faulttolerancenotverygood–  Ifanodefails,themessagesinitssubtreewillbelost–  WillneedtorebuildthetreeforfutureoperaEons

DistributedSystems,Edinburgh,2016

Page 45: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

BFStreescanbeusedforrouEng•  Fromeachnode,createaseparateBFStree•  EachnodestoresaparentpointercorrespondingtoeachBFStree

•  ActsasrouEngtable

DistributedSystems,Edinburgh,2016

1 4

2 4

3 4

4 4

1 3

2 3

3 3

5 5

1 1

2 2

4 4

5 4

2 2

3 3

4 3

5 31

2

4

3

5

1 1

3 3

4 3

5 3 DistributedSystems,Edinburgh,2014 45

Page 46: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

BFStreescanbeusedforrouEng•  Fromeachnode,createaseparateBFStree•  EachnodestoresaparentpointercorrespondingtoeachBFStree

•  ActsasrouEngtable•  O(n*|E|)messagecomplexityincompuEngrouEngtable

DistributedSystems,Edinburgh,2014 46DistributedSystems,Edinburgh,2016

Page 47: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

ObservaEononcomplexity

•  Supposec(n)=n– Thenc(n)isO(n)andalsoO(n2)–  Although,whenweaskforthecomplexity,wearelookingfortheEghtestpossiblebound,whichisO(n)

DistributedSystems,Edinburgh,2016

Page 48: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

BigΩ–lowerbounds•  Forasystemofnnodes,•  CommunicaEoncomplexityc(n)isΩ(f(n))means:– ThereareconstantsaandN,suchthat:

– Forn>N:b*f(n)<c(n)

f(n)c(n)

NAllowingsomeiniEalirregularity,‘c(n)’isnotsmallerthanaconstantEmes‘f(n)’Inthelongrun,f(n)doesnotgrowfasterthanc(n)

b*f(n)

DistributedSystems,Edinburgh,2016

Page 49: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

Bigθ–Eghtbounds:bothOandΩ•  Forasystemofnnodes,•  CommunicaEoncomplexityc(n)isθ(f(n))means:– Thereareconstantsa,bandN,suchthat:

– Forn>N:b*f(n)<c(n)<a*f(n)

f(n)c(n)

NAllowingsomeiniEalirregularity,c(n)andf(n)areWithinconstantfactorsofeachother.Inthelongrun,c(n)growsatsamerateasf(n),uptoconstantfactors.

b*f(n)

a*f(n)

DistributedSystems,Edinburgh,2016

Page 50: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

BitcomplexityofcommunicaEon•  WehaveassumedthateachcommunicaEonis1message,

andwecountedthemessages•  SomeEmes,communicaEonisevaluatedbybitcomplexity

–thenumberofbitscommunicated•  Thisisdifferentfrommessagecomplexitybecausea

messagemayhavenumberofbitsthatdependonnor|E|•  Forexample,nodeidsinmessagehavesizeΘ(logn)

•  InpracEcethisismaynotbecriEcalsincelognismuchsmallerthanpacketsizes,soitdoesnotchangethenumberofpacketscommunicated

•  ButdependingonwhatotherdatathealgorithmiscommunicaEng,sizesofmessagesmaymaxer

DistributedSystems,Edinburgh,2016

Page 51: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

Sizeofids

•  Inanetworkofnnodes•  EachnodeidneedsΘ(logn)(thatis,bothO(logn)andΩ(logn))bitsforstorage– ThebinaryrepresentaEonofnneedslog2nbits

•  Ω–sinceweneedatleastthismanybits– Mayvarybyconstantfactorsdependingonbaseoflogarithm

DistributedSystems,Edinburgh,2016

Page 52: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

CompuEngTrees:

•  Whatiftheedgeshaveweights?

DistributedSystems,Edinburgh,2016

Page 53: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

AggregaEonusingTrees:

•  Whatiftheedgeshaveweights?•  ThecostmaynotbeO(n)sinceweightscanbehigher

•  Howtogetthebestperformance?

DistributedSystems,Edinburgh,2016

Page 54: Distributed Systems Basic Algorithms · Network as a graph • Network is a graph : G = (V,E) • Each vertex/node is a computer/process • Each edge is communicaon link between

Minimumspanningtreeis

•  Aspanningtree(reachesallnodes)•  Withminimumpossibletotalweight

•  Howcanwecomputeaminimumspanningtreeefficientlyinadistributedsystem?

•  (remember,anodeknowsonlyitsneighborsandedgeweights)

DistributedSystems,Edinburgh,2016