SlideShare a Scribd company logo
1 of 63
Download to read offline
Aggregate Processes in Field Calculus
Roberto Casadei1
, Mirko Viroli1
, Giorgio Audrito2
,
Danilo Pianini1
, Ferruccio Damiani2
1
ALMA MATER STUDIORUM–Università di Bologna, Cesena, Italy
2
Università di Torino, Italy
COORDINATION’19, Copenaghen
R. Casadei Introduction Contribution Evaluation Wrap-up 1/62
Motivation Aggregate Computing
Outline
1 Introduction
Motivation
Background: Aggregate Computing
2 Contribution
3 Evaluation
4 Wrap-up
R. Casadei Introduction Contribution Evaluation Wrap-up 2/62
Motivation Aggregate Computing
Outline
1 Introduction
Motivation
Background: Aggregate Computing
2 Contribution
3 Evaluation
4 Wrap-up
R. Casadei Introduction Contribution Evaluation Wrap-up 3/62
Motivation Aggregate Computing
concurrent
collective adaptive computations
R. Casadei Introduction Contribution Evaluation Wrap-up 4/62
Motivation Aggregate Computing
concurrent
collective adaptive computations
R. Casadei Introduction Contribution Evaluation Wrap-up 5/62
Motivation Aggregate Computing
concurrent
collective adaptive computations
move in flocking formation
detect or estimate something
elect leader
organise teams for missions departing from the flock
R. Casadei Introduction Contribution Evaluation Wrap-up 6/62
Motivation Aggregate Computing
concurrent
collective adaptive computations
move in flocking formation ...while also, dynamically...
detect or estimate something
elect leader
organise teams for missions departing from the flock
R. Casadei Introduction Contribution Evaluation Wrap-up 7/62
Motivation Aggregate Computing
concurrent
collective adaptive computations
move in flocking formation ...while also, dynamically...
detect or estimate something
elect leader
organise teams for missions departing from the flock
R. Casadei Introduction Contribution Evaluation Wrap-up 8/62
Motivation Aggregate Computing
concurrent
collective adaptive computations
move in flocking formation ...while also, dynamically...
detect or estimate something
elect leader
organise teams for missions departing from the flock
R. Casadei Introduction Contribution Evaluation Wrap-up 9/62
Motivation Aggregate Computing
concurrent
collective adaptive computations
move in flocking formation ...while also, dynamically...
detect or estimate something
elect leader
organise teams for missions departing from the flock
R. Casadei Introduction Contribution Evaluation Wrap-up 10/62
Motivation Aggregate Computing
concurrent
collective adaptive computations
Roberto Casadei, Danilo Pianini, Mirko Viroli, and Antonio Natali. “Self-organising
Coordination Regions: A Pattern for Edge Computing”. In: International Conference
on Coordination Languages and Models. Springer. 2019 [coord19scr]
R. Casadei Introduction Contribution Evaluation Wrap-up 11/62
Motivation Aggregate Computing
Outline
1 Introduction
Motivation
Background: Aggregate Computing
2 Contribution
3 Evaluation
4 Wrap-up
R. Casadei Introduction Contribution Evaluation Wrap-up 12/62
Motivation Aggregate Computing
Aggregate Computing [ieeecom; coord18a]
programming paradigm for CAS
Mirko Viroli, Jacob Beal, Ferruccio Damiani, Giorgio Audrito, Roberto Casadei, and
Danilo Pianini. “From Field-Based Coordination to Aggregate Computing”. In: Int.
Conf. on Coordination Languages and Models. Springer. 2018
R. Casadei Introduction Contribution Evaluation Wrap-up 13/62
Motivation Aggregate Computing
Aggregate Computing [ieeecom; coord18a]
functional, macro approach
computational field calculus (FC) [tocl19Aud]
R. Casadei Introduction Contribution Evaluation Wrap-up 14/62
Motivation Aggregate Computing
Aggregate Computing [ieeecom; coord18a]
sensors
local functions
actuators
Application
Code
Developer
APIs
Field Calculus
Constructs
Resilient
Coordination
Operators
Device
Capabilities
functions repnbr
TGCfunctions
communication state
PerceptionPerception
summarize
average
regionMax
…
ActionAction StateState
Collective BehaviorCollective Behavior
distanceTo
broadcast
partition
…
timer
lowpass
recentTrue
…
collectivePerception
collectiveSummary
managementRegions
…
Crowd ManagementCrowd Management
dangerousDensity crowdTracking
crowdWarning safeDispersal
restriction
self­stabilisation
R. Casadei Introduction Contribution Evaluation Wrap-up 15/62
Motivation Aggregate Computing
Aggregate Computing [ieeecom; coord18a]
execution model (protocol)
async rounds of computation
1) full run of “aggregate program” against “local context”
device state
sensor readings
neighbourhood coordination data
2) broadcast coordination data to neighbours
R. Casadei Introduction Contribution Evaluation Wrap-up 16/62
Motivation Aggregate Computing
paradigmatic example (gradient)
R. Casadei Introduction Contribution Evaluation Wrap-up 17/62
Motivation Aggregate Computing
paradigmatic example (gradient)
class MyProgram extends AggregateProgram {
override def main =
rep(Double.PositiveInfinity)(distance =>
mux(source){
0.0
}{
minHoodPlus( nbr{distance} + metric )))
}
)
}
R. Casadei Introduction Contribution Evaluation Wrap-up 18/62
Motivation Aggregate Computing
paradigmatic example (gradient)
abstraction & compositionality
class MyProgram extends AggregateProgram {
def gradient(source: Boolean, metric: => Double): Double =
rep(Double.PositiveInfinity)(distance =>
mux(source){
0.0
}{ minHoodPlus( nbr{distance} + metric ))) }
)
override def main =
branch(gradient(source) < threshold){ /*..*/ }{ /*..*/ }
}
R. Casadei Introduction Contribution Evaluation Wrap-up 19/62
Motivation Aggregate Computing
nice things about aggregate
computing
predictable composition of emergent behaviour
[tocl19Aud]
declarativity [VCP16] flexibility in execution
formal properties: self-stabilization [tomacs18Vir],
eventual consistency [taas17]
practical (see PLs/tools like ScaFi [CPV16])
much more [coord18a]
R. Casadei Introduction Contribution Evaluation Wrap-up 20/62
Motivation Aggregate Computing
also: FC is space-time
universal [coord18b]
however
describing multiple dynamic computations on dynamic
domains is practically unfeasible
R. Casadei Introduction Contribution Evaluation Wrap-up 21/62
Motivation Aggregate Computing
also: FC is space-time
universal [coord18b]
however
describing multiple dynamic computations on dynamic
domains is practically unfeasible
R. Casadei Introduction Contribution Evaluation Wrap-up 22/62
Motivation Aggregate Computing
also: FC is space-time
universal [coord18b]
however
describing multiple dynamic computations on dynamic
domains is practically unfeasible
R. Casadei Introduction Contribution Evaluation Wrap-up 23/62
Motivation Aggregate Computing
example: multi-gradient
R. Casadei Introduction Contribution Evaluation Wrap-up 24/62
Motivation Aggregate Computing
example: multi-gradient
(gradient(s1), gradient(s2), ..)
static
all gradients have full domain
R. Casadei Introduction Contribution Evaluation Wrap-up 25/62
Motivation Aggregate Computing
example: multi-gradient
def limitedGradient(src: Boolean, size: Double, time: Int,
start: => Boolean, iff: => Boolean) =
rep((OUT,inf,time,true)){ case (status,g,t,notYetStarted) => {
branch(start | (src | excludingSelf.anyHood(nbr{status}==IN
& nbr{g}+nbrRange<size))
& iff
&& (t>0 || notYetStarted)){
(IN,gradient(src),T(time),false)
}{ (OUT, inf, time, notYetStarted) }
}}
(limitedGradient(sense1, 20, 500,
start = captureChange(sense1) && sense1),
limitedGradient(sense2, 30, 500,
start = captureChange(sense2) && sense2,
iff = g1._2!=0))
dynamic domain and lifecycle
still a static list of computations
R. Casadei Introduction Contribution Evaluation Wrap-up 26/62
Motivation Aggregate Computing
example: multi-gradient
sources.map(s => gradient(s))
// (1) we need to align on some computation ID (e.g., 's')
// (2) 'sources' field determines lifecycle & domain
need to extend FC machinery for compositionality to
support dynamic collections of computations
need to simplify management of dynamic domains
R. Casadei Introduction Contribution Evaluation Wrap-up 27/62
Outline
1 Introduction
2 Contribution
3 Evaluation
4 Wrap-up
R. Casadei Introduction Contribution Evaluation Wrap-up 28/62
aggregate process
a dynamic collective computation (a “bubble”)
− similar to OS processes but running on aggregates
features
R. Casadei Introduction Contribution Evaluation Wrap-up 29/62
aggregate process
a dynamic collective computation (a “bubble”)
− similar to OS processes but running on aggregates
features
process lifecycle
– generation
– spreading/shrinking (border management)
– destruction
process logic
process interaction
R. Casadei Introduction Contribution Evaluation Wrap-up 30/62
aggregate process
a dynamic collective computation (a “bubble”)
− similar to OS processes but running on aggregates
features
process lifecycle
– generation
– spreading/shrinking (border management)
– destruction
process logic
process interaction
R. Casadei Introduction Contribution Evaluation Wrap-up 31/62
aggregate process
a dynamic collective computation (a “bubble”)
− similar to OS processes but running on aggregates
features
process lifecycle
– generation
– spreading/shrinking (border management)
– destruction
process logic
process interaction
R. Casadei Introduction Contribution Evaluation Wrap-up 32/62
new spawn primitive
Syntax:
P ::= F e program F::= def d(x) {e} function declaration
e ::= x v (x)
τ
=> e e(e) rep(e){x => e} nbr{e} spawn(e, e, e) expression
v::= φ value φ::= δ → neighbouring field value
::= f c( ) local value f::= b d (x)
τ
=> e function value
R. Casadei Introduction Contribution Evaluation Wrap-up 33/62
new spawn primitive
Auxiliary functions:
args((x)
τ
=> e) = x body((x)
τ
=> e) = e name((x)
τ
=> e) = τ
args(d) = x if def d(x){e} body(d) = e if def d(x){e} name(d) = d
ρ(v θ ) = v name(b) = b
πi (v θ1, . . . , θn ) = θi if 1 ≤ i ≤ n else •
πf
(v θ1, . . . , θn ) = θn if name(ρ(θ1)) = name(f) else •
πk
(v → θ) = θi s.t. vi = k if it exists else •
F(θ) = v θ if θ = pair(v, True) θ else •
For aux ∈ ρ, πi , πf
, πk
, F :



aux(•) = •
aux(δ → θ, Θ) = aux(Θ) if aux(θ) = •
aux(δ → θ, Θ) = δ → aux(θ), aux(Θ) if aux(θ) = •
Rules for expression evaluation: δ; Θ; σ e ⇓ θ
[E-SPAWN]
δ; πi (Θ); σ ei ⇓ θi
for i ∈ 1, 2, 3
k1, . . . , kn = ρ(θ2
) ∪ {dom(π4(Θ(δ ))) for δ ∈ dom(Θ)}
δ; πki (π4(Θ)); σ ρ(θ1)(ki , ρ(θ3)) ⇓ θi for i ∈ 1, . . . , n
δ; Θ; σ spawn(e1, e2, e3) ⇓ F(k → ρ(θ)) θ1
, θ2
, θ3
, F(k → θ)
R. Casadei Introduction Contribution Evaluation Wrap-up 34/62
new spawn primitive
implemented in ScaFi [CPV16]
def spawn[K,A,R](process: K => A => (R,Boolean),
newKeys: Set[K],
args: A): Map[K,R]
key as process instance ID and construction parameter
boolean status to express if in or out of the bubble
R. Casadei Introduction Contribution Evaluation Wrap-up 35/62
dynamics (intuition)
the entire network run the spawn expression
no active process instance yet
R. Casadei Introduction Contribution Evaluation Wrap-up 36/62
dynamics (intuition)
G is productive in device 1
a new P instance with PID 1 is injected
R. Casadei Introduction Contribution Evaluation Wrap-up 37/62
dynamics (intuition)
process 1 automatically spreads from participants
nbrs may opt out to prevent expansion (“live border”)
R. Casadei Introduction Contribution Evaluation Wrap-up 38/62
dynamics (intuition)
process 1 shrinks a little (border retracts)
R. Casadei Introduction Contribution Evaluation Wrap-up 39/62
dynamics (intuition)
G is productive in device 3
a new, concurrent process springs out
R. Casadei Introduction Contribution Evaluation Wrap-up 40/62
dynamics (intuition)
multiple process instances may intersect
process 1 about to close
R. Casadei Introduction Contribution Evaluation Wrap-up 41/62
dynamics (intuition)
process 1 fades away
process 3 expands, stretching the border out
R. Casadei Introduction Contribution Evaluation Wrap-up 42/62
example: gossip replication [coord16]
k running replicates, staggered by interval p
Gossip #1Gossip #1
Gossip #3Gossip #3
Gossip #2Gossip #2
…Time
p
k=3
Gossip #4Gossip #4
R. Casadei Introduction Contribution Evaluation Wrap-up 43/62
example: gossip replication [coord16]
k running replicates, staggered by interval p
def replicated[A,R](proc: A => R)
(argument: A, p: Double, k: Int) = {
val lastPid = clock(p, dt())
spawn[Long,A,R](pid => arg => (proc(arg), pid > lastPid+k),
Set(lastPid),
argument)
}
R. Casadei Introduction Contribution Evaluation Wrap-up 44/62
APIs on top of spawn
work-in-progress
Ǧ statuses to express the stance wrt a process instance
R. Casadei Introduction Contribution Evaluation Wrap-up 45/62
APIs on top of spawn
work-in-progress
Ǧ statuses to express the stance wrt a process instance
R. Casadei Introduction Contribution Evaluation Wrap-up 46/62
APIs on top of spawn
work-in-progress
Ǧ statuses to express the stance wrt a process instance
def statusSpawn[K,A,R](process: K=>A=>(R,Status),
keys: Set[K],
args: A): Map[K,R] =
spawn[K,A,Option[R]](k => a =>
handleOutput(handleTermination(process(k)(a))),
keys, args
).collectValues { case Some(p) => p }
R. Casadei Introduction Contribution Evaluation Wrap-up 47/62
example: multi-gradient
statusSpawn[ID,ID=>Double,Double](src => limit =>
gradient(src==mid,nbrRange) match {
case g if src==mid && !isSrc => (g, Terminated)
case g if g>limit(src) => (g, External) // out
case g => (g, Output) // in
},
newKeys = if(isSrc) Set(mid) else Set.empty,
args = maxExtension)
R. Casadei Introduction Contribution Evaluation Wrap-up 48/62
example: multi-gradient
statusSpawn[ID,ID=>Double,Double](src => limit =>
gradient(src==mid,nbrRange) match {
case g if src==mid && !isSrc => (g, Terminated)
case g if g>limit(src) => (g, External) // out
case g => (g, Output) // in
},
newKeys = if(isSrc) Set(mid) else Set.empty,
args = maxExtension)
R. Casadei Introduction Contribution Evaluation Wrap-up 49/62
Outline
1 Introduction
2 Contribution
3 Evaluation
4 Wrap-up
R. Casadei Introduction Contribution Evaluation Wrap-up 50/62
simulation framework
ScaFi
https://github.com/scafi/scafi
Alchemist simulator + ScaFi-Alchemist incarnation
https://github.com/AlchemistSimulator/Alchemist
repo
https://bitbucket.org/metaphori/experiment-spawn
R. Casadei Introduction Contribution Evaluation Wrap-up 51/62
opportunistic instant messaging
R. Casadei Introduction Contribution Evaluation Wrap-up 52/62
opportunistic instant messaging
Scenario
dense network of devices
no Internet access (P2P only)
senders, recipients, coordinators
flood chat vs. spawn chat
R. Casadei Introduction Contribution Evaluation Wrap-up 53/62
opportunistic instant messaging
R. Casadei Introduction Contribution Evaluation Wrap-up 54/62
opportunistic instant messaging
R. Casadei Introduction Contribution Evaluation Wrap-up 55/62
drone swarm for fire detection
R. Casadei Introduction Contribution Evaluation Wrap-up 56/62
drone swarm for fire detection
Scenario
200 UAVs
start at base station, 10 random waypoints, and back
naive gossip vs. S+C+G vs. replicated gossip
R. Casadei Introduction Contribution Evaluation Wrap-up 57/62
drone swarm for fire detection
R. Casadei Introduction Contribution Evaluation Wrap-up 58/62
Outline
1 Introduction
2 Contribution
3 Evaluation
4 Wrap-up
R. Casadei Introduction Contribution Evaluation Wrap-up 59/62
key points
aggregate processes model dynamic, concurrent
collective adaptive behaviours carried out by
dynamic formations of devices
implementation over field calculus and ScaFi
largely extend practical expressivity
future work
API & combinators
test on more advanced coordination scenarios
R. Casadei Introduction Contribution Evaluation Wrap-up 60/62
key points
aggregate processes model dynamic, concurrent
collective adaptive behaviours carried out by
dynamic formations of devices
implementation over field calculus and ScaFi
largely extend practical expressivity
future work
API & combinators
test on more advanced coordination scenarios
R. Casadei Introduction Contribution Evaluation Wrap-up 61/62
thanks!
any questions?
R. Casadei Introduction Contribution Evaluation Wrap-up 62/62
References
[coord16] Danilo Pianini, Jacob Beal, and Mirko Viroli. “Improving Gossip Dynamics Through Overlapping
Replicates”. In: COORDINATION 2016. Ed. by Alberto Lluch Lafuente and José Proença.
Vol. 9686. Lecture Notes in Computer Science. Springer, 2016, pp. 192–207. ISBN:
978-3-319-39518-0. DOI: 10.1007/978-3-319-39519-7_12. URL:
http://dx.doi.org/10.1007/978-3-319-39519-7_12.
[coord18a] Mirko Viroli et al. “From Field-Based Coordination to Aggregate Computing”. In: Int. Conf. on
Coordination Languages and Models. Springer. 2018, pp. 252–279.
[coord18b] Giorgio Audrito et al. “Space-time universality of field calculus”. In: International Conference on
Coordination Languages and Models. Springer. 2018, pp. 1–20.
[coord19scr] Roberto Casadei et al. “Self-organising Coordination Regions: A Pattern for Edge Computing”. In:
International Conference on Coordination Languages and Models. Springer. 2019, pp. 182–199.
[CPV16] Roberto Casadei, Danilo Pianini, and Mirko Viroli. “Simulating large-scale aggregate MASs with
Alchemist and Scala”. In: FedCSIS, Proceedings of. IEEE. 2016, pp. 1495–1504.
[ieeecom] Jacob Beal, Danilo Pianini, and Mirko Viroli. “Aggregate Programming for the Internet of Things”. In:
IEEE Computer (2015). ISSN: 1364-503X.
[taas17] Jacob Beal et al. “Self-adaptation to device distribution in the Internet of Things”. In: ACM
Transactions on Autonomous and Adaptive Systems (TAAS) 12.3 (2017), p. 12.
[tocl19Aud] Giorgio Audrito et al. “A Higher-Order Calculus of Computational Fields”. In: ACM Transactions on
Computational Logic 20.1 (Jan. 2019), 5:1–5:55. ISSN: 1529-3785. DOI: 10.1145/3285956.
[tomacs18Vir] Mirko Viroli et al. “Engineering Resilient Collective Adaptive Systems by Self-Stabilisation”. In: ACM
Transactions on Modeling and Computer Simulation 28.2 (2018), 16:1–16:28.
[VCP16] Mirko Viroli, Roberto Casadei, and Danilo Pianini. “On execution platforms for large-scale
aggregate computing”. In: UbiComp, Proceedings of. ACM. 2016, pp. 1321–1326.
R. Casadei Appendix References 63/62

More Related Content

Similar to Aggregate Processes in Field Calculus

Self-Organisation Programming: a Functional Reactive Macro Approach (FRASP) [...
Self-Organisation Programming: a Functional Reactive Macro Approach (FRASP) [...Self-Organisation Programming: a Functional Reactive Macro Approach (FRASP) [...
Self-Organisation Programming: a Functional Reactive Macro Approach (FRASP) [...Roberto Casadei
 
On Execution Platforms for Large-Scale Aggregate Computing
On Execution Platforms for Large-Scale Aggregate ComputingOn Execution Platforms for Large-Scale Aggregate Computing
On Execution Platforms for Large-Scale Aggregate ComputingRoberto Casadei
 
Aggregate Computing Platforms: Bridging the Gaps
Aggregate Computing Platforms: Bridging the GapsAggregate Computing Platforms: Bridging the Gaps
Aggregate Computing Platforms: Bridging the GapsRoberto Casadei
 
Bridging the Pervasive Computing Gap: An Aggregate Perspective
Bridging the Pervasive Computing Gap: An Aggregate PerspectiveBridging the Pervasive Computing Gap: An Aggregate Perspective
Bridging the Pervasive Computing Gap: An Aggregate PerspectiveRoberto Casadei
 
Towards Aggregate Programming in Scala
Towards Aggregate Programming in ScalaTowards Aggregate Programming in Scala
Towards Aggregate Programming in ScalaRoberto Casadei
 
Aggregate Computing Research: an Overview
Aggregate Computing Research: an OverviewAggregate Computing Research: an Overview
Aggregate Computing Research: an OverviewRoberto Casadei
 
Practical Aggregate Programming in Scala
Practical Aggregate Programming in ScalaPractical Aggregate Programming in Scala
Practical Aggregate Programming in ScalaRoberto Casadei
 
FScaFi: A Core Calculus for Collective Adaptive Systems Programming
FScaFi: A Core Calculus for Collective Adaptive Systems ProgrammingFScaFi: A Core Calculus for Collective Adaptive Systems Programming
FScaFi: A Core Calculus for Collective Adaptive Systems ProgrammingRoberto Casadei
 
Digital Twins, Virtual Devices, and Augmentations for Self-Organising Cyber-P...
Digital Twins, Virtual Devices, and Augmentations for Self-Organising Cyber-P...Digital Twins, Virtual Devices, and Augmentations for Self-Organising Cyber-P...
Digital Twins, Virtual Devices, and Augmentations for Self-Organising Cyber-P...Roberto Casadei
 
Engineering Resilient Collaborative Edge-enabled IoT
Engineering Resilient Collaborative Edge-enabled IoTEngineering Resilient Collaborative Edge-enabled IoT
Engineering Resilient Collaborative Edge-enabled IoTRoberto Casadei
 
Collective Abstractions and Platforms for Large-Scale Self-Adaptive IoT
Collective Abstractions and Platforms for Large-Scale Self-Adaptive IoTCollective Abstractions and Platforms for Large-Scale Self-Adaptive IoT
Collective Abstractions and Platforms for Large-Scale Self-Adaptive IoTRoberto Casadei
 
Compositional Blocks for Optimal Self-Healing Gradients
Compositional Blocks for Optimal Self-Healing GradientsCompositional Blocks for Optimal Self-Healing Gradients
Compositional Blocks for Optimal Self-Healing GradientsRoberto Casadei
 
Programming (and Learning) Self-Adaptive & Self-Organising Behaviour with Sca...
Programming (and Learning) Self-Adaptive & Self-Organising Behaviour with Sca...Programming (and Learning) Self-Adaptive & Self-Organising Behaviour with Sca...
Programming (and Learning) Self-Adaptive & Self-Organising Behaviour with Sca...Roberto Casadei
 
Towards Reinforcement Learning-based Aggregate Computing
Towards Reinforcement Learning-based Aggregate ComputingTowards Reinforcement Learning-based Aggregate Computing
Towards Reinforcement Learning-based Aggregate ComputingGianluca Aguzzi
 
Knowledge Engineering For Automated Planning
Knowledge Engineering For Automated PlanningKnowledge Engineering For Automated Planning
Knowledge Engineering For Automated Planningahmad bassiouny
 
Knowledge Engineering For Automated Planning
Knowledge Engineering For Automated PlanningKnowledge Engineering For Automated Planning
Knowledge Engineering For Automated Planningahmad bassiouny
 
Scalable Algorithm Design with MapReduce
Scalable Algorithm Design with MapReduceScalable Algorithm Design with MapReduce
Scalable Algorithm Design with MapReducePietro Michiardi
 
Implementation of Efficiency CORDIC Algorithmfor Sine & Cosine Generation
Implementation of Efficiency CORDIC Algorithmfor Sine & Cosine GenerationImplementation of Efficiency CORDIC Algorithmfor Sine & Cosine Generation
Implementation of Efficiency CORDIC Algorithmfor Sine & Cosine GenerationIOSR Journals
 
[Paper Reading] Generalized Sub-Query Fusion for Eliminating Redundant I/O fr...
[Paper Reading] Generalized Sub-Query Fusion for Eliminating Redundant I/O fr...[Paper Reading] Generalized Sub-Query Fusion for Eliminating Redundant I/O fr...
[Paper Reading] Generalized Sub-Query Fusion for Eliminating Redundant I/O fr...PingCAP
 

Similar to Aggregate Processes in Field Calculus (20)

Self-Organisation Programming: a Functional Reactive Macro Approach (FRASP) [...
Self-Organisation Programming: a Functional Reactive Macro Approach (FRASP) [...Self-Organisation Programming: a Functional Reactive Macro Approach (FRASP) [...
Self-Organisation Programming: a Functional Reactive Macro Approach (FRASP) [...
 
On Execution Platforms for Large-Scale Aggregate Computing
On Execution Platforms for Large-Scale Aggregate ComputingOn Execution Platforms for Large-Scale Aggregate Computing
On Execution Platforms for Large-Scale Aggregate Computing
 
Aggregate Computing Platforms: Bridging the Gaps
Aggregate Computing Platforms: Bridging the GapsAggregate Computing Platforms: Bridging the Gaps
Aggregate Computing Platforms: Bridging the Gaps
 
Bridging the Pervasive Computing Gap: An Aggregate Perspective
Bridging the Pervasive Computing Gap: An Aggregate PerspectiveBridging the Pervasive Computing Gap: An Aggregate Perspective
Bridging the Pervasive Computing Gap: An Aggregate Perspective
 
Towards Aggregate Programming in Scala
Towards Aggregate Programming in ScalaTowards Aggregate Programming in Scala
Towards Aggregate Programming in Scala
 
Aggregate Computing Research: an Overview
Aggregate Computing Research: an OverviewAggregate Computing Research: an Overview
Aggregate Computing Research: an Overview
 
Partial Compilers
Partial CompilersPartial Compilers
Partial Compilers
 
Practical Aggregate Programming in Scala
Practical Aggregate Programming in ScalaPractical Aggregate Programming in Scala
Practical Aggregate Programming in Scala
 
FScaFi: A Core Calculus for Collective Adaptive Systems Programming
FScaFi: A Core Calculus for Collective Adaptive Systems ProgrammingFScaFi: A Core Calculus for Collective Adaptive Systems Programming
FScaFi: A Core Calculus for Collective Adaptive Systems Programming
 
Digital Twins, Virtual Devices, and Augmentations for Self-Organising Cyber-P...
Digital Twins, Virtual Devices, and Augmentations for Self-Organising Cyber-P...Digital Twins, Virtual Devices, and Augmentations for Self-Organising Cyber-P...
Digital Twins, Virtual Devices, and Augmentations for Self-Organising Cyber-P...
 
Engineering Resilient Collaborative Edge-enabled IoT
Engineering Resilient Collaborative Edge-enabled IoTEngineering Resilient Collaborative Edge-enabled IoT
Engineering Resilient Collaborative Edge-enabled IoT
 
Collective Abstractions and Platforms for Large-Scale Self-Adaptive IoT
Collective Abstractions and Platforms for Large-Scale Self-Adaptive IoTCollective Abstractions and Platforms for Large-Scale Self-Adaptive IoT
Collective Abstractions and Platforms for Large-Scale Self-Adaptive IoT
 
Compositional Blocks for Optimal Self-Healing Gradients
Compositional Blocks for Optimal Self-Healing GradientsCompositional Blocks for Optimal Self-Healing Gradients
Compositional Blocks for Optimal Self-Healing Gradients
 
Programming (and Learning) Self-Adaptive & Self-Organising Behaviour with Sca...
Programming (and Learning) Self-Adaptive & Self-Organising Behaviour with Sca...Programming (and Learning) Self-Adaptive & Self-Organising Behaviour with Sca...
Programming (and Learning) Self-Adaptive & Self-Organising Behaviour with Sca...
 
Towards Reinforcement Learning-based Aggregate Computing
Towards Reinforcement Learning-based Aggregate ComputingTowards Reinforcement Learning-based Aggregate Computing
Towards Reinforcement Learning-based Aggregate Computing
 
Knowledge Engineering For Automated Planning
Knowledge Engineering For Automated PlanningKnowledge Engineering For Automated Planning
Knowledge Engineering For Automated Planning
 
Knowledge Engineering For Automated Planning
Knowledge Engineering For Automated PlanningKnowledge Engineering For Automated Planning
Knowledge Engineering For Automated Planning
 
Scalable Algorithm Design with MapReduce
Scalable Algorithm Design with MapReduceScalable Algorithm Design with MapReduce
Scalable Algorithm Design with MapReduce
 
Implementation of Efficiency CORDIC Algorithmfor Sine & Cosine Generation
Implementation of Efficiency CORDIC Algorithmfor Sine & Cosine GenerationImplementation of Efficiency CORDIC Algorithmfor Sine & Cosine Generation
Implementation of Efficiency CORDIC Algorithmfor Sine & Cosine Generation
 
[Paper Reading] Generalized Sub-Query Fusion for Eliminating Redundant I/O fr...
[Paper Reading] Generalized Sub-Query Fusion for Eliminating Redundant I/O fr...[Paper Reading] Generalized Sub-Query Fusion for Eliminating Redundant I/O fr...
[Paper Reading] Generalized Sub-Query Fusion for Eliminating Redundant I/O fr...
 

More from Roberto Casadei

A Presentation of My Research Activity
A Presentation of My Research ActivityA Presentation of My Research Activity
A Presentation of My Research ActivityRoberto Casadei
 
Introduction to the 1st DISCOLI workshop on distributed collective intelligence
Introduction to the 1st DISCOLI workshop on distributed collective intelligenceIntroduction to the 1st DISCOLI workshop on distributed collective intelligence
Introduction to the 1st DISCOLI workshop on distributed collective intelligenceRoberto Casadei
 
6th eCAS workshop on Engineering Collective Adaptive Systems
6th eCAS workshop on Engineering Collective Adaptive Systems6th eCAS workshop on Engineering Collective Adaptive Systems
6th eCAS workshop on Engineering Collective Adaptive SystemsRoberto Casadei
 
Augmented Collective Digital Twins for Self-Organising Cyber-Physical Systems
Augmented Collective Digital Twins for Self-Organising Cyber-Physical SystemsAugmented Collective Digital Twins for Self-Organising Cyber-Physical Systems
Augmented Collective Digital Twins for Self-Organising Cyber-Physical SystemsRoberto Casadei
 
Tuple-Based Coordination in Large-Scale Situated Systems
Tuple-Based Coordination in Large-Scale Situated SystemsTuple-Based Coordination in Large-Scale Situated Systems
Tuple-Based Coordination in Large-Scale Situated SystemsRoberto Casadei
 
Pulverisation in Cyber-Physical Systems: Engineering the Self-Organising Logi...
Pulverisation in Cyber-Physical Systems: Engineering the Self-Organising Logi...Pulverisation in Cyber-Physical Systems: Engineering the Self-Organising Logi...
Pulverisation in Cyber-Physical Systems: Engineering the Self-Organising Logi...Roberto Casadei
 
Collective Adaptive Systems as Coordination Media: The Case of Tuples in Spac...
Collective Adaptive Systems as Coordination Media: The Case of Tuples in Spac...Collective Adaptive Systems as Coordination Media: The Case of Tuples in Spac...
Collective Adaptive Systems as Coordination Media: The Case of Tuples in Spac...Roberto Casadei
 
Testing: an Introduction and Panorama
Testing: an Introduction and PanoramaTesting: an Introduction and Panorama
Testing: an Introduction and PanoramaRoberto Casadei
 
AWS and Serverless Computing
AWS and Serverless ComputingAWS and Serverless Computing
AWS and Serverless ComputingRoberto Casadei
 
The Rust Programming Language: an Overview
The Rust Programming Language: an OverviewThe Rust Programming Language: an Overview
The Rust Programming Language: an OverviewRoberto Casadei
 
Akka Remoting and Clustering: an Introduction
Akka Remoting and Clustering: an IntroductionAkka Remoting and Clustering: an Introduction
Akka Remoting and Clustering: an IntroductionRoberto Casadei
 
Akka Actors: an Introduction
Akka Actors: an IntroductionAkka Actors: an Introduction
Akka Actors: an IntroductionRoberto Casadei
 
From Field-based Coordination to Aggregate Computing
From Field-based Coordination to Aggregate ComputingFrom Field-based Coordination to Aggregate Computing
From Field-based Coordination to Aggregate ComputingRoberto Casadei
 
Spring Boot: a Quick Introduction
Spring Boot: a Quick IntroductionSpring Boot: a Quick Introduction
Spring Boot: a Quick IntroductionRoberto Casadei
 
Introduction to cloud-native application development: with Heroku and Spring ...
Introduction to cloud-native application development: with Heroku and Spring ...Introduction to cloud-native application development: with Heroku and Spring ...
Introduction to cloud-native application development: with Heroku and Spring ...Roberto Casadei
 

More from Roberto Casadei (16)

A Presentation of My Research Activity
A Presentation of My Research ActivityA Presentation of My Research Activity
A Presentation of My Research Activity
 
Introduction to the 1st DISCOLI workshop on distributed collective intelligence
Introduction to the 1st DISCOLI workshop on distributed collective intelligenceIntroduction to the 1st DISCOLI workshop on distributed collective intelligence
Introduction to the 1st DISCOLI workshop on distributed collective intelligence
 
6th eCAS workshop on Engineering Collective Adaptive Systems
6th eCAS workshop on Engineering Collective Adaptive Systems6th eCAS workshop on Engineering Collective Adaptive Systems
6th eCAS workshop on Engineering Collective Adaptive Systems
 
Augmented Collective Digital Twins for Self-Organising Cyber-Physical Systems
Augmented Collective Digital Twins for Self-Organising Cyber-Physical SystemsAugmented Collective Digital Twins for Self-Organising Cyber-Physical Systems
Augmented Collective Digital Twins for Self-Organising Cyber-Physical Systems
 
Tuple-Based Coordination in Large-Scale Situated Systems
Tuple-Based Coordination in Large-Scale Situated SystemsTuple-Based Coordination in Large-Scale Situated Systems
Tuple-Based Coordination in Large-Scale Situated Systems
 
Pulverisation in Cyber-Physical Systems: Engineering the Self-Organising Logi...
Pulverisation in Cyber-Physical Systems: Engineering the Self-Organising Logi...Pulverisation in Cyber-Physical Systems: Engineering the Self-Organising Logi...
Pulverisation in Cyber-Physical Systems: Engineering the Self-Organising Logi...
 
Collective Adaptive Systems as Coordination Media: The Case of Tuples in Spac...
Collective Adaptive Systems as Coordination Media: The Case of Tuples in Spac...Collective Adaptive Systems as Coordination Media: The Case of Tuples in Spac...
Collective Adaptive Systems as Coordination Media: The Case of Tuples in Spac...
 
Testing: an Introduction and Panorama
Testing: an Introduction and PanoramaTesting: an Introduction and Panorama
Testing: an Introduction and Panorama
 
AWS and Serverless Computing
AWS and Serverless ComputingAWS and Serverless Computing
AWS and Serverless Computing
 
The Rust Programming Language: an Overview
The Rust Programming Language: an OverviewThe Rust Programming Language: an Overview
The Rust Programming Language: an Overview
 
Akka Remoting and Clustering: an Introduction
Akka Remoting and Clustering: an IntroductionAkka Remoting and Clustering: an Introduction
Akka Remoting and Clustering: an Introduction
 
Akka Actors: an Introduction
Akka Actors: an IntroductionAkka Actors: an Introduction
Akka Actors: an Introduction
 
From Field-based Coordination to Aggregate Computing
From Field-based Coordination to Aggregate ComputingFrom Field-based Coordination to Aggregate Computing
From Field-based Coordination to Aggregate Computing
 
NodeJS: an Introduction
NodeJS: an IntroductionNodeJS: an Introduction
NodeJS: an Introduction
 
Spring Boot: a Quick Introduction
Spring Boot: a Quick IntroductionSpring Boot: a Quick Introduction
Spring Boot: a Quick Introduction
 
Introduction to cloud-native application development: with Heroku and Spring ...
Introduction to cloud-native application development: with Heroku and Spring ...Introduction to cloud-native application development: with Heroku and Spring ...
Introduction to cloud-native application development: with Heroku and Spring ...
 

Recently uploaded

TOPIC 8 Temperature and Heat.pdf physics
TOPIC 8 Temperature and Heat.pdf physicsTOPIC 8 Temperature and Heat.pdf physics
TOPIC 8 Temperature and Heat.pdf physicsssuserddc89b
 
Microteaching on terms used in filtration .Pharmaceutical Engineering
Microteaching on terms used in filtration .Pharmaceutical EngineeringMicroteaching on terms used in filtration .Pharmaceutical Engineering
Microteaching on terms used in filtration .Pharmaceutical EngineeringPrajakta Shinde
 
Call Girls in Munirka Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Munirka Delhi 💯Call Us 🔝8264348440🔝Call Girls in Munirka Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Munirka Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Best Call Girls In Sector 29 Gurgaon❤️8860477959 EscorTs Service In 24/7 Delh...
Best Call Girls In Sector 29 Gurgaon❤️8860477959 EscorTs Service In 24/7 Delh...Best Call Girls In Sector 29 Gurgaon❤️8860477959 EscorTs Service In 24/7 Delh...
Best Call Girls In Sector 29 Gurgaon❤️8860477959 EscorTs Service In 24/7 Delh...lizamodels9
 
FREE NURSING BUNDLE FOR NURSES.PDF by na
FREE NURSING BUNDLE FOR NURSES.PDF by naFREE NURSING BUNDLE FOR NURSES.PDF by na
FREE NURSING BUNDLE FOR NURSES.PDF by naJASISJULIANOELYNV
 
Analytical Profile of Coleus Forskohlii | Forskolin .pptx
Analytical Profile of Coleus Forskohlii | Forskolin .pptxAnalytical Profile of Coleus Forskohlii | Forskolin .pptx
Analytical Profile of Coleus Forskohlii | Forskolin .pptxSwapnil Therkar
 
User Guide: Orion™ Weather Station (Columbia Weather Systems)
User Guide: Orion™ Weather Station (Columbia Weather Systems)User Guide: Orion™ Weather Station (Columbia Weather Systems)
User Guide: Orion™ Weather Station (Columbia Weather Systems)Columbia Weather Systems
 
Citronella presentation SlideShare mani upadhyay
Citronella presentation SlideShare mani upadhyayCitronella presentation SlideShare mani upadhyay
Citronella presentation SlideShare mani upadhyayupadhyaymani499
 
RESPIRATORY ADAPTATIONS TO HYPOXIA IN HUMNAS.pptx
RESPIRATORY ADAPTATIONS TO HYPOXIA IN HUMNAS.pptxRESPIRATORY ADAPTATIONS TO HYPOXIA IN HUMNAS.pptx
RESPIRATORY ADAPTATIONS TO HYPOXIA IN HUMNAS.pptxFarihaAbdulRasheed
 
User Guide: Magellan MX™ Weather Station
User Guide: Magellan MX™ Weather StationUser Guide: Magellan MX™ Weather Station
User Guide: Magellan MX™ Weather StationColumbia Weather Systems
 
THE ROLE OF PHARMACOGNOSY IN TRADITIONAL AND MODERN SYSTEM OF MEDICINE.pptx
THE ROLE OF PHARMACOGNOSY IN TRADITIONAL AND MODERN SYSTEM OF MEDICINE.pptxTHE ROLE OF PHARMACOGNOSY IN TRADITIONAL AND MODERN SYSTEM OF MEDICINE.pptx
THE ROLE OF PHARMACOGNOSY IN TRADITIONAL AND MODERN SYSTEM OF MEDICINE.pptxNandakishor Bhaurao Deshmukh
 
Call Girls In Nihal Vihar Delhi ❤️8860477959 Looking Escorts In 24/7 Delhi NCR
Call Girls In Nihal Vihar Delhi ❤️8860477959 Looking Escorts In 24/7 Delhi NCRCall Girls In Nihal Vihar Delhi ❤️8860477959 Looking Escorts In 24/7 Delhi NCR
Call Girls In Nihal Vihar Delhi ❤️8860477959 Looking Escorts In 24/7 Delhi NCRlizamodels9
 
Speech, hearing, noise, intelligibility.pptx
Speech, hearing, noise, intelligibility.pptxSpeech, hearing, noise, intelligibility.pptx
Speech, hearing, noise, intelligibility.pptxpriyankatabhane
 
Call Girls in Majnu Ka Tilla Delhi 🔝9711014705🔝 Genuine
Call Girls in Majnu Ka Tilla Delhi 🔝9711014705🔝 GenuineCall Girls in Majnu Ka Tilla Delhi 🔝9711014705🔝 Genuine
Call Girls in Majnu Ka Tilla Delhi 🔝9711014705🔝 Genuinethapagita
 
GenBio2 - Lesson 1 - Introduction to Genetics.pptx
GenBio2 - Lesson 1 - Introduction to Genetics.pptxGenBio2 - Lesson 1 - Introduction to Genetics.pptx
GenBio2 - Lesson 1 - Introduction to Genetics.pptxBerniceCayabyab1
 
Pests of jatropha_Bionomics_identification_Dr.UPR.pdf
Pests of jatropha_Bionomics_identification_Dr.UPR.pdfPests of jatropha_Bionomics_identification_Dr.UPR.pdf
Pests of jatropha_Bionomics_identification_Dr.UPR.pdfPirithiRaju
 
Scheme-of-Work-Science-Stage-4 cambridge science.docx
Scheme-of-Work-Science-Stage-4 cambridge science.docxScheme-of-Work-Science-Stage-4 cambridge science.docx
Scheme-of-Work-Science-Stage-4 cambridge science.docxyaramohamed343013
 
Pests of Blackgram, greengram, cowpea_Dr.UPR.pdf
Pests of Blackgram, greengram, cowpea_Dr.UPR.pdfPests of Blackgram, greengram, cowpea_Dr.UPR.pdf
Pests of Blackgram, greengram, cowpea_Dr.UPR.pdfPirithiRaju
 
LIGHT-PHENOMENA-BY-CABUALDIONALDOPANOGANCADIENTE-CONDEZA (1).pptx
LIGHT-PHENOMENA-BY-CABUALDIONALDOPANOGANCADIENTE-CONDEZA (1).pptxLIGHT-PHENOMENA-BY-CABUALDIONALDOPANOGANCADIENTE-CONDEZA (1).pptx
LIGHT-PHENOMENA-BY-CABUALDIONALDOPANOGANCADIENTE-CONDEZA (1).pptxmalonesandreagweneth
 

Recently uploaded (20)

TOPIC 8 Temperature and Heat.pdf physics
TOPIC 8 Temperature and Heat.pdf physicsTOPIC 8 Temperature and Heat.pdf physics
TOPIC 8 Temperature and Heat.pdf physics
 
Microteaching on terms used in filtration .Pharmaceutical Engineering
Microteaching on terms used in filtration .Pharmaceutical EngineeringMicroteaching on terms used in filtration .Pharmaceutical Engineering
Microteaching on terms used in filtration .Pharmaceutical Engineering
 
Call Girls in Munirka Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Munirka Delhi 💯Call Us 🔝8264348440🔝Call Girls in Munirka Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Munirka Delhi 💯Call Us 🔝8264348440🔝
 
Best Call Girls In Sector 29 Gurgaon❤️8860477959 EscorTs Service In 24/7 Delh...
Best Call Girls In Sector 29 Gurgaon❤️8860477959 EscorTs Service In 24/7 Delh...Best Call Girls In Sector 29 Gurgaon❤️8860477959 EscorTs Service In 24/7 Delh...
Best Call Girls In Sector 29 Gurgaon❤️8860477959 EscorTs Service In 24/7 Delh...
 
FREE NURSING BUNDLE FOR NURSES.PDF by na
FREE NURSING BUNDLE FOR NURSES.PDF by naFREE NURSING BUNDLE FOR NURSES.PDF by na
FREE NURSING BUNDLE FOR NURSES.PDF by na
 
Analytical Profile of Coleus Forskohlii | Forskolin .pptx
Analytical Profile of Coleus Forskohlii | Forskolin .pptxAnalytical Profile of Coleus Forskohlii | Forskolin .pptx
Analytical Profile of Coleus Forskohlii | Forskolin .pptx
 
User Guide: Orion™ Weather Station (Columbia Weather Systems)
User Guide: Orion™ Weather Station (Columbia Weather Systems)User Guide: Orion™ Weather Station (Columbia Weather Systems)
User Guide: Orion™ Weather Station (Columbia Weather Systems)
 
Citronella presentation SlideShare mani upadhyay
Citronella presentation SlideShare mani upadhyayCitronella presentation SlideShare mani upadhyay
Citronella presentation SlideShare mani upadhyay
 
RESPIRATORY ADAPTATIONS TO HYPOXIA IN HUMNAS.pptx
RESPIRATORY ADAPTATIONS TO HYPOXIA IN HUMNAS.pptxRESPIRATORY ADAPTATIONS TO HYPOXIA IN HUMNAS.pptx
RESPIRATORY ADAPTATIONS TO HYPOXIA IN HUMNAS.pptx
 
User Guide: Magellan MX™ Weather Station
User Guide: Magellan MX™ Weather StationUser Guide: Magellan MX™ Weather Station
User Guide: Magellan MX™ Weather Station
 
THE ROLE OF PHARMACOGNOSY IN TRADITIONAL AND MODERN SYSTEM OF MEDICINE.pptx
THE ROLE OF PHARMACOGNOSY IN TRADITIONAL AND MODERN SYSTEM OF MEDICINE.pptxTHE ROLE OF PHARMACOGNOSY IN TRADITIONAL AND MODERN SYSTEM OF MEDICINE.pptx
THE ROLE OF PHARMACOGNOSY IN TRADITIONAL AND MODERN SYSTEM OF MEDICINE.pptx
 
Call Girls In Nihal Vihar Delhi ❤️8860477959 Looking Escorts In 24/7 Delhi NCR
Call Girls In Nihal Vihar Delhi ❤️8860477959 Looking Escorts In 24/7 Delhi NCRCall Girls In Nihal Vihar Delhi ❤️8860477959 Looking Escorts In 24/7 Delhi NCR
Call Girls In Nihal Vihar Delhi ❤️8860477959 Looking Escorts In 24/7 Delhi NCR
 
Speech, hearing, noise, intelligibility.pptx
Speech, hearing, noise, intelligibility.pptxSpeech, hearing, noise, intelligibility.pptx
Speech, hearing, noise, intelligibility.pptx
 
Call Girls in Majnu Ka Tilla Delhi 🔝9711014705🔝 Genuine
Call Girls in Majnu Ka Tilla Delhi 🔝9711014705🔝 GenuineCall Girls in Majnu Ka Tilla Delhi 🔝9711014705🔝 Genuine
Call Girls in Majnu Ka Tilla Delhi 🔝9711014705🔝 Genuine
 
Hot Sexy call girls in Moti Nagar,🔝 9953056974 🔝 escort Service
Hot Sexy call girls in  Moti Nagar,🔝 9953056974 🔝 escort ServiceHot Sexy call girls in  Moti Nagar,🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Moti Nagar,🔝 9953056974 🔝 escort Service
 
GenBio2 - Lesson 1 - Introduction to Genetics.pptx
GenBio2 - Lesson 1 - Introduction to Genetics.pptxGenBio2 - Lesson 1 - Introduction to Genetics.pptx
GenBio2 - Lesson 1 - Introduction to Genetics.pptx
 
Pests of jatropha_Bionomics_identification_Dr.UPR.pdf
Pests of jatropha_Bionomics_identification_Dr.UPR.pdfPests of jatropha_Bionomics_identification_Dr.UPR.pdf
Pests of jatropha_Bionomics_identification_Dr.UPR.pdf
 
Scheme-of-Work-Science-Stage-4 cambridge science.docx
Scheme-of-Work-Science-Stage-4 cambridge science.docxScheme-of-Work-Science-Stage-4 cambridge science.docx
Scheme-of-Work-Science-Stage-4 cambridge science.docx
 
Pests of Blackgram, greengram, cowpea_Dr.UPR.pdf
Pests of Blackgram, greengram, cowpea_Dr.UPR.pdfPests of Blackgram, greengram, cowpea_Dr.UPR.pdf
Pests of Blackgram, greengram, cowpea_Dr.UPR.pdf
 
LIGHT-PHENOMENA-BY-CABUALDIONALDOPANOGANCADIENTE-CONDEZA (1).pptx
LIGHT-PHENOMENA-BY-CABUALDIONALDOPANOGANCADIENTE-CONDEZA (1).pptxLIGHT-PHENOMENA-BY-CABUALDIONALDOPANOGANCADIENTE-CONDEZA (1).pptx
LIGHT-PHENOMENA-BY-CABUALDIONALDOPANOGANCADIENTE-CONDEZA (1).pptx
 

Aggregate Processes in Field Calculus

  • 1. Aggregate Processes in Field Calculus Roberto Casadei1 , Mirko Viroli1 , Giorgio Audrito2 , Danilo Pianini1 , Ferruccio Damiani2 1 ALMA MATER STUDIORUM–Università di Bologna, Cesena, Italy 2 Università di Torino, Italy COORDINATION’19, Copenaghen R. Casadei Introduction Contribution Evaluation Wrap-up 1/62
  • 2. Motivation Aggregate Computing Outline 1 Introduction Motivation Background: Aggregate Computing 2 Contribution 3 Evaluation 4 Wrap-up R. Casadei Introduction Contribution Evaluation Wrap-up 2/62
  • 3. Motivation Aggregate Computing Outline 1 Introduction Motivation Background: Aggregate Computing 2 Contribution 3 Evaluation 4 Wrap-up R. Casadei Introduction Contribution Evaluation Wrap-up 3/62
  • 4. Motivation Aggregate Computing concurrent collective adaptive computations R. Casadei Introduction Contribution Evaluation Wrap-up 4/62
  • 5. Motivation Aggregate Computing concurrent collective adaptive computations R. Casadei Introduction Contribution Evaluation Wrap-up 5/62
  • 6. Motivation Aggregate Computing concurrent collective adaptive computations move in flocking formation detect or estimate something elect leader organise teams for missions departing from the flock R. Casadei Introduction Contribution Evaluation Wrap-up 6/62
  • 7. Motivation Aggregate Computing concurrent collective adaptive computations move in flocking formation ...while also, dynamically... detect or estimate something elect leader organise teams for missions departing from the flock R. Casadei Introduction Contribution Evaluation Wrap-up 7/62
  • 8. Motivation Aggregate Computing concurrent collective adaptive computations move in flocking formation ...while also, dynamically... detect or estimate something elect leader organise teams for missions departing from the flock R. Casadei Introduction Contribution Evaluation Wrap-up 8/62
  • 9. Motivation Aggregate Computing concurrent collective adaptive computations move in flocking formation ...while also, dynamically... detect or estimate something elect leader organise teams for missions departing from the flock R. Casadei Introduction Contribution Evaluation Wrap-up 9/62
  • 10. Motivation Aggregate Computing concurrent collective adaptive computations move in flocking formation ...while also, dynamically... detect or estimate something elect leader organise teams for missions departing from the flock R. Casadei Introduction Contribution Evaluation Wrap-up 10/62
  • 11. Motivation Aggregate Computing concurrent collective adaptive computations Roberto Casadei, Danilo Pianini, Mirko Viroli, and Antonio Natali. “Self-organising Coordination Regions: A Pattern for Edge Computing”. In: International Conference on Coordination Languages and Models. Springer. 2019 [coord19scr] R. Casadei Introduction Contribution Evaluation Wrap-up 11/62
  • 12. Motivation Aggregate Computing Outline 1 Introduction Motivation Background: Aggregate Computing 2 Contribution 3 Evaluation 4 Wrap-up R. Casadei Introduction Contribution Evaluation Wrap-up 12/62
  • 13. Motivation Aggregate Computing Aggregate Computing [ieeecom; coord18a] programming paradigm for CAS Mirko Viroli, Jacob Beal, Ferruccio Damiani, Giorgio Audrito, Roberto Casadei, and Danilo Pianini. “From Field-Based Coordination to Aggregate Computing”. In: Int. Conf. on Coordination Languages and Models. Springer. 2018 R. Casadei Introduction Contribution Evaluation Wrap-up 13/62
  • 14. Motivation Aggregate Computing Aggregate Computing [ieeecom; coord18a] functional, macro approach computational field calculus (FC) [tocl19Aud] R. Casadei Introduction Contribution Evaluation Wrap-up 14/62
  • 15. Motivation Aggregate Computing Aggregate Computing [ieeecom; coord18a] sensors local functions actuators Application Code Developer APIs Field Calculus Constructs Resilient Coordination Operators Device Capabilities functions repnbr TGCfunctions communication state PerceptionPerception summarize average regionMax … ActionAction StateState Collective BehaviorCollective Behavior distanceTo broadcast partition … timer lowpass recentTrue … collectivePerception collectiveSummary managementRegions … Crowd ManagementCrowd Management dangerousDensity crowdTracking crowdWarning safeDispersal restriction self­stabilisation R. Casadei Introduction Contribution Evaluation Wrap-up 15/62
  • 16. Motivation Aggregate Computing Aggregate Computing [ieeecom; coord18a] execution model (protocol) async rounds of computation 1) full run of “aggregate program” against “local context” device state sensor readings neighbourhood coordination data 2) broadcast coordination data to neighbours R. Casadei Introduction Contribution Evaluation Wrap-up 16/62
  • 17. Motivation Aggregate Computing paradigmatic example (gradient) R. Casadei Introduction Contribution Evaluation Wrap-up 17/62
  • 18. Motivation Aggregate Computing paradigmatic example (gradient) class MyProgram extends AggregateProgram { override def main = rep(Double.PositiveInfinity)(distance => mux(source){ 0.0 }{ minHoodPlus( nbr{distance} + metric ))) } ) } R. Casadei Introduction Contribution Evaluation Wrap-up 18/62
  • 19. Motivation Aggregate Computing paradigmatic example (gradient) abstraction & compositionality class MyProgram extends AggregateProgram { def gradient(source: Boolean, metric: => Double): Double = rep(Double.PositiveInfinity)(distance => mux(source){ 0.0 }{ minHoodPlus( nbr{distance} + metric ))) } ) override def main = branch(gradient(source) < threshold){ /*..*/ }{ /*..*/ } } R. Casadei Introduction Contribution Evaluation Wrap-up 19/62
  • 20. Motivation Aggregate Computing nice things about aggregate computing predictable composition of emergent behaviour [tocl19Aud] declarativity [VCP16] flexibility in execution formal properties: self-stabilization [tomacs18Vir], eventual consistency [taas17] practical (see PLs/tools like ScaFi [CPV16]) much more [coord18a] R. Casadei Introduction Contribution Evaluation Wrap-up 20/62
  • 21. Motivation Aggregate Computing also: FC is space-time universal [coord18b] however describing multiple dynamic computations on dynamic domains is practically unfeasible R. Casadei Introduction Contribution Evaluation Wrap-up 21/62
  • 22. Motivation Aggregate Computing also: FC is space-time universal [coord18b] however describing multiple dynamic computations on dynamic domains is practically unfeasible R. Casadei Introduction Contribution Evaluation Wrap-up 22/62
  • 23. Motivation Aggregate Computing also: FC is space-time universal [coord18b] however describing multiple dynamic computations on dynamic domains is practically unfeasible R. Casadei Introduction Contribution Evaluation Wrap-up 23/62
  • 24. Motivation Aggregate Computing example: multi-gradient R. Casadei Introduction Contribution Evaluation Wrap-up 24/62
  • 25. Motivation Aggregate Computing example: multi-gradient (gradient(s1), gradient(s2), ..) static all gradients have full domain R. Casadei Introduction Contribution Evaluation Wrap-up 25/62
  • 26. Motivation Aggregate Computing example: multi-gradient def limitedGradient(src: Boolean, size: Double, time: Int, start: => Boolean, iff: => Boolean) = rep((OUT,inf,time,true)){ case (status,g,t,notYetStarted) => { branch(start | (src | excludingSelf.anyHood(nbr{status}==IN & nbr{g}+nbrRange<size)) & iff && (t>0 || notYetStarted)){ (IN,gradient(src),T(time),false) }{ (OUT, inf, time, notYetStarted) } }} (limitedGradient(sense1, 20, 500, start = captureChange(sense1) && sense1), limitedGradient(sense2, 30, 500, start = captureChange(sense2) && sense2, iff = g1._2!=0)) dynamic domain and lifecycle still a static list of computations R. Casadei Introduction Contribution Evaluation Wrap-up 26/62
  • 27. Motivation Aggregate Computing example: multi-gradient sources.map(s => gradient(s)) // (1) we need to align on some computation ID (e.g., 's') // (2) 'sources' field determines lifecycle & domain need to extend FC machinery for compositionality to support dynamic collections of computations need to simplify management of dynamic domains R. Casadei Introduction Contribution Evaluation Wrap-up 27/62
  • 28. Outline 1 Introduction 2 Contribution 3 Evaluation 4 Wrap-up R. Casadei Introduction Contribution Evaluation Wrap-up 28/62
  • 29. aggregate process a dynamic collective computation (a “bubble”) − similar to OS processes but running on aggregates features R. Casadei Introduction Contribution Evaluation Wrap-up 29/62
  • 30. aggregate process a dynamic collective computation (a “bubble”) − similar to OS processes but running on aggregates features process lifecycle – generation – spreading/shrinking (border management) – destruction process logic process interaction R. Casadei Introduction Contribution Evaluation Wrap-up 30/62
  • 31. aggregate process a dynamic collective computation (a “bubble”) − similar to OS processes but running on aggregates features process lifecycle – generation – spreading/shrinking (border management) – destruction process logic process interaction R. Casadei Introduction Contribution Evaluation Wrap-up 31/62
  • 32. aggregate process a dynamic collective computation (a “bubble”) − similar to OS processes but running on aggregates features process lifecycle – generation – spreading/shrinking (border management) – destruction process logic process interaction R. Casadei Introduction Contribution Evaluation Wrap-up 32/62
  • 33. new spawn primitive Syntax: P ::= F e program F::= def d(x) {e} function declaration e ::= x v (x) τ => e e(e) rep(e){x => e} nbr{e} spawn(e, e, e) expression v::= φ value φ::= δ → neighbouring field value ::= f c( ) local value f::= b d (x) τ => e function value R. Casadei Introduction Contribution Evaluation Wrap-up 33/62
  • 34. new spawn primitive Auxiliary functions: args((x) τ => e) = x body((x) τ => e) = e name((x) τ => e) = τ args(d) = x if def d(x){e} body(d) = e if def d(x){e} name(d) = d ρ(v θ ) = v name(b) = b πi (v θ1, . . . , θn ) = θi if 1 ≤ i ≤ n else • πf (v θ1, . . . , θn ) = θn if name(ρ(θ1)) = name(f) else • πk (v → θ) = θi s.t. vi = k if it exists else • F(θ) = v θ if θ = pair(v, True) θ else • For aux ∈ ρ, πi , πf , πk , F :    aux(•) = • aux(δ → θ, Θ) = aux(Θ) if aux(θ) = • aux(δ → θ, Θ) = δ → aux(θ), aux(Θ) if aux(θ) = • Rules for expression evaluation: δ; Θ; σ e ⇓ θ [E-SPAWN] δ; πi (Θ); σ ei ⇓ θi for i ∈ 1, 2, 3 k1, . . . , kn = ρ(θ2 ) ∪ {dom(π4(Θ(δ ))) for δ ∈ dom(Θ)} δ; πki (π4(Θ)); σ ρ(θ1)(ki , ρ(θ3)) ⇓ θi for i ∈ 1, . . . , n δ; Θ; σ spawn(e1, e2, e3) ⇓ F(k → ρ(θ)) θ1 , θ2 , θ3 , F(k → θ) R. Casadei Introduction Contribution Evaluation Wrap-up 34/62
  • 35. new spawn primitive implemented in ScaFi [CPV16] def spawn[K,A,R](process: K => A => (R,Boolean), newKeys: Set[K], args: A): Map[K,R] key as process instance ID and construction parameter boolean status to express if in or out of the bubble R. Casadei Introduction Contribution Evaluation Wrap-up 35/62
  • 36. dynamics (intuition) the entire network run the spawn expression no active process instance yet R. Casadei Introduction Contribution Evaluation Wrap-up 36/62
  • 37. dynamics (intuition) G is productive in device 1 a new P instance with PID 1 is injected R. Casadei Introduction Contribution Evaluation Wrap-up 37/62
  • 38. dynamics (intuition) process 1 automatically spreads from participants nbrs may opt out to prevent expansion (“live border”) R. Casadei Introduction Contribution Evaluation Wrap-up 38/62
  • 39. dynamics (intuition) process 1 shrinks a little (border retracts) R. Casadei Introduction Contribution Evaluation Wrap-up 39/62
  • 40. dynamics (intuition) G is productive in device 3 a new, concurrent process springs out R. Casadei Introduction Contribution Evaluation Wrap-up 40/62
  • 41. dynamics (intuition) multiple process instances may intersect process 1 about to close R. Casadei Introduction Contribution Evaluation Wrap-up 41/62
  • 42. dynamics (intuition) process 1 fades away process 3 expands, stretching the border out R. Casadei Introduction Contribution Evaluation Wrap-up 42/62
  • 43. example: gossip replication [coord16] k running replicates, staggered by interval p Gossip #1Gossip #1 Gossip #3Gossip #3 Gossip #2Gossip #2 …Time p k=3 Gossip #4Gossip #4 R. Casadei Introduction Contribution Evaluation Wrap-up 43/62
  • 44. example: gossip replication [coord16] k running replicates, staggered by interval p def replicated[A,R](proc: A => R) (argument: A, p: Double, k: Int) = { val lastPid = clock(p, dt()) spawn[Long,A,R](pid => arg => (proc(arg), pid > lastPid+k), Set(lastPid), argument) } R. Casadei Introduction Contribution Evaluation Wrap-up 44/62
  • 45. APIs on top of spawn work-in-progress Ǧ statuses to express the stance wrt a process instance R. Casadei Introduction Contribution Evaluation Wrap-up 45/62
  • 46. APIs on top of spawn work-in-progress Ǧ statuses to express the stance wrt a process instance R. Casadei Introduction Contribution Evaluation Wrap-up 46/62
  • 47. APIs on top of spawn work-in-progress Ǧ statuses to express the stance wrt a process instance def statusSpawn[K,A,R](process: K=>A=>(R,Status), keys: Set[K], args: A): Map[K,R] = spawn[K,A,Option[R]](k => a => handleOutput(handleTermination(process(k)(a))), keys, args ).collectValues { case Some(p) => p } R. Casadei Introduction Contribution Evaluation Wrap-up 47/62
  • 48. example: multi-gradient statusSpawn[ID,ID=>Double,Double](src => limit => gradient(src==mid,nbrRange) match { case g if src==mid && !isSrc => (g, Terminated) case g if g>limit(src) => (g, External) // out case g => (g, Output) // in }, newKeys = if(isSrc) Set(mid) else Set.empty, args = maxExtension) R. Casadei Introduction Contribution Evaluation Wrap-up 48/62
  • 49. example: multi-gradient statusSpawn[ID,ID=>Double,Double](src => limit => gradient(src==mid,nbrRange) match { case g if src==mid && !isSrc => (g, Terminated) case g if g>limit(src) => (g, External) // out case g => (g, Output) // in }, newKeys = if(isSrc) Set(mid) else Set.empty, args = maxExtension) R. Casadei Introduction Contribution Evaluation Wrap-up 49/62
  • 50. Outline 1 Introduction 2 Contribution 3 Evaluation 4 Wrap-up R. Casadei Introduction Contribution Evaluation Wrap-up 50/62
  • 51. simulation framework ScaFi https://github.com/scafi/scafi Alchemist simulator + ScaFi-Alchemist incarnation https://github.com/AlchemistSimulator/Alchemist repo https://bitbucket.org/metaphori/experiment-spawn R. Casadei Introduction Contribution Evaluation Wrap-up 51/62
  • 52. opportunistic instant messaging R. Casadei Introduction Contribution Evaluation Wrap-up 52/62
  • 53. opportunistic instant messaging Scenario dense network of devices no Internet access (P2P only) senders, recipients, coordinators flood chat vs. spawn chat R. Casadei Introduction Contribution Evaluation Wrap-up 53/62
  • 54. opportunistic instant messaging R. Casadei Introduction Contribution Evaluation Wrap-up 54/62
  • 55. opportunistic instant messaging R. Casadei Introduction Contribution Evaluation Wrap-up 55/62
  • 56. drone swarm for fire detection R. Casadei Introduction Contribution Evaluation Wrap-up 56/62
  • 57. drone swarm for fire detection Scenario 200 UAVs start at base station, 10 random waypoints, and back naive gossip vs. S+C+G vs. replicated gossip R. Casadei Introduction Contribution Evaluation Wrap-up 57/62
  • 58. drone swarm for fire detection R. Casadei Introduction Contribution Evaluation Wrap-up 58/62
  • 59. Outline 1 Introduction 2 Contribution 3 Evaluation 4 Wrap-up R. Casadei Introduction Contribution Evaluation Wrap-up 59/62
  • 60. key points aggregate processes model dynamic, concurrent collective adaptive behaviours carried out by dynamic formations of devices implementation over field calculus and ScaFi largely extend practical expressivity future work API & combinators test on more advanced coordination scenarios R. Casadei Introduction Contribution Evaluation Wrap-up 60/62
  • 61. key points aggregate processes model dynamic, concurrent collective adaptive behaviours carried out by dynamic formations of devices implementation over field calculus and ScaFi largely extend practical expressivity future work API & combinators test on more advanced coordination scenarios R. Casadei Introduction Contribution Evaluation Wrap-up 61/62
  • 62. thanks! any questions? R. Casadei Introduction Contribution Evaluation Wrap-up 62/62
  • 63. References [coord16] Danilo Pianini, Jacob Beal, and Mirko Viroli. “Improving Gossip Dynamics Through Overlapping Replicates”. In: COORDINATION 2016. Ed. by Alberto Lluch Lafuente and José Proença. Vol. 9686. Lecture Notes in Computer Science. Springer, 2016, pp. 192–207. ISBN: 978-3-319-39518-0. DOI: 10.1007/978-3-319-39519-7_12. URL: http://dx.doi.org/10.1007/978-3-319-39519-7_12. [coord18a] Mirko Viroli et al. “From Field-Based Coordination to Aggregate Computing”. In: Int. Conf. on Coordination Languages and Models. Springer. 2018, pp. 252–279. [coord18b] Giorgio Audrito et al. “Space-time universality of field calculus”. In: International Conference on Coordination Languages and Models. Springer. 2018, pp. 1–20. [coord19scr] Roberto Casadei et al. “Self-organising Coordination Regions: A Pattern for Edge Computing”. In: International Conference on Coordination Languages and Models. Springer. 2019, pp. 182–199. [CPV16] Roberto Casadei, Danilo Pianini, and Mirko Viroli. “Simulating large-scale aggregate MASs with Alchemist and Scala”. In: FedCSIS, Proceedings of. IEEE. 2016, pp. 1495–1504. [ieeecom] Jacob Beal, Danilo Pianini, and Mirko Viroli. “Aggregate Programming for the Internet of Things”. In: IEEE Computer (2015). ISSN: 1364-503X. [taas17] Jacob Beal et al. “Self-adaptation to device distribution in the Internet of Things”. In: ACM Transactions on Autonomous and Adaptive Systems (TAAS) 12.3 (2017), p. 12. [tocl19Aud] Giorgio Audrito et al. “A Higher-Order Calculus of Computational Fields”. In: ACM Transactions on Computational Logic 20.1 (Jan. 2019), 5:1–5:55. ISSN: 1529-3785. DOI: 10.1145/3285956. [tomacs18Vir] Mirko Viroli et al. “Engineering Resilient Collective Adaptive Systems by Self-Stabilisation”. In: ACM Transactions on Modeling and Computer Simulation 28.2 (2018), 16:1–16:28. [VCP16] Mirko Viroli, Roberto Casadei, and Danilo Pianini. “On execution platforms for large-scale aggregate computing”. In: UbiComp, Proceedings of. ACM. 2016, pp. 1321–1326. R. Casadei Appendix References 63/62