SlideShare a Scribd company logo
On Execution Platforms for Large-Scale Aggregate
Computing
Mirko Viroli Roberto Casadei Danilo Pianini
Department of Computer Science and Engineering
University of Bologna
Workshop on Collective Adaptation in Very Large Scale Ubicomp: Towards a
Superorganism of Wearables (VLSU), Ubicomp/ISWC Adjunct, September
2016, Heidelberg (Germany)
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 1 / 47
Outline
1 Context and Issues
2 Aggregate Computing
3 Execution Platforms for Aggregate Computing
4 Summary
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 2 / 47
Context and Issues
Outline
1 Context and Issues
2 Aggregate Computing
3 Execution Platforms for Aggregate Computing
4 Summary
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 3 / 47
Context and Issues
Context
Environment + (Mobile, Large-scale) Networks of { people + devices }
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 4 / 47
Context and Issues
The Crowd Engineering Example I
Wearable devices collectively form a “diffused” computational system.
Upon it, an ecosystem of (CAS) services can be envisioned.
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 5 / 47
Context and Issues
The Crowd Engineering Example II
Mechanisms Gathering local context
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 6 / 47
Context and Issues
The Crowd Engineering Example III
Mechanisms Sensing global patterns of data
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 7 / 47
Context and Issues
The Crowd Engineering Example IV
Services Crowd detection
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 8 / 47
Context and Issues
The Crowd Engineering Example V
Services Crowd anticipation
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 9 / 47
Context and Issues
The Crowd Engineering Example VI
Services Crowd-aware steering
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 10 / 47
Context and Issues
The Crowd Engineering Example VII
Services Crowd dispersal
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 11 / 47
Context and Issues
The systems of tomorrow today...
The landscape
Driving forces
• Miniaturisation, low cost ⇒ more and more devices embedded into environment
• New business opportunities and trends
Frictions
• Redundant effort in multiple niches
• Fuzzy boundaries, multifaceted, varied, with issues at multiple levels
Key issues
• Large-scale ⇒ decentralisation
• Complex dynamics ⇒ good abstractions
• Situatedness ⇒ substantial unpredictability ⇒ self-adaptivity
How can we reliably engineer situated CASs?
• .. and keep our solutions independent from many aspects?
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 12 / 47
Aggregate Computing
Outline
1 Context and Issues
2 Aggregate Computing
3 Execution Platforms for Aggregate Computing
4 Summary
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 13 / 47
Aggregate Computing
The origins: space-time programming [BV15]
Space-oriented computation – Thematic areas
(a) Intensive computing
(b) Computation embedded in space
(c) Space computation
Decentralised spatial computing
Computing “somewhere” [Duc13]
• Location-related information
• Spatial constraints to communication
Space-time programming [BV15]
• Computation expressed in terms of properties of the physical time and
space in which it occurs
• Spatial abstractions
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 14 / 47
Aggregate Computing
Discrete system vs. continuous space-time
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 15 / 47
Aggregate Computing
Aggregate programming [BPV15]
Programming (collective adaptive) systems: viewpoints
(a) Local viewpoint (device-centric view)
(b) Global viewpoint (aggregate view)
Aggregate programming: what
Goal: programming the collective behaviour of aggregates
Global-to-local mapping
Aggregate programming: how
Prominent approach founded on field calculus and self-org patterns
• Computational fields as unifying abstraction of local/global viewpoints
Composable self-organisation
• Self-stabilisation
• Building blocks for resilient coordination
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 16 / 47
Aggregate Computing
Device-centric programming
Issues
• Local-to-global mapping problem (generally intractable)
• Explicit design of adaptation and communication
• Mixing of concerns — state management, interaction, adaptation, resiliency, etc.
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 17 / 47
Aggregate Computing
Device-centric programming
Issues
• Local-to-global mapping problem (generally intractable)
• Explicit design of adaptation and communication
• Mixing of concerns — state management, interaction, adaptation, resiliency, etc.
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 17 / 47
Aggregate Computing
Aggregate-level programming
Collective services on the computational fabric available in space
• Automatic global-to-local mapping
• Implicit adaptation and communication
• Composition of loosely coupled services
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 18 / 47
Aggregate Computing
Aggregate-level programming
Collective services on the computational fabric available in space
• Automatic global-to-local mapping
• Implicit adaptation and communication
• Composition of loosely coupled services
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 18 / 47
Aggregate Computing
Aggregate (computing) systems
Structure
A set of networked devices
• Each one is given the same field calculus program.
• FC has mechanisms to differentiate local executions within a global
behaviour.
• The execution semantics of FC gets context-dependent via local features
(e.g., sensors) and nbr.
Dynamics
Each device computes the given program at asyn / partially-sync rounds of
execution
(1) Retrieve context
⇐ Messages from neighbours
⇐ Sensor values
(2) Aggregate program execution
⇒ export
(3) Broadcast export to neighbourhood
(4) Execute actuators
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 19 / 47
Aggregate Computing
SCAFI: Scala with Computational Fields
What
SCAFI [CV16] is an integrated framework for building systems with aggregate
programming.
• Scala-internal DSL for expressing aggregate computations.
• Linguistic support + execution support (interpreter/VM)
• Correct, complete, efficient implementation of the HOFC semantics
• Distributed platform for execution of aggregate systems.
• Support for multiple architectural styles and system configurations.
• Actor-based implementation (based on Akka).
Where
http://scafi.apice.unibo.it (a better release soon)
Why Scala?
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 20 / 47
Aggregate Computing
Computational fields
• (Abstract interpretation) Mapping space-time to computational objects
• (Concrete interpretation) Mapping devices to values: φ : δ →
• “Distributed” data structure working as the global abstraction
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 21 / 47
Aggregate Computing
Computing with fields I
Expressing aggregate/field computations in SCAFI
trait Constructs {
def rep[A](init: A)(fun: (A) => A): A
def nbr[A](expr: => A): A
def foldhood[A](init: => A)(acc: (A,A)=>A)(expr: => A): A
def aggregate[A](f: => A): A
// Not primitive, but foundational
def sense[A](name: LSNS): A
def nbrvar[A](name: NSNS): A
def branch[A](cond: => Boolean)(th: => A)(el: => A): A
}
• Mechanisms for context-sensitiveness: nbr, nbrvar, sense
• Mechanisms for field evolution: rep
• Mechanisms for interaction: nbr
• Mechanisms for field domain restriction: aggregate, branch
• Reference formal system: field calculus [DVB16, DVPB15]
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 22 / 47
Aggregate Computing
Computing with fields II
Global-level semantics, intuitively
0
(x)=>x+1
true t<0,1>
()0
1
+
-
1
-1
ef(0,1)
ef
rep
0
(x)=>x+1
t
v0
t
v1
..
rep(0){(x)=>x+1}
nbr de
nbr{e}
φd=[d1→v1,..,dn→vn]
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 23 / 47
Aggregate Computing
Example: the channel I
def channel(src: Boolean, dest: Boolean, width: Double) =
distanceTo(src) + distanceTo(dest) <=
distBetween(src, dest) + width
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 24 / 47
Aggregate Computing
Example: the channel (full code)
def channel(src: Boolean, dest: Boolean, width: Double) =
distanceTo(src) + distanceTo(dest) <=
distBetween(src, dest) + width
def distanceTo(source: Boolean): Double =
G[Double](source, 0, _ + nbrRange(), nbrRange())
def distBetween(source: Boolean, target: Boolean): Double =
broadcast(source, distanceTo(target))
def G[V:OB](src: Boolean, field: V, acc: V=>V, metric: =>Double): V =
rep( (Double.MaxValue, field) ){ dv =>
mux(src) { (0.0, field) } {
minHoodMinus {
val (d, v) = nbr { (dv._1, dv._2) }
(d + metric, acc(v))
}
}
}._2
def broadcast[V:OB](source: Boolean, field: V): V =
G[V](source, field, x=>x, nbrRange())
def nbrRange(): Double = nbrvar[Double](NBR_RANGE_NAME)
def isSource = sense[Boolean]("source")
def isObstacle = sense[Boolean]("obstacle")
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 25 / 47
Aggregate Computing
Aggregate Programming Stack
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 26 / 47
Aggregate Computing
Ex. of concrete system: nbr counting in p2p, ad-hoc net
// STEP 1: CHOOSE INCARNATION
import it.unibo.scafi.incarnations.{ BasicActorP2P => Platform }
// STEP 2: DEFINE AGGREGATE PROGRAM SCHEMA
class Demo0C_AggregateProgram extends Platform.AggregateProgram {
override def main(): Any = foldhood(0){_ + _}(1)
}
// STEP 3: DEFINE MAIN PROGRAM
object Demo0C_MainProgram extends Platform.CmdLineMain
1) Demo_MainProgram -h 127.0.0.1 -p 9000
-e 1:2,4,5;2;3 --subsystems
127.0.0.1:9500:4:5
--program "demos.Demo_AggregateProgram"
2) Demo_MainProgram -h 127.0.0.1 -p 9500
-e 4;5:4
--program "demos.Demo_AggregateProgram"
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 27 / 47
Aggregate Computing
Summary: the AC approach to the engineering of CASs
The Aggregate Computing way
• Abstraction gap — i.e., the distance from the problem to the solution
=⇒ Abstractions close to problem domain
=⇒ Declarative approach – from how to what
=⇒ Layered approach – raising abstraction incrementally
• Capturing complex behaviours in a simple way
=⇒ Instrumental assumptions + effective building blocks
=⇒ Balance of top-down and bottom-up problem solving (sort of
match-in-the-middle)
• Supporting modularity and reusability
=⇒ Compositional approach
• Guiding engineering for resilience
=⇒ Adaptation by construction
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 28 / 47
Aggregate Computing
Summary: the AC approach to the engineering of CASs
The Aggregate Computing way
• Abstraction gap — i.e., the distance from the problem to the solution
=⇒ Abstractions close to problem domain
=⇒ Declarative approach – from how to what
=⇒ Layered approach – raising abstraction incrementally
• Capturing complex behaviours in a simple way
=⇒ Instrumental assumptions + effective building blocks
=⇒ Balance of top-down and bottom-up problem solving (sort of
match-in-the-middle)
• Supporting modularity and reusability
=⇒ Compositional approach
• Guiding engineering for resilience
=⇒ Adaptation by construction
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 28 / 47
Aggregate Computing
Summary: the AC approach to the engineering of CASs
The Aggregate Computing way
• Abstraction gap — i.e., the distance from the problem to the solution
=⇒ Abstractions close to problem domain
=⇒ Declarative approach – from how to what
=⇒ Layered approach – raising abstraction incrementally
• Capturing complex behaviours in a simple way
=⇒ Instrumental assumptions + effective building blocks
=⇒ Balance of top-down and bottom-up problem solving (sort of
match-in-the-middle)
• Supporting modularity and reusability
=⇒ Compositional approach
• Guiding engineering for resilience
=⇒ Adaptation by construction
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 28 / 47
Aggregate Computing
Summary: the AC approach to the engineering of CASs
The Aggregate Computing way
• Abstraction gap — i.e., the distance from the problem to the solution
=⇒ Abstractions close to problem domain
=⇒ Declarative approach – from how to what
=⇒ Layered approach – raising abstraction incrementally
• Capturing complex behaviours in a simple way
=⇒ Instrumental assumptions + effective building blocks
=⇒ Balance of top-down and bottom-up problem solving (sort of
match-in-the-middle)
• Supporting modularity and reusability
=⇒ Compositional approach
• Guiding engineering for resilience
=⇒ Adaptation by construction
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 28 / 47
Aggregate Computing
Summary: the AC approach to the engineering of CASs
The Aggregate Computing way
• Abstraction gap — i.e., the distance from the problem to the solution
=⇒ Abstractions close to problem domain
=⇒ Declarative approach – from how to what
=⇒ Layered approach – raising abstraction incrementally
• Capturing complex behaviours in a simple way
=⇒ Instrumental assumptions + effective building blocks
=⇒ Balance of top-down and bottom-up problem solving (sort of
match-in-the-middle)
• Supporting modularity and reusability
=⇒ Compositional approach
• Guiding engineering for resilience
=⇒ Adaptation by construction
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 28 / 47
Execution Platforms for Aggregate Computing
Outline
1 Context and Issues
2 Aggregate Computing
3 Execution Platforms for Aggregate Computing
4 Summary
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 29 / 47
Execution Platforms for Aggregate Computing
Aggregate computing and abstraction
(Partial) insensitiveness to system structure and situation details [BVPD16]
Aggregate behaviours are highly insensitive to:
• network size
• network density
• network topology
This makes algorithms intrinsically robust to failures and changes to working
conditions [VBDP15].
(Partial) insensitiveness to execution strategy
Note: network nodes ultimately correspond to components operating in some
context via sensors/actuators.
Aggregate computations can be carried out in different ways:
• Computing nodes and “native” local communication;
• Computations performed by a central server;
• Computations performed in the cloud; ...
Idea: opportunistically exploit the underlying infrastructure
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 30 / 47
Execution Platforms for Aggregate Computing
(Fully operational) Device actors
Responsibilities (each one can be reified as an actor/subcomponent)
(i) Sensing/actuating
(ii) Aggregate program execution
(iii) Broadcasting/receiving the exports of computation to/from neighbours
(iv) Storing state (last computation, exports from neighbours)
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 31 / 47
Execution Platforms for Aggregate Computing
Peer-to-peer
Peer-to-peer platform style
• Each device processes the aggregate program on-site and directly
communicates with other devices.
• Suited for ad-hoc networks.
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 32 / 47
Execution Platforms for Aggregate Computing
Mediating server
Communication mediator
• Device-to-device communications are mediated by a server component.
• Hence, the neighbouring logic is moved away from devices.
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 33 / 47
Execution Platforms for Aggregate Computing
Demo: server-based, mobile spatial net I
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 34 / 47
Execution Platforms for Aggregate Computing
Demo: server-based, mobile spatial net II
import it.unibo.scafi.distrib.actor.server.{SpatialPlatform =>
SpatialServerBasedActorPlatform}
import it.unibo.scafi.incarnations.BasicAbstractActorIncarnation
import it.unibo.scafi.space.{Point2D, BasicSpatialAbstraction}
object Platform extends BasicAbstractActorIncarnation
with SpatialServerBasedActorPlatform
with BasicSpatialAbstraction with Serializable {
override val LocationSensorName: String = "LOCATION_SENSOR"
override type P = Point2D
override def buildNewSpace[E](elems: Iterable[(E,P)]): SPACE[E] =
new Basic3DSpace(elems.toMap) { override val proximityThreshold = 1.1 }
}
// STEP 2: DEFINE AGGREGATE PROGRAM SCHEMA
class AggregateProgram extends Platform.AggregateProgram {
def hopGradient(source: Boolean): Double = {
rep(Double.PositiveInfinity){
hops => { mux(source) { 0.0 } { 1+minHood(nbr{ hops }) } }
}
}
def main() = hopGradient(sense("source"))
}
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 35 / 47
Execution Platforms for Aggregate Computing
Demo: server-based, mobile spatial net III
// STEP 3: DEFINE MAIN PROGRAMS
object ServerMain extends Platform.ServerCmdLineMain {
override def refineSettings(s: Platform.Settings) = {
s.copy(profile = s.profile.copy(
serverGuiActorProps = tm => Some(ServerGUIActor.props(Platform, tm))
))
}
}
object MainProgram extends Platform.CmdLineMain {
override def refineSettings(s: Platform.Settings) = {
s.copy(profile = s.profile.copy(
devGuiActorProps = ref => Some(DevGUIActor.props(Platform, ref))
))
}
override def onDeviceStarted(dm: Platform.DeviceManager,
sys: Platform.SystemFacade) = {
dm.addSensorValue(Platform.LocationSensorName, Point2D(dm.selfId%5,(dm.
selfId/5.0).floor))
dm.addSensorValue("source", dm.selfId==4)
dm.start
}
}
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 36 / 47
Execution Platforms for Aggregate Computing
Computing server
Computation mediator
• The processing logic is moved away from devices.
• Devices send sensor values to the server and receive actuations.
• The server has to keep state (sensor values, neighbour exports).
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 37 / 47
Execution Platforms for Aggregate Computing
Cloud-based
Aggregate computing cloud
• Like server-based solution: the centralisation consists in the cloud access point.
• The whole computational field stored as a big data.
• The cloud-based execution is structured as stateless services insisting on a
shared database.
Relaxation of consistency constraints; in-memory; space-based partitioning
& locality
• Plausible technology: RESTful WS on GAE + Redis/Datastore
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 38 / 47
Execution Platforms for Aggregate Computing
Wait! Why are you introducing centralisations? I
p2p
• Processing occurs locally
• The export of computation has to be broadcasted to the neighbourhood
• Sensor and actuator values readily available
• Device-to-device communication may be onerous
server/cloud
• Sensor values upstream, actuations downstream
⇒ convenient when sensor readings do not change quickly
• Neighbour exports readily available
• Necessary when p2p interactions not supported at infrastructure-level
• Because of (i) communication technology, or (ii) logical neighbouring relation
• Necessary when devices have no processing capabilities (i.e., may only
sense/act/communicate)
• Even if p2p is possible, may still be useful for optimisations or for easier management
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 39 / 47
Execution Platforms for Aggregate Computing
Wait! Why are you introducing centralisations? II
Elements to be considered
• Number of communication acts
• Frequency of execution
• Energetic issues
• Other costs (e.g., pay-per-use in cloud)
Case study (simulation): crowd management in urban mass event
• Test-bed used in [APNF13]
• Real-world traces
• Device broadcasts in 100m range
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 40 / 47
Execution Platforms for Aggregate Computing
Wait! Why are you introducing centralisations? III
0 20 40 60 80 100 120 140 160 180
Time (simulated minutes)
0
50
100
150
200
Averagenumberofroundsexecuted
Rounds executed locally
Full P2P
Hybrid L1
Hybrid L2
Full cloud
0 20 40 60 80 100 120 140 160 180
Time (simulated minutes)
0
2000
4000
6000
8000
10000
12000
Averagenumberofroundsexecuted
Rounds executed in cloud
Full P2P
Hybrid L1
Hybrid L2
Full cloud
0 20 40 60 80 100 120 140 160 180
Time (simulated minutes)
0
100
200
300
400
500
600
700
800
Numberofdevices
Devices subject to a warning
Full P2P
Hybrid L1
Hybrid L2
Full cloud
Hybrid L1: warning devices execute in cloud – Hybrid L2: dispersal devices execute in cloud
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 41 / 47
Execution Platforms for Aggregate Computing
(Dynamic) Hybrid-style platform
Key idea
• Use available infrastructure and adapt so as to maximize QoS!
Dynamic and opportunistic exploitation of networking/computing resources.
• Computation may flow "up" and "down" depending on context and contingencies.
• In this sense, AC is similar to MapReduce—but for distributed and situated
computations.
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 42 / 47
Summary
Outline
1 Context and Issues
2 Aggregate Computing
3 Execution Platforms for Aggregate Computing
4 Summary
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 43 / 47
Summary
Summary: key ideas and future directions
Aggregate programming
• An (((((((
programmingengineering approach to CASs
• Formally grounded in the Field Calculus
• Allows to compose “emergent” phenomena
• Provides layers of building blocks (proven to self-stabilise!)
• Comes with a Scala framework (SCAFI) for building aggregate systems
The abstract model is decoupled from the execution strategy
• Aggregate computing is suitable for exec across several platforms/infrastructures
• From ad-hoc networks to cloud/fog computing
• It could be extended to dynamically exploit available and heterogeneous
infrastructure
Future work
• Evolve SCAFI into a framework supporting scalable computations in cluster- and
cloud-based systems
• What does it take to set up a framework for adaptive execution strategies?
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 44 / 47
Appendix References
References I
[APNF13] Bernhard Anzengruber, Danilo Pianini, Jussi Nieminen, and Alois Ferscha.
Predicting social density in mass events to prevent crowd disasters.
In Proceedings of SocInfo 2013, pages 206–215, 2013.
[BPV15] Jacob Beal, Danilo Pianini, and Mirko Viroli.
Aggregate Programming for the Internet of Things.
IEEE Computer, 2015.
[BV15] Jacob Beal and Mirko Viroli.
Space–time programming.
Phil. Trans. R. Soc. A, 373(2046):20140220, 2015.
[BVPD16] Jacob Beal, Mirko Viroli, Danilo Pianini, and Ferruccio Damiani.
Self-adaptation to device distribution changes in situated computing
systems.
In IEEE Conference on Self-Adaptive and Self-Organising Systems (SASO
2016). IEEE, 2016.
To appear.
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 45 / 47
Appendix References
References II
[CV16] Roberto Casadei and Mirko Viroli.
Towards aggregate programming in Scala.
In First Workshop on Programming Models and Languages for Distributed
Computing, PMLDC ’16, pages 5:1–5:7, New York, NY, USA, 2016. ACM.
[Duc13] Matt Duckham.
Decentralized Spatial Computing - Foundations of Geosensor Networks.
Springer, 2013.
[DVB16] Ferruccio Damiani, Mirko Viroli, and Jacob Beal.
A type-sound calculus of computational fields.
Science of Computer Programming, 117:17 – 44, 2016.
[DVPB15] Ferruccio Damiani, Mirko Viroli, Danilo Pianini, and Jacob Beal.
Code mobility meets self-organisation: A higher-order calculus of
computational fields.
volume 9039 of Lecture Notes in Computer Science, pages 113–128.
Springer International Publishing, 2015.
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 46 / 47
Appendix References
References III
[VBDP15] Mirko Viroli, Jacob Beal, Ferruccio Damiani, and Danilo Pianini.
Efficient engineering of complex self-organising systems by self-stabilising
fields.
2015.
R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 47 / 47

More Related Content

What's hot

Aggregate Computing Platforms: Bridging the Gaps
Aggregate Computing Platforms: Bridging the GapsAggregate Computing Platforms: Bridging the Gaps
Aggregate Computing Platforms: Bridging the Gaps
Roberto 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 Perspective
Roberto Casadei
 
Tldr
TldrTldr
ViT (Vision Transformer) Review [CDM]
ViT (Vision Transformer) Review [CDM]ViT (Vision Transformer) Review [CDM]
ViT (Vision Transformer) Review [CDM]
Dongmin Choi
 
A novel technique for speech encryption based on k-means clustering and quant...
A novel technique for speech encryption based on k-means clustering and quant...A novel technique for speech encryption based on k-means clustering and quant...
A novel technique for speech encryption based on k-means clustering and quant...
journalBEEI
 
Methods of Manifold Learning for Dimension Reduction of Large Data Sets
Methods of Manifold Learning for Dimension Reduction of Large Data SetsMethods of Manifold Learning for Dimension Reduction of Large Data Sets
Methods of Manifold Learning for Dimension Reduction of Large Data Sets
Ryan B Harvey, CSDP, CSM
 
Transformer in Computer Vision
Transformer in Computer VisionTransformer in Computer Vision
Transformer in Computer Vision
Dongmin Choi
 
Collaborative Similarity Measure for Intra-Graph Clustering
Collaborative Similarity Measure for Intra-Graph ClusteringCollaborative Similarity Measure for Intra-Graph Clustering
Collaborative Similarity Measure for Intra-Graph ClusteringWaqas Nawaz
 
REDUCING RENDER TIME IN RAY TRACING BY PIXEL AVERAGING
REDUCING RENDER TIME IN RAY TRACING BY PIXEL AVERAGINGREDUCING RENDER TIME IN RAY TRACING BY PIXEL AVERAGING
REDUCING RENDER TIME IN RAY TRACING BY PIXEL AVERAGING
ijgca
 
Reducing Render Time in Ray Tracing by Pixel Averaging
Reducing Render Time in Ray Tracing by Pixel Averaging  Reducing Render Time in Ray Tracing by Pixel Averaging
Reducing Render Time in Ray Tracing by Pixel Averaging
ijcga
 
Dg34662666
Dg34662666Dg34662666
Dg34662666
IJERA Editor
 
Research Away Day Jun 2009
Research Away Day Jun 2009Research Away Day Jun 2009
Research Away Day Jun 2009German Terrazas
 
Training and Inference for Deep Gaussian Processes
Training and Inference for Deep Gaussian ProcessesTraining and Inference for Deep Gaussian Processes
Training and Inference for Deep Gaussian Processes
Keyon Vafa
 
ICDE-2015 Shortest Path Traversal Optimization and Analysis for Large Graph C...
ICDE-2015 Shortest Path Traversal Optimization and Analysis for Large Graph C...ICDE-2015 Shortest Path Traversal Optimization and Analysis for Large Graph C...
ICDE-2015 Shortest Path Traversal Optimization and Analysis for Large Graph C...
Waqas Nawaz
 
End-to-End Object Detection with Transformers
End-to-End Object Detection with TransformersEnd-to-End Object Detection with Transformers
End-to-End Object Detection with Transformers
Seunghyun Hwang
 
Beyond The Euclidean Distance: Creating effective visual codebooks using the ...
Beyond The Euclidean Distance: Creating effective visual codebooks using the ...Beyond The Euclidean Distance: Creating effective visual codebooks using the ...
Beyond The Euclidean Distance: Creating effective visual codebooks using the ...Shao-Chuan Wang
 
SPAR 2015 - Civil Maps Presentation by Sravan Puttagunta
SPAR 2015 - Civil Maps Presentation by Sravan PuttaguntaSPAR 2015 - Civil Maps Presentation by Sravan Puttagunta
SPAR 2015 - Civil Maps Presentation by Sravan Puttagunta
Sravan Puttagunta
 
B046050711
B046050711B046050711
B046050711
IJERA Editor
 
Recent advances on low-rank and sparse decomposition for moving object detection
Recent advances on low-rank and sparse decomposition for moving object detectionRecent advances on low-rank and sparse decomposition for moving object detection
Recent advances on low-rank and sparse decomposition for moving object detection
ActiveEon
 
Object Detection Beyond Mask R-CNN and RetinaNet III
Object Detection Beyond Mask R-CNN and RetinaNet IIIObject Detection Beyond Mask R-CNN and RetinaNet III
Object Detection Beyond Mask R-CNN and RetinaNet III
Wanjin Yu
 

What's hot (20)

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
 
Tldr
TldrTldr
Tldr
 
ViT (Vision Transformer) Review [CDM]
ViT (Vision Transformer) Review [CDM]ViT (Vision Transformer) Review [CDM]
ViT (Vision Transformer) Review [CDM]
 
A novel technique for speech encryption based on k-means clustering and quant...
A novel technique for speech encryption based on k-means clustering and quant...A novel technique for speech encryption based on k-means clustering and quant...
A novel technique for speech encryption based on k-means clustering and quant...
 
Methods of Manifold Learning for Dimension Reduction of Large Data Sets
Methods of Manifold Learning for Dimension Reduction of Large Data SetsMethods of Manifold Learning for Dimension Reduction of Large Data Sets
Methods of Manifold Learning for Dimension Reduction of Large Data Sets
 
Transformer in Computer Vision
Transformer in Computer VisionTransformer in Computer Vision
Transformer in Computer Vision
 
Collaborative Similarity Measure for Intra-Graph Clustering
Collaborative Similarity Measure for Intra-Graph ClusteringCollaborative Similarity Measure for Intra-Graph Clustering
Collaborative Similarity Measure for Intra-Graph Clustering
 
REDUCING RENDER TIME IN RAY TRACING BY PIXEL AVERAGING
REDUCING RENDER TIME IN RAY TRACING BY PIXEL AVERAGINGREDUCING RENDER TIME IN RAY TRACING BY PIXEL AVERAGING
REDUCING RENDER TIME IN RAY TRACING BY PIXEL AVERAGING
 
Reducing Render Time in Ray Tracing by Pixel Averaging
Reducing Render Time in Ray Tracing by Pixel Averaging  Reducing Render Time in Ray Tracing by Pixel Averaging
Reducing Render Time in Ray Tracing by Pixel Averaging
 
Dg34662666
Dg34662666Dg34662666
Dg34662666
 
Research Away Day Jun 2009
Research Away Day Jun 2009Research Away Day Jun 2009
Research Away Day Jun 2009
 
Training and Inference for Deep Gaussian Processes
Training and Inference for Deep Gaussian ProcessesTraining and Inference for Deep Gaussian Processes
Training and Inference for Deep Gaussian Processes
 
ICDE-2015 Shortest Path Traversal Optimization and Analysis for Large Graph C...
ICDE-2015 Shortest Path Traversal Optimization and Analysis for Large Graph C...ICDE-2015 Shortest Path Traversal Optimization and Analysis for Large Graph C...
ICDE-2015 Shortest Path Traversal Optimization and Analysis for Large Graph C...
 
End-to-End Object Detection with Transformers
End-to-End Object Detection with TransformersEnd-to-End Object Detection with Transformers
End-to-End Object Detection with Transformers
 
Beyond The Euclidean Distance: Creating effective visual codebooks using the ...
Beyond The Euclidean Distance: Creating effective visual codebooks using the ...Beyond The Euclidean Distance: Creating effective visual codebooks using the ...
Beyond The Euclidean Distance: Creating effective visual codebooks using the ...
 
SPAR 2015 - Civil Maps Presentation by Sravan Puttagunta
SPAR 2015 - Civil Maps Presentation by Sravan PuttaguntaSPAR 2015 - Civil Maps Presentation by Sravan Puttagunta
SPAR 2015 - Civil Maps Presentation by Sravan Puttagunta
 
B046050711
B046050711B046050711
B046050711
 
Recent advances on low-rank and sparse decomposition for moving object detection
Recent advances on low-rank and sparse decomposition for moving object detectionRecent advances on low-rank and sparse decomposition for moving object detection
Recent advances on low-rank and sparse decomposition for moving object detection
 
Object Detection Beyond Mask R-CNN and RetinaNet III
Object Detection Beyond Mask R-CNN and RetinaNet IIIObject Detection Beyond Mask R-CNN and RetinaNet III
Object Detection Beyond Mask R-CNN and RetinaNet III
 

Viewers also liked

Effective unit testing
Effective unit testingEffective unit testing
Effective unit testing
Roberto Casadei
 
Aggregate Programming in Scala
Aggregate Programming in ScalaAggregate Programming in Scala
Aggregate Programming in Scala
Roberto Casadei
 
Haskell
HaskellHaskell
Towards Aggregate Programming in Scala
Towards Aggregate Programming in ScalaTowards Aggregate Programming in Scala
Towards Aggregate Programming in Scala
Roberto Casadei
 
Practical Aggregate Programming in Scala
Practical Aggregate Programming in ScalaPractical Aggregate Programming in Scala
Practical Aggregate Programming in Scala
Roberto Casadei
 
Programming in Scala: Notes
Programming in Scala: NotesProgramming in Scala: Notes
Programming in Scala: Notes
Roberto Casadei
 
Programming Actor-based Collective Adaptive Systems
Programming Actor-based Collective Adaptive SystemsProgramming Actor-based Collective Adaptive Systems
Programming Actor-based Collective Adaptive Systems
Roberto Casadei
 
Functional Programming in Scala: Notes
Functional Programming in Scala: NotesFunctional Programming in Scala: Notes
Functional Programming in Scala: Notes
Roberto Casadei
 

Viewers also liked (8)

Effective unit testing
Effective unit testingEffective unit testing
Effective unit testing
 
Aggregate Programming in Scala
Aggregate Programming in ScalaAggregate Programming in Scala
Aggregate Programming in Scala
 
Haskell
HaskellHaskell
Haskell
 
Towards Aggregate Programming in Scala
Towards Aggregate Programming in ScalaTowards Aggregate Programming in Scala
Towards Aggregate Programming in Scala
 
Practical Aggregate Programming in Scala
Practical Aggregate Programming in ScalaPractical Aggregate Programming in Scala
Practical Aggregate Programming in Scala
 
Programming in Scala: Notes
Programming in Scala: NotesProgramming in Scala: Notes
Programming in Scala: Notes
 
Programming Actor-based Collective Adaptive Systems
Programming Actor-based Collective Adaptive SystemsProgramming Actor-based Collective Adaptive Systems
Programming Actor-based Collective Adaptive Systems
 
Functional Programming in Scala: Notes
Functional Programming in Scala: NotesFunctional Programming in Scala: Notes
Functional Programming in Scala: Notes
 

Similar to On Execution Platforms for Large-Scale Aggregate Computing

Towards Automated Engineering for Collective Adaptive Systems: Vision and Res...
Towards Automated Engineering for Collective Adaptive Systems: Vision and Res...Towards Automated Engineering for Collective Adaptive Systems: Vision and Res...
Towards Automated Engineering for Collective Adaptive Systems: Vision and Res...
Roberto 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 Gradients
Roberto Casadei
 
Computational Fields meet Augmented Reality: Perspectives and Challenges
Computational Fields meet Augmented Reality: Perspectives and ChallengesComputational Fields meet Augmented Reality: Perspectives and Challenges
Computational Fields meet Augmented Reality: Perspectives and Challenges
Danilo Pianini
 
Towards Edge Computing as a Service: Dynamic Formation of the Micro Data-Centers
Towards Edge Computing as a Service: Dynamic Formation of the Micro Data-CentersTowards Edge Computing as a Service: Dynamic Formation of the Micro Data-Centers
Towards Edge Computing as a Service: Dynamic Formation of the Micro Data-Centers
Faculty of Technical Sciences, University of Novi Sad
 
Aggregate Computing Research: an Overview
Aggregate Computing Research: an OverviewAggregate Computing Research: an Overview
Aggregate Computing Research: an Overview
Roberto Casadei
 
Enabling Application Integrated Proactive Fault Tolerance
Enabling Application Integrated Proactive Fault ToleranceEnabling Application Integrated Proactive Fault Tolerance
Enabling Application Integrated Proactive Fault Tolerance
Dai Yang
 
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
 
Knowledge Engineering For Automated Planning
Knowledge Engineering For Automated PlanningKnowledge Engineering For Automated Planning
Knowledge Engineering For Automated Planning
ahmad bassiouny
 
Knowledge Engineering For Automated Planning
Knowledge Engineering For Automated PlanningKnowledge Engineering For Automated Planning
Knowledge Engineering For Automated Planning
ahmad bassiouny
 
On Context-Orientation in Aggregate Programming
On Context-Orientation in Aggregate ProgrammingOn Context-Orientation in Aggregate Programming
On Context-Orientation in Aggregate Programming
Roberto Casadei
 
How Microsoft Built and Scaled Cosmos
How Microsoft Built and Scaled CosmosHow Microsoft Built and Scaled Cosmos
How Microsoft Built and Scaled Cosmos
SingleStore
 
LIFT: A Legacy InFormation retrieval Tool
LIFT: A Legacy InFormation retrieval ToolLIFT: A Legacy InFormation retrieval Tool
LIFT: A Legacy InFormation retrieval Tool
Kellyton Brito
 
Programming Distributed Collective Processes for Dynamic Ensembles and Collec...
Programming Distributed Collective Processes for Dynamic Ensembles and Collec...Programming Distributed Collective Processes for Dynamic Ensembles and Collec...
Programming Distributed Collective Processes for Dynamic Ensembles and Collec...
Roberto Casadei
 
Black Box Methods for Inferring Parallel Applications' Properties in Virtual ...
Black Box Methods for Inferring Parallel Applications' Properties in Virtual ...Black Box Methods for Inferring Parallel Applications' Properties in Virtual ...
Black Box Methods for Inferring Parallel Applications' Properties in Virtual ...
Ashish Gupta
 
Computational steering Interactive Design-through-Analysis for Simulation Sci...
Computational steering Interactive Design-through-Analysis for Simulation Sci...Computational steering Interactive Design-through-Analysis for Simulation Sci...
Computational steering Interactive Design-through-Analysis for Simulation Sci...
SURFevents
 
Interface management incose2014_lisi
Interface management incose2014_lisiInterface management incose2014_lisi
Interface management incose2014_lisi
Marco Lisi
 
[Capella Day Toulouse] Driving intelligent transportation systems with Capella
[Capella Day Toulouse] Driving intelligent transportation systems with Capella[Capella Day Toulouse] Driving intelligent transportation systems with Capella
[Capella Day Toulouse] Driving intelligent transportation systems with Capella
Obeo
 
Collective Mind: a collaborative curation tool for program optimization
Collective Mind: a collaborative curation tool for program optimizationCollective Mind: a collaborative curation tool for program optimization
Collective Mind: a collaborative curation tool for program optimization
Grigori Fursin
 
Visual Search and Question Answering II
Visual Search and Question Answering IIVisual Search and Question Answering II
Visual Search and Question Answering II
Wanjin Yu
 
ScaFi-Web, A Web-Based application for Field-based Coordination
ScaFi-Web, A Web-Based application for Field-based CoordinationScaFi-Web, A Web-Based application for Field-based Coordination
ScaFi-Web, A Web-Based application for Field-based Coordination
Gianluca Aguzzi
 

Similar to On Execution Platforms for Large-Scale Aggregate Computing (20)

Towards Automated Engineering for Collective Adaptive Systems: Vision and Res...
Towards Automated Engineering for Collective Adaptive Systems: Vision and Res...Towards Automated Engineering for Collective Adaptive Systems: Vision and Res...
Towards Automated Engineering for Collective Adaptive Systems: Vision and Res...
 
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
 
Computational Fields meet Augmented Reality: Perspectives and Challenges
Computational Fields meet Augmented Reality: Perspectives and ChallengesComputational Fields meet Augmented Reality: Perspectives and Challenges
Computational Fields meet Augmented Reality: Perspectives and Challenges
 
Towards Edge Computing as a Service: Dynamic Formation of the Micro Data-Centers
Towards Edge Computing as a Service: Dynamic Formation of the Micro Data-CentersTowards Edge Computing as a Service: Dynamic Formation of the Micro Data-Centers
Towards Edge Computing as a Service: Dynamic Formation of the Micro Data-Centers
 
Aggregate Computing Research: an Overview
Aggregate Computing Research: an OverviewAggregate Computing Research: an Overview
Aggregate Computing Research: an Overview
 
Enabling Application Integrated Proactive Fault Tolerance
Enabling Application Integrated Proactive Fault ToleranceEnabling Application Integrated Proactive Fault Tolerance
Enabling Application Integrated Proactive Fault Tolerance
 
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) [...
 
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
 
On Context-Orientation in Aggregate Programming
On Context-Orientation in Aggregate ProgrammingOn Context-Orientation in Aggregate Programming
On Context-Orientation in Aggregate Programming
 
How Microsoft Built and Scaled Cosmos
How Microsoft Built and Scaled CosmosHow Microsoft Built and Scaled Cosmos
How Microsoft Built and Scaled Cosmos
 
LIFT: A Legacy InFormation retrieval Tool
LIFT: A Legacy InFormation retrieval ToolLIFT: A Legacy InFormation retrieval Tool
LIFT: A Legacy InFormation retrieval Tool
 
Programming Distributed Collective Processes for Dynamic Ensembles and Collec...
Programming Distributed Collective Processes for Dynamic Ensembles and Collec...Programming Distributed Collective Processes for Dynamic Ensembles and Collec...
Programming Distributed Collective Processes for Dynamic Ensembles and Collec...
 
Black Box Methods for Inferring Parallel Applications' Properties in Virtual ...
Black Box Methods for Inferring Parallel Applications' Properties in Virtual ...Black Box Methods for Inferring Parallel Applications' Properties in Virtual ...
Black Box Methods for Inferring Parallel Applications' Properties in Virtual ...
 
Computational steering Interactive Design-through-Analysis for Simulation Sci...
Computational steering Interactive Design-through-Analysis for Simulation Sci...Computational steering Interactive Design-through-Analysis for Simulation Sci...
Computational steering Interactive Design-through-Analysis for Simulation Sci...
 
Interface management incose2014_lisi
Interface management incose2014_lisiInterface management incose2014_lisi
Interface management incose2014_lisi
 
[Capella Day Toulouse] Driving intelligent transportation systems with Capella
[Capella Day Toulouse] Driving intelligent transportation systems with Capella[Capella Day Toulouse] Driving intelligent transportation systems with Capella
[Capella Day Toulouse] Driving intelligent transportation systems with Capella
 
Collective Mind: a collaborative curation tool for program optimization
Collective Mind: a collaborative curation tool for program optimizationCollective Mind: a collaborative curation tool for program optimization
Collective Mind: a collaborative curation tool for program optimization
 
Visual Search and Question Answering II
Visual Search and Question Answering IIVisual Search and Question Answering II
Visual Search and Question Answering II
 
ScaFi-Web, A Web-Based application for Field-based Coordination
ScaFi-Web, A Web-Based application for Field-based CoordinationScaFi-Web, A Web-Based application for Field-based Coordination
ScaFi-Web, A Web-Based application for Field-based Coordination
 

More from Roberto 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
 
A Presentation of My Research Activity
A Presentation of My Research ActivityA Presentation of My Research Activity
A Presentation of My Research Activity
Roberto 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 intelligence
Roberto 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 Programming
Roberto 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 Systems
Roberto 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 Systems
Roberto 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
 
Testing: an Introduction and Panorama
Testing: an Introduction and PanoramaTesting: an Introduction and Panorama
Testing: an Introduction and Panorama
Roberto Casadei
 
Engineering Resilient Collaborative Edge-enabled IoT
Engineering Resilient Collaborative Edge-enabled IoTEngineering Resilient Collaborative Edge-enabled IoT
Engineering Resilient Collaborative Edge-enabled IoT
Roberto Casadei
 
Aggregate Processes in Field Calculus
Aggregate Processes in Field CalculusAggregate Processes in Field Calculus
Aggregate Processes in Field Calculus
Roberto Casadei
 
AWS and Serverless Computing
AWS and Serverless ComputingAWS and Serverless Computing
AWS and Serverless Computing
Roberto Casadei
 
The Rust Programming Language: an Overview
The Rust Programming Language: an OverviewThe Rust Programming Language: an Overview
The Rust Programming Language: an Overview
Roberto Casadei
 
Akka Remoting and Clustering: an Introduction
Akka Remoting and Clustering: an IntroductionAkka Remoting and Clustering: an Introduction
Akka Remoting and Clustering: an Introduction
Roberto Casadei
 
Akka Actors: an Introduction
Akka Actors: an IntroductionAkka Actors: an Introduction
Akka Actors: an Introduction
Roberto Casadei
 
NodeJS: an Introduction
NodeJS: an IntroductionNodeJS: an Introduction
NodeJS: an Introduction
Roberto Casadei
 
Spring Boot: a Quick Introduction
Spring Boot: a Quick IntroductionSpring Boot: a Quick Introduction
Spring Boot: a Quick Introduction
Roberto 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 (17)

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...
 
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
 
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
 
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
 
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...
 
Testing: an Introduction and Panorama
Testing: an Introduction and PanoramaTesting: an Introduction and Panorama
Testing: an Introduction and Panorama
 
Engineering Resilient Collaborative Edge-enabled IoT
Engineering Resilient Collaborative Edge-enabled IoTEngineering Resilient Collaborative Edge-enabled IoT
Engineering Resilient Collaborative Edge-enabled IoT
 
Aggregate Processes in Field Calculus
Aggregate Processes in Field CalculusAggregate Processes in Field Calculus
Aggregate Processes in Field Calculus
 
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
 
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

Body fluids_tonicity_dehydration_hypovolemia_hypervolemia.pptx
Body fluids_tonicity_dehydration_hypovolemia_hypervolemia.pptxBody fluids_tonicity_dehydration_hypovolemia_hypervolemia.pptx
Body fluids_tonicity_dehydration_hypovolemia_hypervolemia.pptx
muralinath2
 
Astronomy Update- Curiosity’s exploration of Mars _ Local Briefs _ leadertele...
Astronomy Update- Curiosity’s exploration of Mars _ Local Briefs _ leadertele...Astronomy Update- Curiosity’s exploration of Mars _ Local Briefs _ leadertele...
Astronomy Update- Curiosity’s exploration of Mars _ Local Briefs _ leadertele...
NathanBaughman3
 
role of pramana in research.pptx in science
role of pramana in research.pptx in sciencerole of pramana in research.pptx in science
role of pramana in research.pptx in science
sonaliswain16
 
Citrus Greening Disease and its Management
Citrus Greening Disease and its ManagementCitrus Greening Disease and its Management
Citrus Greening Disease and its Management
subedisuryaofficial
 
4. An Overview of Sugarcane White Leaf Disease in Vietnam.pdf
4. An Overview of Sugarcane White Leaf Disease in Vietnam.pdf4. An Overview of Sugarcane White Leaf Disease in Vietnam.pdf
4. An Overview of Sugarcane White Leaf Disease in Vietnam.pdf
ssuserbfdca9
 
PRESENTATION ABOUT PRINCIPLE OF COSMATIC EVALUATION
PRESENTATION ABOUT PRINCIPLE OF COSMATIC EVALUATIONPRESENTATION ABOUT PRINCIPLE OF COSMATIC EVALUATION
PRESENTATION ABOUT PRINCIPLE OF COSMATIC EVALUATION
ChetanK57
 
The ASGCT Annual Meeting was packed with exciting progress in the field advan...
The ASGCT Annual Meeting was packed with exciting progress in the field advan...The ASGCT Annual Meeting was packed with exciting progress in the field advan...
The ASGCT Annual Meeting was packed with exciting progress in the field advan...
Health Advances
 
Multi-source connectivity as the driver of solar wind variability in the heli...
Multi-source connectivity as the driver of solar wind variability in the heli...Multi-source connectivity as the driver of solar wind variability in the heli...
Multi-source connectivity as the driver of solar wind variability in the heli...
Sérgio Sacani
 
Leaf Initiation, Growth and Differentiation.pdf
Leaf Initiation, Growth and Differentiation.pdfLeaf Initiation, Growth and Differentiation.pdf
Leaf Initiation, Growth and Differentiation.pdf
RenuJangid3
 
What is greenhouse gasses and how many gasses are there to affect the Earth.
What is greenhouse gasses and how many gasses are there to affect the Earth.What is greenhouse gasses and how many gasses are there to affect the Earth.
What is greenhouse gasses and how many gasses are there to affect the Earth.
moosaasad1975
 
Orion Air Quality Monitoring Systems - CWS
Orion Air Quality Monitoring Systems - CWSOrion Air Quality Monitoring Systems - CWS
Orion Air Quality Monitoring Systems - CWS
Columbia Weather Systems
 
general properties of oerganologametal.ppt
general properties of oerganologametal.pptgeneral properties of oerganologametal.ppt
general properties of oerganologametal.ppt
IqrimaNabilatulhusni
 
filosofia boliviana introducción jsjdjd.pptx
filosofia boliviana introducción jsjdjd.pptxfilosofia boliviana introducción jsjdjd.pptx
filosofia boliviana introducción jsjdjd.pptx
IvanMallco1
 
Richard's aventures in two entangled wonderlands
Richard's aventures in two entangled wonderlandsRichard's aventures in two entangled wonderlands
Richard's aventures in two entangled wonderlands
Richard Gill
 
Structures and textures of metamorphic rocks
Structures and textures of metamorphic rocksStructures and textures of metamorphic rocks
Structures and textures of metamorphic rocks
kumarmathi863
 
Mammalian Pineal Body Structure and Also Functions
Mammalian Pineal Body Structure and Also FunctionsMammalian Pineal Body Structure and Also Functions
Mammalian Pineal Body Structure and Also Functions
YOGESH DOGRA
 
insect taxonomy importance systematics and classification
insect taxonomy importance systematics and classificationinsect taxonomy importance systematics and classification
insect taxonomy importance systematics and classification
anitaento25
 
ESR_factors_affect-clinic significance-Pathysiology.pptx
ESR_factors_affect-clinic significance-Pathysiology.pptxESR_factors_affect-clinic significance-Pathysiology.pptx
ESR_factors_affect-clinic significance-Pathysiology.pptx
muralinath2
 
Hemoglobin metabolism_pathophysiology.pptx
Hemoglobin metabolism_pathophysiology.pptxHemoglobin metabolism_pathophysiology.pptx
Hemoglobin metabolism_pathophysiology.pptx
muralinath2
 
platelets- lifespan -Clot retraction-disorders.pptx
platelets- lifespan -Clot retraction-disorders.pptxplatelets- lifespan -Clot retraction-disorders.pptx
platelets- lifespan -Clot retraction-disorders.pptx
muralinath2
 

Recently uploaded (20)

Body fluids_tonicity_dehydration_hypovolemia_hypervolemia.pptx
Body fluids_tonicity_dehydration_hypovolemia_hypervolemia.pptxBody fluids_tonicity_dehydration_hypovolemia_hypervolemia.pptx
Body fluids_tonicity_dehydration_hypovolemia_hypervolemia.pptx
 
Astronomy Update- Curiosity’s exploration of Mars _ Local Briefs _ leadertele...
Astronomy Update- Curiosity’s exploration of Mars _ Local Briefs _ leadertele...Astronomy Update- Curiosity’s exploration of Mars _ Local Briefs _ leadertele...
Astronomy Update- Curiosity’s exploration of Mars _ Local Briefs _ leadertele...
 
role of pramana in research.pptx in science
role of pramana in research.pptx in sciencerole of pramana in research.pptx in science
role of pramana in research.pptx in science
 
Citrus Greening Disease and its Management
Citrus Greening Disease and its ManagementCitrus Greening Disease and its Management
Citrus Greening Disease and its Management
 
4. An Overview of Sugarcane White Leaf Disease in Vietnam.pdf
4. An Overview of Sugarcane White Leaf Disease in Vietnam.pdf4. An Overview of Sugarcane White Leaf Disease in Vietnam.pdf
4. An Overview of Sugarcane White Leaf Disease in Vietnam.pdf
 
PRESENTATION ABOUT PRINCIPLE OF COSMATIC EVALUATION
PRESENTATION ABOUT PRINCIPLE OF COSMATIC EVALUATIONPRESENTATION ABOUT PRINCIPLE OF COSMATIC EVALUATION
PRESENTATION ABOUT PRINCIPLE OF COSMATIC EVALUATION
 
The ASGCT Annual Meeting was packed with exciting progress in the field advan...
The ASGCT Annual Meeting was packed with exciting progress in the field advan...The ASGCT Annual Meeting was packed with exciting progress in the field advan...
The ASGCT Annual Meeting was packed with exciting progress in the field advan...
 
Multi-source connectivity as the driver of solar wind variability in the heli...
Multi-source connectivity as the driver of solar wind variability in the heli...Multi-source connectivity as the driver of solar wind variability in the heli...
Multi-source connectivity as the driver of solar wind variability in the heli...
 
Leaf Initiation, Growth and Differentiation.pdf
Leaf Initiation, Growth and Differentiation.pdfLeaf Initiation, Growth and Differentiation.pdf
Leaf Initiation, Growth and Differentiation.pdf
 
What is greenhouse gasses and how many gasses are there to affect the Earth.
What is greenhouse gasses and how many gasses are there to affect the Earth.What is greenhouse gasses and how many gasses are there to affect the Earth.
What is greenhouse gasses and how many gasses are there to affect the Earth.
 
Orion Air Quality Monitoring Systems - CWS
Orion Air Quality Monitoring Systems - CWSOrion Air Quality Monitoring Systems - CWS
Orion Air Quality Monitoring Systems - CWS
 
general properties of oerganologametal.ppt
general properties of oerganologametal.pptgeneral properties of oerganologametal.ppt
general properties of oerganologametal.ppt
 
filosofia boliviana introducción jsjdjd.pptx
filosofia boliviana introducción jsjdjd.pptxfilosofia boliviana introducción jsjdjd.pptx
filosofia boliviana introducción jsjdjd.pptx
 
Richard's aventures in two entangled wonderlands
Richard's aventures in two entangled wonderlandsRichard's aventures in two entangled wonderlands
Richard's aventures in two entangled wonderlands
 
Structures and textures of metamorphic rocks
Structures and textures of metamorphic rocksStructures and textures of metamorphic rocks
Structures and textures of metamorphic rocks
 
Mammalian Pineal Body Structure and Also Functions
Mammalian Pineal Body Structure and Also FunctionsMammalian Pineal Body Structure and Also Functions
Mammalian Pineal Body Structure and Also Functions
 
insect taxonomy importance systematics and classification
insect taxonomy importance systematics and classificationinsect taxonomy importance systematics and classification
insect taxonomy importance systematics and classification
 
ESR_factors_affect-clinic significance-Pathysiology.pptx
ESR_factors_affect-clinic significance-Pathysiology.pptxESR_factors_affect-clinic significance-Pathysiology.pptx
ESR_factors_affect-clinic significance-Pathysiology.pptx
 
Hemoglobin metabolism_pathophysiology.pptx
Hemoglobin metabolism_pathophysiology.pptxHemoglobin metabolism_pathophysiology.pptx
Hemoglobin metabolism_pathophysiology.pptx
 
platelets- lifespan -Clot retraction-disorders.pptx
platelets- lifespan -Clot retraction-disorders.pptxplatelets- lifespan -Clot retraction-disorders.pptx
platelets- lifespan -Clot retraction-disorders.pptx
 

On Execution Platforms for Large-Scale Aggregate Computing

  • 1. On Execution Platforms for Large-Scale Aggregate Computing Mirko Viroli Roberto Casadei Danilo Pianini Department of Computer Science and Engineering University of Bologna Workshop on Collective Adaptation in Very Large Scale Ubicomp: Towards a Superorganism of Wearables (VLSU), Ubicomp/ISWC Adjunct, September 2016, Heidelberg (Germany) R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 1 / 47
  • 2. Outline 1 Context and Issues 2 Aggregate Computing 3 Execution Platforms for Aggregate Computing 4 Summary R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 2 / 47
  • 3. Context and Issues Outline 1 Context and Issues 2 Aggregate Computing 3 Execution Platforms for Aggregate Computing 4 Summary R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 3 / 47
  • 4. Context and Issues Context Environment + (Mobile, Large-scale) Networks of { people + devices } R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 4 / 47
  • 5. Context and Issues The Crowd Engineering Example I Wearable devices collectively form a “diffused” computational system. Upon it, an ecosystem of (CAS) services can be envisioned. R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 5 / 47
  • 6. Context and Issues The Crowd Engineering Example II Mechanisms Gathering local context R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 6 / 47
  • 7. Context and Issues The Crowd Engineering Example III Mechanisms Sensing global patterns of data R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 7 / 47
  • 8. Context and Issues The Crowd Engineering Example IV Services Crowd detection R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 8 / 47
  • 9. Context and Issues The Crowd Engineering Example V Services Crowd anticipation R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 9 / 47
  • 10. Context and Issues The Crowd Engineering Example VI Services Crowd-aware steering R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 10 / 47
  • 11. Context and Issues The Crowd Engineering Example VII Services Crowd dispersal R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 11 / 47
  • 12. Context and Issues The systems of tomorrow today... The landscape Driving forces • Miniaturisation, low cost ⇒ more and more devices embedded into environment • New business opportunities and trends Frictions • Redundant effort in multiple niches • Fuzzy boundaries, multifaceted, varied, with issues at multiple levels Key issues • Large-scale ⇒ decentralisation • Complex dynamics ⇒ good abstractions • Situatedness ⇒ substantial unpredictability ⇒ self-adaptivity How can we reliably engineer situated CASs? • .. and keep our solutions independent from many aspects? R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 12 / 47
  • 13. Aggregate Computing Outline 1 Context and Issues 2 Aggregate Computing 3 Execution Platforms for Aggregate Computing 4 Summary R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 13 / 47
  • 14. Aggregate Computing The origins: space-time programming [BV15] Space-oriented computation – Thematic areas (a) Intensive computing (b) Computation embedded in space (c) Space computation Decentralised spatial computing Computing “somewhere” [Duc13] • Location-related information • Spatial constraints to communication Space-time programming [BV15] • Computation expressed in terms of properties of the physical time and space in which it occurs • Spatial abstractions R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 14 / 47
  • 15. Aggregate Computing Discrete system vs. continuous space-time R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 15 / 47
  • 16. Aggregate Computing Aggregate programming [BPV15] Programming (collective adaptive) systems: viewpoints (a) Local viewpoint (device-centric view) (b) Global viewpoint (aggregate view) Aggregate programming: what Goal: programming the collective behaviour of aggregates Global-to-local mapping Aggregate programming: how Prominent approach founded on field calculus and self-org patterns • Computational fields as unifying abstraction of local/global viewpoints Composable self-organisation • Self-stabilisation • Building blocks for resilient coordination R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 16 / 47
  • 17. Aggregate Computing Device-centric programming Issues • Local-to-global mapping problem (generally intractable) • Explicit design of adaptation and communication • Mixing of concerns — state management, interaction, adaptation, resiliency, etc. R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 17 / 47
  • 18. Aggregate Computing Device-centric programming Issues • Local-to-global mapping problem (generally intractable) • Explicit design of adaptation and communication • Mixing of concerns — state management, interaction, adaptation, resiliency, etc. R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 17 / 47
  • 19. Aggregate Computing Aggregate-level programming Collective services on the computational fabric available in space • Automatic global-to-local mapping • Implicit adaptation and communication • Composition of loosely coupled services R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 18 / 47
  • 20. Aggregate Computing Aggregate-level programming Collective services on the computational fabric available in space • Automatic global-to-local mapping • Implicit adaptation and communication • Composition of loosely coupled services R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 18 / 47
  • 21. Aggregate Computing Aggregate (computing) systems Structure A set of networked devices • Each one is given the same field calculus program. • FC has mechanisms to differentiate local executions within a global behaviour. • The execution semantics of FC gets context-dependent via local features (e.g., sensors) and nbr. Dynamics Each device computes the given program at asyn / partially-sync rounds of execution (1) Retrieve context ⇐ Messages from neighbours ⇐ Sensor values (2) Aggregate program execution ⇒ export (3) Broadcast export to neighbourhood (4) Execute actuators R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 19 / 47
  • 22. Aggregate Computing SCAFI: Scala with Computational Fields What SCAFI [CV16] is an integrated framework for building systems with aggregate programming. • Scala-internal DSL for expressing aggregate computations. • Linguistic support + execution support (interpreter/VM) • Correct, complete, efficient implementation of the HOFC semantics • Distributed platform for execution of aggregate systems. • Support for multiple architectural styles and system configurations. • Actor-based implementation (based on Akka). Where http://scafi.apice.unibo.it (a better release soon) Why Scala? R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 20 / 47
  • 23. Aggregate Computing Computational fields • (Abstract interpretation) Mapping space-time to computational objects • (Concrete interpretation) Mapping devices to values: φ : δ → • “Distributed” data structure working as the global abstraction R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 21 / 47
  • 24. Aggregate Computing Computing with fields I Expressing aggregate/field computations in SCAFI trait Constructs { def rep[A](init: A)(fun: (A) => A): A def nbr[A](expr: => A): A def foldhood[A](init: => A)(acc: (A,A)=>A)(expr: => A): A def aggregate[A](f: => A): A // Not primitive, but foundational def sense[A](name: LSNS): A def nbrvar[A](name: NSNS): A def branch[A](cond: => Boolean)(th: => A)(el: => A): A } • Mechanisms for context-sensitiveness: nbr, nbrvar, sense • Mechanisms for field evolution: rep • Mechanisms for interaction: nbr • Mechanisms for field domain restriction: aggregate, branch • Reference formal system: field calculus [DVB16, DVPB15] R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 22 / 47
  • 25. Aggregate Computing Computing with fields II Global-level semantics, intuitively 0 (x)=>x+1 true t<0,1> ()0 1 + - 1 -1 ef(0,1) ef rep 0 (x)=>x+1 t v0 t v1 .. rep(0){(x)=>x+1} nbr de nbr{e} φd=[d1→v1,..,dn→vn] R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 23 / 47
  • 26. Aggregate Computing Example: the channel I def channel(src: Boolean, dest: Boolean, width: Double) = distanceTo(src) + distanceTo(dest) <= distBetween(src, dest) + width R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 24 / 47
  • 27. Aggregate Computing Example: the channel (full code) def channel(src: Boolean, dest: Boolean, width: Double) = distanceTo(src) + distanceTo(dest) <= distBetween(src, dest) + width def distanceTo(source: Boolean): Double = G[Double](source, 0, _ + nbrRange(), nbrRange()) def distBetween(source: Boolean, target: Boolean): Double = broadcast(source, distanceTo(target)) def G[V:OB](src: Boolean, field: V, acc: V=>V, metric: =>Double): V = rep( (Double.MaxValue, field) ){ dv => mux(src) { (0.0, field) } { minHoodMinus { val (d, v) = nbr { (dv._1, dv._2) } (d + metric, acc(v)) } } }._2 def broadcast[V:OB](source: Boolean, field: V): V = G[V](source, field, x=>x, nbrRange()) def nbrRange(): Double = nbrvar[Double](NBR_RANGE_NAME) def isSource = sense[Boolean]("source") def isObstacle = sense[Boolean]("obstacle") R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 25 / 47
  • 28. Aggregate Computing Aggregate Programming Stack R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 26 / 47
  • 29. Aggregate Computing Ex. of concrete system: nbr counting in p2p, ad-hoc net // STEP 1: CHOOSE INCARNATION import it.unibo.scafi.incarnations.{ BasicActorP2P => Platform } // STEP 2: DEFINE AGGREGATE PROGRAM SCHEMA class Demo0C_AggregateProgram extends Platform.AggregateProgram { override def main(): Any = foldhood(0){_ + _}(1) } // STEP 3: DEFINE MAIN PROGRAM object Demo0C_MainProgram extends Platform.CmdLineMain 1) Demo_MainProgram -h 127.0.0.1 -p 9000 -e 1:2,4,5;2;3 --subsystems 127.0.0.1:9500:4:5 --program "demos.Demo_AggregateProgram" 2) Demo_MainProgram -h 127.0.0.1 -p 9500 -e 4;5:4 --program "demos.Demo_AggregateProgram" R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 27 / 47
  • 30. Aggregate Computing Summary: the AC approach to the engineering of CASs The Aggregate Computing way • Abstraction gap — i.e., the distance from the problem to the solution =⇒ Abstractions close to problem domain =⇒ Declarative approach – from how to what =⇒ Layered approach – raising abstraction incrementally • Capturing complex behaviours in a simple way =⇒ Instrumental assumptions + effective building blocks =⇒ Balance of top-down and bottom-up problem solving (sort of match-in-the-middle) • Supporting modularity and reusability =⇒ Compositional approach • Guiding engineering for resilience =⇒ Adaptation by construction R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 28 / 47
  • 31. Aggregate Computing Summary: the AC approach to the engineering of CASs The Aggregate Computing way • Abstraction gap — i.e., the distance from the problem to the solution =⇒ Abstractions close to problem domain =⇒ Declarative approach – from how to what =⇒ Layered approach – raising abstraction incrementally • Capturing complex behaviours in a simple way =⇒ Instrumental assumptions + effective building blocks =⇒ Balance of top-down and bottom-up problem solving (sort of match-in-the-middle) • Supporting modularity and reusability =⇒ Compositional approach • Guiding engineering for resilience =⇒ Adaptation by construction R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 28 / 47
  • 32. Aggregate Computing Summary: the AC approach to the engineering of CASs The Aggregate Computing way • Abstraction gap — i.e., the distance from the problem to the solution =⇒ Abstractions close to problem domain =⇒ Declarative approach – from how to what =⇒ Layered approach – raising abstraction incrementally • Capturing complex behaviours in a simple way =⇒ Instrumental assumptions + effective building blocks =⇒ Balance of top-down and bottom-up problem solving (sort of match-in-the-middle) • Supporting modularity and reusability =⇒ Compositional approach • Guiding engineering for resilience =⇒ Adaptation by construction R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 28 / 47
  • 33. Aggregate Computing Summary: the AC approach to the engineering of CASs The Aggregate Computing way • Abstraction gap — i.e., the distance from the problem to the solution =⇒ Abstractions close to problem domain =⇒ Declarative approach – from how to what =⇒ Layered approach – raising abstraction incrementally • Capturing complex behaviours in a simple way =⇒ Instrumental assumptions + effective building blocks =⇒ Balance of top-down and bottom-up problem solving (sort of match-in-the-middle) • Supporting modularity and reusability =⇒ Compositional approach • Guiding engineering for resilience =⇒ Adaptation by construction R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 28 / 47
  • 34. Aggregate Computing Summary: the AC approach to the engineering of CASs The Aggregate Computing way • Abstraction gap — i.e., the distance from the problem to the solution =⇒ Abstractions close to problem domain =⇒ Declarative approach – from how to what =⇒ Layered approach – raising abstraction incrementally • Capturing complex behaviours in a simple way =⇒ Instrumental assumptions + effective building blocks =⇒ Balance of top-down and bottom-up problem solving (sort of match-in-the-middle) • Supporting modularity and reusability =⇒ Compositional approach • Guiding engineering for resilience =⇒ Adaptation by construction R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 28 / 47
  • 35. Execution Platforms for Aggregate Computing Outline 1 Context and Issues 2 Aggregate Computing 3 Execution Platforms for Aggregate Computing 4 Summary R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 29 / 47
  • 36. Execution Platforms for Aggregate Computing Aggregate computing and abstraction (Partial) insensitiveness to system structure and situation details [BVPD16] Aggregate behaviours are highly insensitive to: • network size • network density • network topology This makes algorithms intrinsically robust to failures and changes to working conditions [VBDP15]. (Partial) insensitiveness to execution strategy Note: network nodes ultimately correspond to components operating in some context via sensors/actuators. Aggregate computations can be carried out in different ways: • Computing nodes and “native” local communication; • Computations performed by a central server; • Computations performed in the cloud; ... Idea: opportunistically exploit the underlying infrastructure R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 30 / 47
  • 37. Execution Platforms for Aggregate Computing (Fully operational) Device actors Responsibilities (each one can be reified as an actor/subcomponent) (i) Sensing/actuating (ii) Aggregate program execution (iii) Broadcasting/receiving the exports of computation to/from neighbours (iv) Storing state (last computation, exports from neighbours) R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 31 / 47
  • 38. Execution Platforms for Aggregate Computing Peer-to-peer Peer-to-peer platform style • Each device processes the aggregate program on-site and directly communicates with other devices. • Suited for ad-hoc networks. R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 32 / 47
  • 39. Execution Platforms for Aggregate Computing Mediating server Communication mediator • Device-to-device communications are mediated by a server component. • Hence, the neighbouring logic is moved away from devices. R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 33 / 47
  • 40. Execution Platforms for Aggregate Computing Demo: server-based, mobile spatial net I R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 34 / 47
  • 41. Execution Platforms for Aggregate Computing Demo: server-based, mobile spatial net II import it.unibo.scafi.distrib.actor.server.{SpatialPlatform => SpatialServerBasedActorPlatform} import it.unibo.scafi.incarnations.BasicAbstractActorIncarnation import it.unibo.scafi.space.{Point2D, BasicSpatialAbstraction} object Platform extends BasicAbstractActorIncarnation with SpatialServerBasedActorPlatform with BasicSpatialAbstraction with Serializable { override val LocationSensorName: String = "LOCATION_SENSOR" override type P = Point2D override def buildNewSpace[E](elems: Iterable[(E,P)]): SPACE[E] = new Basic3DSpace(elems.toMap) { override val proximityThreshold = 1.1 } } // STEP 2: DEFINE AGGREGATE PROGRAM SCHEMA class AggregateProgram extends Platform.AggregateProgram { def hopGradient(source: Boolean): Double = { rep(Double.PositiveInfinity){ hops => { mux(source) { 0.0 } { 1+minHood(nbr{ hops }) } } } } def main() = hopGradient(sense("source")) } R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 35 / 47
  • 42. Execution Platforms for Aggregate Computing Demo: server-based, mobile spatial net III // STEP 3: DEFINE MAIN PROGRAMS object ServerMain extends Platform.ServerCmdLineMain { override def refineSettings(s: Platform.Settings) = { s.copy(profile = s.profile.copy( serverGuiActorProps = tm => Some(ServerGUIActor.props(Platform, tm)) )) } } object MainProgram extends Platform.CmdLineMain { override def refineSettings(s: Platform.Settings) = { s.copy(profile = s.profile.copy( devGuiActorProps = ref => Some(DevGUIActor.props(Platform, ref)) )) } override def onDeviceStarted(dm: Platform.DeviceManager, sys: Platform.SystemFacade) = { dm.addSensorValue(Platform.LocationSensorName, Point2D(dm.selfId%5,(dm. selfId/5.0).floor)) dm.addSensorValue("source", dm.selfId==4) dm.start } } R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 36 / 47
  • 43. Execution Platforms for Aggregate Computing Computing server Computation mediator • The processing logic is moved away from devices. • Devices send sensor values to the server and receive actuations. • The server has to keep state (sensor values, neighbour exports). R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 37 / 47
  • 44. Execution Platforms for Aggregate Computing Cloud-based Aggregate computing cloud • Like server-based solution: the centralisation consists in the cloud access point. • The whole computational field stored as a big data. • The cloud-based execution is structured as stateless services insisting on a shared database. Relaxation of consistency constraints; in-memory; space-based partitioning & locality • Plausible technology: RESTful WS on GAE + Redis/Datastore R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 38 / 47
  • 45. Execution Platforms for Aggregate Computing Wait! Why are you introducing centralisations? I p2p • Processing occurs locally • The export of computation has to be broadcasted to the neighbourhood • Sensor and actuator values readily available • Device-to-device communication may be onerous server/cloud • Sensor values upstream, actuations downstream ⇒ convenient when sensor readings do not change quickly • Neighbour exports readily available • Necessary when p2p interactions not supported at infrastructure-level • Because of (i) communication technology, or (ii) logical neighbouring relation • Necessary when devices have no processing capabilities (i.e., may only sense/act/communicate) • Even if p2p is possible, may still be useful for optimisations or for easier management R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 39 / 47
  • 46. Execution Platforms for Aggregate Computing Wait! Why are you introducing centralisations? II Elements to be considered • Number of communication acts • Frequency of execution • Energetic issues • Other costs (e.g., pay-per-use in cloud) Case study (simulation): crowd management in urban mass event • Test-bed used in [APNF13] • Real-world traces • Device broadcasts in 100m range R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 40 / 47
  • 47. Execution Platforms for Aggregate Computing Wait! Why are you introducing centralisations? III 0 20 40 60 80 100 120 140 160 180 Time (simulated minutes) 0 50 100 150 200 Averagenumberofroundsexecuted Rounds executed locally Full P2P Hybrid L1 Hybrid L2 Full cloud 0 20 40 60 80 100 120 140 160 180 Time (simulated minutes) 0 2000 4000 6000 8000 10000 12000 Averagenumberofroundsexecuted Rounds executed in cloud Full P2P Hybrid L1 Hybrid L2 Full cloud 0 20 40 60 80 100 120 140 160 180 Time (simulated minutes) 0 100 200 300 400 500 600 700 800 Numberofdevices Devices subject to a warning Full P2P Hybrid L1 Hybrid L2 Full cloud Hybrid L1: warning devices execute in cloud – Hybrid L2: dispersal devices execute in cloud R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 41 / 47
  • 48. Execution Platforms for Aggregate Computing (Dynamic) Hybrid-style platform Key idea • Use available infrastructure and adapt so as to maximize QoS! Dynamic and opportunistic exploitation of networking/computing resources. • Computation may flow "up" and "down" depending on context and contingencies. • In this sense, AC is similar to MapReduce—but for distributed and situated computations. R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 42 / 47
  • 49. Summary Outline 1 Context and Issues 2 Aggregate Computing 3 Execution Platforms for Aggregate Computing 4 Summary R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 43 / 47
  • 50. Summary Summary: key ideas and future directions Aggregate programming • An ((((((( programmingengineering approach to CASs • Formally grounded in the Field Calculus • Allows to compose “emergent” phenomena • Provides layers of building blocks (proven to self-stabilise!) • Comes with a Scala framework (SCAFI) for building aggregate systems The abstract model is decoupled from the execution strategy • Aggregate computing is suitable for exec across several platforms/infrastructures • From ad-hoc networks to cloud/fog computing • It could be extended to dynamically exploit available and heterogeneous infrastructure Future work • Evolve SCAFI into a framework supporting scalable computations in cluster- and cloud-based systems • What does it take to set up a framework for adaptive execution strategies? R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 44 / 47
  • 51. Appendix References References I [APNF13] Bernhard Anzengruber, Danilo Pianini, Jussi Nieminen, and Alois Ferscha. Predicting social density in mass events to prevent crowd disasters. In Proceedings of SocInfo 2013, pages 206–215, 2013. [BPV15] Jacob Beal, Danilo Pianini, and Mirko Viroli. Aggregate Programming for the Internet of Things. IEEE Computer, 2015. [BV15] Jacob Beal and Mirko Viroli. Space–time programming. Phil. Trans. R. Soc. A, 373(2046):20140220, 2015. [BVPD16] Jacob Beal, Mirko Viroli, Danilo Pianini, and Ferruccio Damiani. Self-adaptation to device distribution changes in situated computing systems. In IEEE Conference on Self-Adaptive and Self-Organising Systems (SASO 2016). IEEE, 2016. To appear. R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 45 / 47
  • 52. Appendix References References II [CV16] Roberto Casadei and Mirko Viroli. Towards aggregate programming in Scala. In First Workshop on Programming Models and Languages for Distributed Computing, PMLDC ’16, pages 5:1–5:7, New York, NY, USA, 2016. ACM. [Duc13] Matt Duckham. Decentralized Spatial Computing - Foundations of Geosensor Networks. Springer, 2013. [DVB16] Ferruccio Damiani, Mirko Viroli, and Jacob Beal. A type-sound calculus of computational fields. Science of Computer Programming, 117:17 – 44, 2016. [DVPB15] Ferruccio Damiani, Mirko Viroli, Danilo Pianini, and Jacob Beal. Code mobility meets self-organisation: A higher-order calculus of computational fields. volume 9039 of Lecture Notes in Computer Science, pages 113–128. Springer International Publishing, 2015. R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 46 / 47
  • 53. Appendix References References III [VBDP15] Mirko Viroli, Jacob Beal, Ferruccio Damiani, and Danilo Pianini. Efficient engineering of complex self-organising systems by self-stabilising fields. 2015. R. Casadei (Università di Bologna) On Execution Platforms for Large-Scale Aggr Comp PMLDC 2016 47 / 47