Aggregate computing is proposed as a computational model and associated toolchain to engineer adaptive large-scale situated systems, including IoT and wearable computing systems. Though originated in the context of WSN-like (peer-to-peer and fully distributed) systems, we argue it is a model that can transparently fit a variety of execution platforms (decentralised, server-mediated, cloud/fog-oriented), due to its ability of declaratively designing systems by global-level abstractions: it opens the possibility of intrinsically supporting forms of load balancing, elasticity and toleration of medium- and long-term changes of computational infrastructures. To ground the discussion, we present ongoing work in the context of scafi, a language and platform support for computational fields based on the Scala programming language and Akka actor framework.
Tuple-Based Coordination in Large-Scale Situated SystemsRoberto Casadei
Space and time are key elements for many computer-based systems and often elevated to first-class abstractions. In tuple-based coordination, Linda primitives have been independently extended with space (with tuples and queries spanning spatial regions) or time information (mostly for tuple scoping). However, recent works in collective adaptive systems and aggregate computing show that space and time can naturally be considered as two intertwined facets of a common coordination abstraction for situated distributed systems. Accordingly, we introduce the Spatiotemporal Tuples model, a natural adaptation of Linda model for physically deployed large-scale networks. Unlike prior research, spatiotemporal properties – expressing where and when a tuple should range and has to be deposited/retrieved – naturally turn into specifications of collective adaptive processes, to be carried on in cooperation by the devices filling the computational environment, and sustaining tuple operations in a resilient way, possibly even in mobile and faulty environments. Additionally, the model promotes decentralised implementations where tuples actually reside where they are issued, which is good for supporting peer-to-peer and mobile ad-hoc networks as well as privacy. In this paper, we (i) present and formalise the Spatiotemporal Tuples model, based on the unifying notion of computational space-time structure, (ii) provide an implementation in the ScaFi aggregate computing framework, turning tuple operations into aggregate processes, and finally (iii) provide evaluation through simulation and a rescue case study.
Collective Adaptive Systems as Coordination Media: The Case of Tuples in Spac...Roberto Casadei
Coordination is a fundamental problem in the
engineering of collective adaptive systems (CAS). Prominent
approaches in this context promote adaptivity and collective
behaviour by founding coordination on local, decentralised in-
teraction. This is usually enabled through abstractions such as
collective interfaces, neighbour-based interaction, and attribute-
based communication. Application designers, then, use such
coordination mechanisms to enact collective adaptive behaviour
in order to solve specific problems or provide specific services
while coping with dynamic environments. In this paper, we
consider the other way round: we argue that a CAS model can
be used to provide support for high-level coordination models,
simplifying their implementation and transferring to them the
self-* properties it emergently fosters. As a motivating example,
we consider the idea of supporting tuple-based coordination by
Linda primitives such that tuples and operations have a position
and extension in space and time. Then, we adopt an aggregate
perspective, by which space-time is logically represented by a
mobile ad-hoc network of devices, and show that coordination
primitives can be implemented as true collective adaptive pro-
cesses. We describe this model and a prototype implementation
in the ScaFi aggregate programming framework, which is rooted
in the so-called computational field paradigm.
Coordinating Computation at the Edge: a Decentralized, Self-organizing, Spati...Roberto Casadei
Presentation of a paper accepted at the 4th Internetional Conference on Fog and Mobile Edge Computing (FMEC).
It discusses a decentralised, self-organising, spatial, collective approach to the development of edge-clouds/edge computing ecosystems.
A Programming Framework for Collective Adaptive EcosystemsRoberto Casadei
On the thrust of recent technological trends, we can
envision a future where dense ecosystems of digitally empowered devices
continuously adapt and operate in our environments to provide services
both to humans and other systems. To achieve that, we arguably need to
move beyond what an individual device can provide and rather focus on
what collectives of devices can offer as a system. Aggregate Computing
is a recent, promising framework generalising over spatial computing
approaches that supports the development of collective adaptive systems
by global specifications. It builds on the framework of the field
calculus to bridge the local and global perspectives, express
collective computations in a compositional way, and formally analyse
them to derive guarantees.
In this presentation, we describe the key concepts and results, take a
look at the practical support for Aggregate Computing on the JVM
provided by scafi, and consider the main research directions on the topic.
Collective Abstractions and Platforms for Large-Scale Self-Adaptive IoTRoberto Casadei
On the way to the materialisation of the pervasive computing vision, the technological progress swelling from mobile computing and the Internet of Things (IoT) domain is already rich of missed opportunities. Firstly, coordinating large numbers of heterogeneous situated entities to achieve system-level goals in a resilient and self-adaptive way is complex and requires novel approaches to be seamlessly injected into mainstream distributed computing models. Secondly, achieving effective exploitation of computer resources is difficult, due to operational constraints resulting from current paradigms and uncomprehensive software infrastructures which hinder flexibility, adaptation, and smooth coordination of computational tasks execution. Indeed, building dynamic, context-oriented applications in small- or large-scale IoT with traditional abstractions is hard: even harder is to achieve opportunistic, QoS- and QoE-driven application task management across available hardware and networking infras- tructure. In this insight paper, we analyse by the collective adap- tation perspective the key directions of the impelling paradigm shift urged by forthcoming large-scale IoT scenarios. Specifically, we consider how collective abstractions and platforms can syner- gistically assist in such a transformation, by better capturing and enacting a notion of “collective service” as well as the dynamic, opportunistic, and context-driven traits of space-time-situated computations.
Digital Twins, Virtual Devices, and Augmentations for Self-Organising Cyber-P...Roberto Casadei
The engineering of large-scale cyber-physical systems (CPS) increasingly relies on principles from self-organisation and collective computing, enabling these systems to cooperate and adapt in dynamic environments. CPS engineering also often leverages digital twins that provide synchronised logical counterparts of physical entities. In contrast, sensor networks rely on the different but related concept of virtual device that provides an abstraction of a group of sensors. In this work, we study how such concepts can contribute to the engineering of self-organising CPSs. To that end, we analyse the concepts and devise modelling constructs, distinguishing between identity correspondence and execution relationships. Based on this analysis, we then contribute to the novel concept of “collective digital twin” (CDT) that captures the logical counterpart of a collection of physical devices. A CDT can also be “augmented” with purely virtual devices, which may be exploited to steer the self-organisation process of the CDT and its physical counterpart. We underpin the novel concept with experiments in the context of the pulverisation framework of aggregate computing, showing how augmented CDTs provide a holistic, modular, and cyber-physically integrated system view that can foster the engineering of self-organising CPSs.
Tuple-Based Coordination in Large-Scale Situated SystemsRoberto Casadei
Space and time are key elements for many computer-based systems and often elevated to first-class abstractions. In tuple-based coordination, Linda primitives have been independently extended with space (with tuples and queries spanning spatial regions) or time information (mostly for tuple scoping). However, recent works in collective adaptive systems and aggregate computing show that space and time can naturally be considered as two intertwined facets of a common coordination abstraction for situated distributed systems. Accordingly, we introduce the Spatiotemporal Tuples model, a natural adaptation of Linda model for physically deployed large-scale networks. Unlike prior research, spatiotemporal properties – expressing where and when a tuple should range and has to be deposited/retrieved – naturally turn into specifications of collective adaptive processes, to be carried on in cooperation by the devices filling the computational environment, and sustaining tuple operations in a resilient way, possibly even in mobile and faulty environments. Additionally, the model promotes decentralised implementations where tuples actually reside where they are issued, which is good for supporting peer-to-peer and mobile ad-hoc networks as well as privacy. In this paper, we (i) present and formalise the Spatiotemporal Tuples model, based on the unifying notion of computational space-time structure, (ii) provide an implementation in the ScaFi aggregate computing framework, turning tuple operations into aggregate processes, and finally (iii) provide evaluation through simulation and a rescue case study.
Collective Adaptive Systems as Coordination Media: The Case of Tuples in Spac...Roberto Casadei
Coordination is a fundamental problem in the
engineering of collective adaptive systems (CAS). Prominent
approaches in this context promote adaptivity and collective
behaviour by founding coordination on local, decentralised in-
teraction. This is usually enabled through abstractions such as
collective interfaces, neighbour-based interaction, and attribute-
based communication. Application designers, then, use such
coordination mechanisms to enact collective adaptive behaviour
in order to solve specific problems or provide specific services
while coping with dynamic environments. In this paper, we
consider the other way round: we argue that a CAS model can
be used to provide support for high-level coordination models,
simplifying their implementation and transferring to them the
self-* properties it emergently fosters. As a motivating example,
we consider the idea of supporting tuple-based coordination by
Linda primitives such that tuples and operations have a position
and extension in space and time. Then, we adopt an aggregate
perspective, by which space-time is logically represented by a
mobile ad-hoc network of devices, and show that coordination
primitives can be implemented as true collective adaptive pro-
cesses. We describe this model and a prototype implementation
in the ScaFi aggregate programming framework, which is rooted
in the so-called computational field paradigm.
Coordinating Computation at the Edge: a Decentralized, Self-organizing, Spati...Roberto Casadei
Presentation of a paper accepted at the 4th Internetional Conference on Fog and Mobile Edge Computing (FMEC).
It discusses a decentralised, self-organising, spatial, collective approach to the development of edge-clouds/edge computing ecosystems.
A Programming Framework for Collective Adaptive EcosystemsRoberto Casadei
On the thrust of recent technological trends, we can
envision a future where dense ecosystems of digitally empowered devices
continuously adapt and operate in our environments to provide services
both to humans and other systems. To achieve that, we arguably need to
move beyond what an individual device can provide and rather focus on
what collectives of devices can offer as a system. Aggregate Computing
is a recent, promising framework generalising over spatial computing
approaches that supports the development of collective adaptive systems
by global specifications. It builds on the framework of the field
calculus to bridge the local and global perspectives, express
collective computations in a compositional way, and formally analyse
them to derive guarantees.
In this presentation, we describe the key concepts and results, take a
look at the practical support for Aggregate Computing on the JVM
provided by scafi, and consider the main research directions on the topic.
Collective Abstractions and Platforms for Large-Scale Self-Adaptive IoTRoberto Casadei
On the way to the materialisation of the pervasive computing vision, the technological progress swelling from mobile computing and the Internet of Things (IoT) domain is already rich of missed opportunities. Firstly, coordinating large numbers of heterogeneous situated entities to achieve system-level goals in a resilient and self-adaptive way is complex and requires novel approaches to be seamlessly injected into mainstream distributed computing models. Secondly, achieving effective exploitation of computer resources is difficult, due to operational constraints resulting from current paradigms and uncomprehensive software infrastructures which hinder flexibility, adaptation, and smooth coordination of computational tasks execution. Indeed, building dynamic, context-oriented applications in small- or large-scale IoT with traditional abstractions is hard: even harder is to achieve opportunistic, QoS- and QoE-driven application task management across available hardware and networking infras- tructure. In this insight paper, we analyse by the collective adap- tation perspective the key directions of the impelling paradigm shift urged by forthcoming large-scale IoT scenarios. Specifically, we consider how collective abstractions and platforms can syner- gistically assist in such a transformation, by better capturing and enacting a notion of “collective service” as well as the dynamic, opportunistic, and context-driven traits of space-time-situated computations.
Digital Twins, Virtual Devices, and Augmentations for Self-Organising Cyber-P...Roberto Casadei
The engineering of large-scale cyber-physical systems (CPS) increasingly relies on principles from self-organisation and collective computing, enabling these systems to cooperate and adapt in dynamic environments. CPS engineering also often leverages digital twins that provide synchronised logical counterparts of physical entities. In contrast, sensor networks rely on the different but related concept of virtual device that provides an abstraction of a group of sensors. In this work, we study how such concepts can contribute to the engineering of self-organising CPSs. To that end, we analyse the concepts and devise modelling constructs, distinguishing between identity correspondence and execution relationships. Based on this analysis, we then contribute to the novel concept of “collective digital twin” (CDT) that captures the logical counterpart of a collection of physical devices. A CDT can also be “augmented” with purely virtual devices, which may be exploited to steer the self-organisation process of the CDT and its physical counterpart. We underpin the novel concept with experiments in the context of the pulverisation framework of aggregate computing, showing how augmented CDTs provide a holistic, modular, and cyber-physically integrated system view that can foster the engineering of self-organising CPSs.
Aggregate Computing Platforms: Bridging the GapsRoberto Casadei
This presentation, held in the context of the CS & Eng M.D. course "Pervasive Computing" (Unibo, Cesena), drafts some analysis for an Aggregate Computing platform and suggests areas of investigation.
TLDR (Twin Learning for Dimensionality Reduction) is an unsupervised dimensionality reduction method that combines neighborhood embedding learning with the simplicity and effectiveness of recent self-supervised learning losses.
A novel technique for speech encryption based on k-means clustering and quant...journalBEEI
In information transmission such as speech information, higher security and confidentiality are specially required. Therefore, data encryption is a pre-requisite for a secure communication system to protect such information from unauthorized access. A new algorithm for speech encryption is introduced in this paper. It depends on the quantum chaotic map and k-means clustering, which are employed in keys generation. Also, two stages of scrambling were used: the first relied on bits using the proposed algorithm (binary representation scrambling BiRS) and the second relied on k-means using the proposed algorithm (block representation scrambling BlRS). The objective test used statistical analysis measures (signal-to-noise-ratio, segmental signal-to-noise-ratio, frequency-weighted signal-to-noise ratio, correlation coefficient, log-likelihood ratio) applied to evaluate the proposed system. Via MATLAB simulations, it is shown that the proposed technique is secure, reliable and efficient to be implemented in secure speech communication, as well as also being characterized by high clarity of the recovered speech signal.
REDUCING RENDER TIME IN RAY TRACING BY PIXEL AVERAGINGijgca
Many computer graphics rendering algorithms and techniques use ray tracing for generating natural and photo-realistic images. Ray tracing is a method to convert 3D-modeles into 2D-high quality images by complex computation. The millions of rays must be simulated and traced to create realistic image. A
method for reducing render time is acceleration structures. The kd-tree is the most commonly used in accelerating ray tracing algorithms. This paper has focused on reducing render time. We propose tow methods that are combined with ray tracing method for obtaining some pixel colour of image plane. Our methods are linear algorithm and are faster than ray tracing method. Our results show that our methods are at least 50% faster than spatial median approach for reasonably complex scenes with around 70k polygons and about 0.2% quality degradation. In this article, we show that these proposal methods can be
combined with other ray tracing methods such as SAH to reduce render time.
Reducing Render Time in Ray Tracing by Pixel Averaging ijcga
Many computer graphics rendering algorithms and techniques use ray tracing for generating natural and photo-realistic images. Ray tracing is a method to convert 3D-modeles into 2D-high quality images by
complex computation. The millions of rays must be simulated and traced to create realistic image. A
method for reducing render time is acceleration structures. The kd-tree is the most commonly used in accelerating ray tracing algorithms. This paper has focused on reducing render time. We propose tow methods that are combined with ray tracing method for obtaining some pixel colour of image plane. Our methods are linear algorithm and are faster than ray tracing method. Our results show that our methods are at least 50% faster than spatial median approach for reasonably complex scenes with around 70k
polygons and about 0.2% quality degradation. In this article, we show that these proposal methods can be
combined with other ray tracing methods such as SAH to reduce render time.
International Journal of Engineering Research and Applications (IJERA) is an open access online peer reviewed international journal that publishes research and review articles in the fields of Computer Science, Neural Networks, Electrical Engineering, Software Engineering, Information Technology, Mechanical Engineering, Chemical Engineering, Plastic Engineering, Food Technology, Textile Engineering, Nano Technology & science, Power Electronics, Electronics & Communication Engineering, Computational mathematics, Image processing, Civil Engineering, Structural Engineering, Environmental Engineering, VLSI Testing & Low Power VLSI Design etc.
International Journal of Engineering Research and Applications (IJERA) is an open access online peer reviewed international journal that publishes research and review articles in the fields of Computer Science, Neural Networks, Electrical Engineering, Software Engineering, Information Technology, Mechanical Engineering, Chemical Engineering, Plastic Engineering, Food Technology, Textile Engineering, Nano Technology & science, Power Electronics, Electronics & Communication Engineering, Computational mathematics, Image processing, Civil Engineering, Structural Engineering, Environmental Engineering, VLSI Testing & Low Power VLSI Design etc.
Recent advances on low-rank and sparse decomposition for moving object detectionActiveEon
(RFIA 2016) Recent advances on low-rank and sparse decomposition for moving object detection: matrix and tensor-based approaches. RFIA 2016, workshop/atelier: Enjeux dans la détection d’objets mobiles par soustraction de fond.
Aggregate Computing Platforms: Bridging the GapsRoberto Casadei
This presentation, held in the context of the CS & Eng M.D. course "Pervasive Computing" (Unibo, Cesena), drafts some analysis for an Aggregate Computing platform and suggests areas of investigation.
TLDR (Twin Learning for Dimensionality Reduction) is an unsupervised dimensionality reduction method that combines neighborhood embedding learning with the simplicity and effectiveness of recent self-supervised learning losses.
A novel technique for speech encryption based on k-means clustering and quant...journalBEEI
In information transmission such as speech information, higher security and confidentiality are specially required. Therefore, data encryption is a pre-requisite for a secure communication system to protect such information from unauthorized access. A new algorithm for speech encryption is introduced in this paper. It depends on the quantum chaotic map and k-means clustering, which are employed in keys generation. Also, two stages of scrambling were used: the first relied on bits using the proposed algorithm (binary representation scrambling BiRS) and the second relied on k-means using the proposed algorithm (block representation scrambling BlRS). The objective test used statistical analysis measures (signal-to-noise-ratio, segmental signal-to-noise-ratio, frequency-weighted signal-to-noise ratio, correlation coefficient, log-likelihood ratio) applied to evaluate the proposed system. Via MATLAB simulations, it is shown that the proposed technique is secure, reliable and efficient to be implemented in secure speech communication, as well as also being characterized by high clarity of the recovered speech signal.
REDUCING RENDER TIME IN RAY TRACING BY PIXEL AVERAGINGijgca
Many computer graphics rendering algorithms and techniques use ray tracing for generating natural and photo-realistic images. Ray tracing is a method to convert 3D-modeles into 2D-high quality images by complex computation. The millions of rays must be simulated and traced to create realistic image. A
method for reducing render time is acceleration structures. The kd-tree is the most commonly used in accelerating ray tracing algorithms. This paper has focused on reducing render time. We propose tow methods that are combined with ray tracing method for obtaining some pixel colour of image plane. Our methods are linear algorithm and are faster than ray tracing method. Our results show that our methods are at least 50% faster than spatial median approach for reasonably complex scenes with around 70k polygons and about 0.2% quality degradation. In this article, we show that these proposal methods can be
combined with other ray tracing methods such as SAH to reduce render time.
Reducing Render Time in Ray Tracing by Pixel Averaging ijcga
Many computer graphics rendering algorithms and techniques use ray tracing for generating natural and photo-realistic images. Ray tracing is a method to convert 3D-modeles into 2D-high quality images by
complex computation. The millions of rays must be simulated and traced to create realistic image. A
method for reducing render time is acceleration structures. The kd-tree is the most commonly used in accelerating ray tracing algorithms. This paper has focused on reducing render time. We propose tow methods that are combined with ray tracing method for obtaining some pixel colour of image plane. Our methods are linear algorithm and are faster than ray tracing method. Our results show that our methods are at least 50% faster than spatial median approach for reasonably complex scenes with around 70k
polygons and about 0.2% quality degradation. In this article, we show that these proposal methods can be
combined with other ray tracing methods such as SAH to reduce render time.
International Journal of Engineering Research and Applications (IJERA) is an open access online peer reviewed international journal that publishes research and review articles in the fields of Computer Science, Neural Networks, Electrical Engineering, Software Engineering, Information Technology, Mechanical Engineering, Chemical Engineering, Plastic Engineering, Food Technology, Textile Engineering, Nano Technology & science, Power Electronics, Electronics & Communication Engineering, Computational mathematics, Image processing, Civil Engineering, Structural Engineering, Environmental Engineering, VLSI Testing & Low Power VLSI Design etc.
International Journal of Engineering Research and Applications (IJERA) is an open access online peer reviewed international journal that publishes research and review articles in the fields of Computer Science, Neural Networks, Electrical Engineering, Software Engineering, Information Technology, Mechanical Engineering, Chemical Engineering, Plastic Engineering, Food Technology, Textile Engineering, Nano Technology & science, Power Electronics, Electronics & Communication Engineering, Computational mathematics, Image processing, Civil Engineering, Structural Engineering, Environmental Engineering, VLSI Testing & Low Power VLSI Design etc.
Recent advances on low-rank and sparse decomposition for moving object detectionActiveEon
(RFIA 2016) Recent advances on low-rank and sparse decomposition for moving object detection: matrix and tensor-based approaches. RFIA 2016, workshop/atelier: Enjeux dans la détection d’objets mobiles par soustraction de fond.
Recent works in the context of large-scale adaptive systems, such as those for the Internet of Things (IoT) scenario, promote aggregate programming [3], a development approach for distributed systems in which one programs the aggregate of computational devices instead of individual ones. This makes the resulting behaviour highly insensitive to network size, density, and topology, and as such, intrinsically robust to failures and changes to working conditions (e.g., location of computational load, communication technology, and computational infrastructure).
In this paper we are concerned with how this approach can impact mainstream software development, and hence outline a Scala-based support of aggregate programming, leveraging Scala advanced type system, DSL support, and actors mechanisms.
Aggregate programming is a novel paradigm that addresses, at the core, many issues commonly found in the development of large-scale, situated, self-adaptive systems. It is a particular macro-programming approach where a developer expresses the behaviour of the system at the aggregate-level, by targeting the distributed computational machine which is given by the entire set of (possibly mobile and heterogeneous) networked devices pervading the environment. It is the model that takes care of turning a system-level behaviour specification into the concrete, device-centric programs executed locally by each component.
Aggregate computing is formally grounded in the field calculus, a minimal functional language that works with computational fields, i.e., distributed data structures mapping devices (digital representatives of space-time portions) to computational objects. Fields are a useful unifying abstraction for drawing a connection between the physical and the computational world, and between the local and global programming viewpoints. This approach is compositional, allowing to define layers of building blocks of increasing abstraction, and is also amenable to formal analyses.
In this talk, I will present scafi (SCAla with computational FIels), an aggregate computing framework for the Scala programming language which provides (i) an internal DSL for expressing aggregate computations as well as (ii) a library support for the configuration and execution of aggregate systems. There is no need to learn ad-hoc external DSLs anymore: with scafi, Scala programmers can instantaneously start playing with this new, intriguing development approach!
Some notes about programming in Scala: it covers Scala syntax and semantics, programming techniques, idioms, patterns. Many Scala features are introduced, from basic to intermediate and advanced. These are not introductory notes, but they assume a working knowledge with some other programming language (Java, C#, C++), object-oriented programming (OOP) concepts, and functional programming (FP) concepts.
In recent years, we are witnessing a growing interest in large-scale situated systems, such as those falling under the umbrella of pervasive computing, cyber-physical systems, and the Internet of Things. The actor model is a natural choice for designing and implementing such systems, thanks to the ability of actors to address distribution, autonomy of control, and asynchronous communication: namely, it is convenient to view the pervasive cyberspace as an environment densely inhabited by mobile embedded actors. But how can an actor-centric development approach be fruitfully used to engineer a complex coordination strategy, where a myriad of devices/actors performs adaptive distributed sensing/processing/acting?
Aggregate computing has been proposed as an emerging paradigm that faces this general problem by adopting a global, system-level stance, allowing to specify and functionally compose collective behaviours by operating on diffused data structures, known as “computational fields”. In this paper, we develop on the idea of integrating the actor model and aggregate computing, presenting a software framework where declarative global-level system specifications are automatically turned into an underlying system of Scala/Akka actors carrying on computation over the pervasive computing system.
Towards Automated Engineering for Collective Adaptive Systems: Vision and Res...Roberto Casadei
The opportunities and challenges of recent and
forthcoming distributed computing scenarios have been promot-
ing research on languages and paradigms aimed at modelling the
macro/collective behaviour of systems as well as mechanisms to
endow them with self-* capabilities. One example is the aggregate
computing paradigm, which supports the development of self-
organising systems (e.g., robot swarms, computational ecosys-
tems, and crowd-based services) through various formalisms and
tools developed over a decade. However, very limited work has
been done by a methodological and automation perspective. In
this paper, we explore the issue of organising the development
process of aggregate computing systems. Accordingly, we outline
novel research directions that arise from careful analysis of
the peculiar issues in collective and self-organising systems, the
cornerstones of effective software engineering practices, and
recent scientific trends and insights.
Compositional Blocks for Optimal Self-Healing GradientsRoberto Casadei
This papers revises the state-of-art in gradient computations, provides an evaluation of the performance of different gradient algorithms, presents a new algorithm with multi-path speed optimality, and shows how different techniques and algorithms can be used together to come up with a new optimal gradient implementation.
Computational Fields meet Augmented Reality: Perspectives and ChallengesDanilo Pianini
Recently, two different techniques emerged that are tailored to environments pervaded of computational devices. On the one hand, aggregate programming, and especially computational fields-based programming, is a promising abstraction for coordinating the activities of multiple situated devices. On the other hand, augmented reality is emerging as new means of interaction with both software and physical entities. We note that both computational fields and augmented reality are tightly bound to the physical world, and that they both enrich it, with collective computation and augmented information respectively. This work presents an initial analysis of possible future research directions that involve these techniques, discussing some possible ways of integrating them.
Edge computing brings cloud services closer to the edge of the network, where data originates, and dramatically reduces the network latency of the cloud. It is a bridge linking clouds and users making the foundation for novel interconnected applications. However, edge computing still faces many challenges like remote configuration, well-defined native applications model, and limited node capacity. It lacks geo-organization and a clear separation of concerns. As such edge computing is hard to be offered as a service for future real-time user-centric applications. This paper presents the dynamic organization of geo-distributed edge nodes into micro data-centers to cover any arbitrary area and expand capacity, availability, and reliability. A cloud organization is used as an influence with adaptations for a different environment, and a model for edge applications utilizing these adaptations is presented. It is argued that the presented model can be integrated into existing solutions or used as a base for the development of future systems. Furthermore, a clear separation of concerns is given for the proposed model. With the separation of concerns setup, edge-native applications model, and a unified node organization, we are moving towards the idea of edge computing as a service, like any other utility in cloud computing.
Aggregate computing is a research topic that is addressed by multiple perspectives: computational models, programming languages, distributed adaptive algorithms, middleware architectures, formal analysis, tools.
Enabling Application Integrated Proactive Fault ToleranceDai Yang
Exascale computing is the next major milestone for the HPC community. Due to a steadily increasing probability of failures, cur- rent applications must be made malleable to be able to cope with dy- namic resource changes. In this paper, we show first results with LAIK, a lightweight library for dynamically re-distributable application data. This allows to free compute nodes from workload before a predicted failure. For a real-world application, we show that LAIK adds negligi- ble overhead. In addition, we show the effect of different re-distribution strategies.
Self-Organisation Programming: a Functional Reactive Macro Approach (FRASP) [...Roberto Casadei
Engineering self-organising systems – e.g., robot
swarms, collectives of wearables, or distributed infrastructures
– has been investigated and addressed through various kinds
of approaches: devising algorithms by taking inspiration from
nature, relying on design patterns, using learning to synthesise
behaviour from expectations of emergent behaviour, and exposing
key mechanisms and abstractions at the level of a programming
language. Focussing on the latter approach, most of the state-
of-the-art languages for self-organisation leverage a round-based
execution model, where devices repeatedly evaluate their context
and control program fully: this model is simple to reason about
but limited in terms of flexibility and fine-grained management
of sub-activities. By inspiration from the so-called functional
reactive paradigm, in this paper we propose a reactive self-
organisation programming approach that enables to fully decouple
the program logic from the scheduling of its sub-activities.
Specifically, we implement the idea through a functional reactive
implementation of aggregate programming in Scala, based on
the functional reactive library Sodium. The result is a functional
reactive self-organisation programming model, called FRASP,
that maintains the same expressiveness and benefits of aggregate
programming, while enabling significant improvements in terms
of scheduling controllability, flexibility in the sensing/actuation
model, and execution efficiency.
On Context-Orientation in Aggregate ProgrammingRoberto Casadei
Context-awareness plays a central role in self-
adaptive software. By a programming perspective, context is
often used implicitly, and context-aware code is fragmented
in the codebase. In Context-Oriented Programming, instead,
context is considered a first-class citizen and is explicitly used
to modularise context-sensitive functionality and behavioural
variability. In this paper, we reflect on the role of context in
collective adaptive systems, by a discussion from the special
perspective of a macro paradigm, Aggregate Programming,
which supports the specification of collective behaviour by a
global perspective through functional compositions of field com-
putations. In particular, we consider the abstractions exposed in
Context-Oriented and Aggregate Programming, suggest potential
synergies in both directions, and accordingly take the first steps
towards a combined design.
Nowadays software systems are essential to the environment of most organizations, and their maintenance is a key point to support business dynamics. Thus, reverse engineering legacy systems for knowledge reuse has become a major concern in software industry. This article, based on a survey about reverse engineering tools, discusses a set of functional and nonfunctional requirements for an effective tool for reverse engineering, and observes that current tools only partly support these requirements. In addition, we define new requirements, based on our group’s experience and industry feedback, and present the architecture and implementation of LIFT: a Legacy InFormation retrieval Tool, developed based on these demands. Furthermore, we discuss the compliance of LIFT with the defined requirements. Finally, we applied the LIFT in a reverse engineering project of a 210KLOC NATURAL/ADABAS system of a financial institution and analyzed its effectiveness and scalability, comparing data with previous similar projects performed by the same institution.
Programming Distributed Collective Processes for Dynamic Ensembles and Collec...Roberto Casadei
Recent trends like the Internet of Things (IoT) suggest a vi-
sion of dense and multi-scale deployments of computing devices in nearly
all kinds of environments. A prominent engineering challenge revolves
around programming the collective adaptive behaviour of such compu-
tational ecosystems. This requires abstractions able to capture concepts
like ensembles (dynamic groups of cooperating devices) and collective
tasks (joint activities carried out by ensembles). In this work, we con-
sider collections of devices interacting with neighbours and that execute
in nearly-synchronised sense–compute–interact rounds, where the com-
putation is given by a single control program. To support programming
whole computational collectives, we propose the abstraction of a dis-
tributed collective process (DCP), which can be used to define at once
the ensemble formation logic and its collective task. We implement the
abstraction in the eXchange Calculus (XC), a core language based on
neighbouring values (maps from neighbours to values) where state man-
agement and interaction is handled through a single primitive, exchange.
Then, we discuss the features of the abstraction, its suitability for differ-
ent kinds of distributed computing applications, and provide a proof-of-
concept implementation of a wave-like process propagation.
Computational steering Interactive Design-through-Analysis for Simulation Sci...SURFevents
Computational steering has evolved with advances in computing and visualization technologies. This session will showcase interactive design-through-analysis techniques that seamlessly integrate computer-aided design and simulation-based analysis tools. The approach replaces traditional simulation-based analysis with IgANets, which embeds physics-informed machine learning into the Isogeometric Analysis paradigm. IgANets train parametrized deep networks to predict solution coefficients of B-Spline/NURBS representations, enabling instantaneous evaluation and interactive feedback loops. A first-of-its-kind demonstrator coupling IgANets with a novel user frontend, developed at SURF, will be presented to initiate a new trend in computational steering towards interactive design-through-analysis.
Presentation "Interface Management in Concurrent Engineering Facilities for Systems and Service Systems Engineering: A Model-‐based Approach" at CIISE 2014 -‐ Conferenza INCOSE Italia su Systems Engineering
Roma, 24 -‐ 25 Novembre 2014
Collective Mind: a collaborative curation tool for program optimizationGrigori Fursin
Designing and optimizing applications becomes increasingly tedious, time consuming, ad-hoc and error prone due to ever changing and complex hardware and software stack. At the same time, it becomes difficult or even impossible to validate, reproduce and extend many proposed optimization and auto-tuning techniques from numerous publications. One of the main reasons is a lack of common and practical way to preserve, systematize and reuse available knowledge and artifacts including developments, optimizations and experimental data.
In this talk, I will present modular, extensible, python-based Collective Mind framework and web-based schema-free repository
(c-mind.org) that I developed at first to systematize my own research and experimentation on machine learning based program optimization and compiler design. This infrastructure can be customized to preserve, describe, share and reproduce whole experimental setups including benchmarks, data sets, libraries, tools, predictive models and optimization information with related JSON-based meta-data. I will also present and discuss positive and negative feedback during several recent academic and industrial usages of this framework to systematize benchmarking and program optimization, and to initiate new publication model where experimental results and related research artifacts are shared, reproduced and validated by the community. In a long term, I hope that such approach and collective knowledge will eventually help us to squeeze maximum performance from computer systems while minimizing energy, development time and other costs.
ScaFi-Web, A Web-Based application for Field-based CoordinationGianluca Aguzzi
Field-based coordination is a model for expressing the coordination logic of large-scale adaptive systems, composing functional
blocks from a global perspective. As for any coordination model, a proper toolchain must be developed to support its adoption across all development phases. Under this point of view, the ScaFi toolkit provides a coordination language (field calculus) as a DSL internal in the Scala
language, a library of reusable building blocks, and an infrastructure
for simulation of distributed deployments. In this work, we enrich such
a toolchain by introducing ScaFi-Web, a web-based application allowing in-browser editing, execution, and visualisation of ScaFi programs.
ScaFi-Web facilitates access to the ScaFi coordination technology by
flattening the learning curve and simplifying configuration and requirements, thus promoting agile prototyping of field-based coordination specifications. In turn, this opens the door to easier demonstrations and experimentation, and also constitutes a stepping stone towards monitoring
and control of simulated/deployed systems.
Repository: https://github.com/scafi/scafi-web
Similar to On Execution Platforms for Large-Scale Aggregate Computing (20)
Programming (and Learning) Self-Adaptive & Self-Organising Behaviour with Sca...Roberto Casadei
Large-scale and fully distributed cyber-physical sys-
tems (CPS), such as swarm robotics or IoT systems, pose
significant challenges for programming and design. These chal-
lenges include promoting the desired (emergent) collective and
self-organising behaviour, dealing with failures, enacting decen-
tralised coordination, and deploying efficient executions. Aggre-
gate computing is a promising approach that aims to simplify
the design of such systems by providing a high-level abstraction
for describing collective and self-organising behaviours. In this
tutorial, we introduce a toolchain that supports the development
of aggregate computing applications, based on ScaFi (a Scala-
based language and toolkit for aggregate computing) and Al-
chemist (a simulator for CPS scenarios). We will showcase the
toolchain by means of a series of examples, ranging from simple
collective behaviours to more complex self-adaptive and self-
organising ones. Finally, we provide several pointers to research
opportunities (e.g., related to learning collective behaviours
and adaptive large-scale deployments) and applications (e.g., in
swarm robotics, edge-cloud ecosystems, and more).
Introduction to the 1st DISCOLI workshop on distributed collective intelligenceRoberto Casadei
The 1st DISCOLI workshop on DIStributed COLlective Intelligence is co-located with the 42nd IEEE International Conference on Distributed Computing Systems (ICDCS 2022) that will take place in Bologna, Italy, 10-13 July 2022.
Recent technological and scientific trends are promoting a vision where intelligence is more and more distributed and collective. Indeed, as computing and communication technologies are becoming increasingly pervasive, and complexity of systems is growing in terms of scale, heterogeneity, and interaction, hence the focus tends to shift from the intelligence of individual devices or agents to the collective intelligence (CI) emerging from a dynamic collection of diverse devices. Such intelligence would allow systems to address complex problems through proper coordination (e.g., cooperation or competition), to self-organise to promote functionality under changing environments, and to improve decision-making capabilities.
The workshop aims to provide a forum where researchers and practitioners can share and discuss fundamental concepts, models, and techniques for studying and implementing collectively intelligent distributed systems. Accordingly, it welcomes original research work providing ideas and technical contributions for promoting scientific discussion and practical adoption of CI mechanisms in engineered systems. As such, the workshop also welcomes cross-disciplinary contributions (e.g., extracting computational mechanisms from natural systems exhibiting forms of CI) and contributions from related research areas like coordination (the study of interaction), multi-agent systems (MAS), socio-technical systems, organisational paradigms, Wireless Sensor and Actuator Networks (WSANs), the Internet of Things (IoT), crowd computing, and swarm robotics.
The topics of interest include (but are not limited to) the following:
Algorithms for self-adaptive/self-organizing system behaviour
Algorithms of artificial collective intelligence (e.g., multi-agent reinforcement learning)
Techniques for task-specific collective intelligence
Extraction of collective knowledge in Internet of Things systems
Collaborations of humans and artificial agents in socio-technical systems
Formal models for computational collective intelligence
Design and verification of emergent properties in distributed systems
Coordination models and languages
Programming languages for distributed CI systems
Languages for multi-tier programming or macro-programming
CI for distributed wearable computing systems
Techniques for crowd computing systems and applications
Applications of distributed CI for smart environments (e.g., smart cities, smart buildings)
Tools for programming and simulation of multi-agent systems
FScaFi: A Core Calculus for Collective Adaptive Systems ProgrammingRoberto Casadei
A recently proposed approach to the rigorous engineering of collective adaptive systems is the aggregate computing paradigm, which operationalises the idea of expressing collective adaptive behaviour by a global perspective as a functional composition of dynamic computational fields (i.e., structures mapping a collection of individual devices of a collective to computational values over time). In this paper, we present FScaFi, a core language that captures the essence of exploiting field computations in mainstream functional languages, and which is based on a semantic model for field computations leveraging the novel notion of “computation against a neighbour”. Such a construct models expressions whose evaluation depends on the same evaluation that occurred on a neighbour, thus abstracting communication actions and, crucially, enabling deep and straightforward integration in the Scala programming language, by the ScaFi incarnation. We cover syntax and informal semantics of FScaFi, provide examples of collective adaptive behaviour development in ScaFi, and delineate future work.
6th eCAS workshop on Engineering Collective Adaptive SystemsRoberto Casadei
This is the presentation introducing the 6th eCAS workshop on Engineering Collective Adaptive Systems. It recaps its scope, provides data regarding this edition, provides an overview of the program and related initiatives.
Augmented Collective Digital Twins for Self-Organising Cyber-Physical SystemsRoberto Casadei
Context. Self-organising and collective computing
approaches are increasingly applied to large-scale cyber-physical
systems (CPS), enabling them to adapt and cooperate in dynamic
environments. Also, in CPS engineering, digital twins are often
leveraged to provide synchronised logical counterparts of physical
entities, whereas in sensor networks the different-but-related
concept of virtual device is used e.g. to abstract groups of sensors.
Vision. We envision the design concept of “augmented collective
digital twin” that captures digital twins at a collective level
extended with purely virtual devices. We argue that this concept
can foster the engineering of self-organising CPS by providing a
holistic, declarative, and integrated system view.
Method. From a review and proposed taxonomy of logical
devices comprehending both digital twins and virtual devices,
we reinterpret a meta-model for self-organising CPSs and discuss
how it can support augmented collective digital twins. We illus-
trate the approach in a crowd-aware navigation scenario, where
virtual devices are opportunistically integrated into the system
to enhance spatial coverage, improving navigation capabilities.
Conclusion. By integrating physical and virtual devices, the
novel notion of augmented collective digital twin paves the way
to self-improving system functionality and intelligent use of
resources in self-organising CPSs.
Testing: an Introduction and Panorama
- what testing is
- perspectives on testing
- xUnit, TDD, acceptance testing
- pointers to more stuff about testing
Novel scenarios like IoT and smart cities promote
a vision of computational ecosystems whereby heterogeneous
collectives of humans, devices and computing infrastructure
interact to provide various services. There, autonomous agents
with different capabilities are expected to cooperate towards
global goals in dependable ways. This is challenging, as deployments are within unknown, changing and loosely connected environments characterized by lack of centralized control, where
components may come and go, or disruption may be caused by
failures. Key issues include (i) how to leverage, functionally and
non-functionally, forms of opportunistic computing and locality
that often underlie IoT scenarios; (ii) how to design and operate
large-scale, resilient ecosystems through suitable assumptions,
decentralized control, and adaptive mechanisms; and (iii) how
to capture and enact “global” behaviors and properties, when
the system consists of heterogeneous, autonomous entities. In
this paper, we propose a model for resilient, collaborative edge-
enabled IoT that leverages spatial locality, opportunistic agents,
and coordinator nodes at the edge. The engineering approach
is declarative and configurable, and works by dynamically
dividing the environment into collaboration areas coordinated
by edge devices. We provide an implementation as a collective, self-organizing workflow based on Aggregate Computing,
provide evaluation by means of simulation, and finally discuss
properties and general applicability of the approach.
Engineering distributed applications and services in emerg-
ing and open computing scenarios like the Internet of Things, cyber-physical systems and pervasive computing, calls for identifying proper abstractions to smoothly capture collective behaviour, adaptivity, and dynamic injection and execution of concurrent distributed activities. Accordingly, we introduce a notion of “aggregate process” as a concurrent
field computation whose execution and interactions are sustained by a dynamic team of devices, and whose spatial region can opportunistically vary over time. We formalise this notion by extending the Field Calculus with a new primitive construct, spawn, used to instantiate a set of field
computations and regulate key aspects of their life-cycle. By virtue of an open-source implementation in the ScaFi framework, we show basic programming examples and benefits via two case studies of mobile ad-hoc networks and drone swarm scenarios, evaluated by simulation.
Brief overview of the Rust system programming language. Provides a concise introduction of its basic features, with an emphasis on its memory safety features (ownership, moves, borrowing) and programming style with generic functions, structures, and traits.
Multi-source connectivity as the driver of solar wind variability in the heli...Sérgio Sacani
The ambient solar wind that flls the heliosphere originates from multiple
sources in the solar corona and is highly structured. It is often described
as high-speed, relatively homogeneous, plasma streams from coronal
holes and slow-speed, highly variable, streams whose source regions are
under debate. A key goal of ESA/NASA’s Solar Orbiter mission is to identify
solar wind sources and understand what drives the complexity seen in the
heliosphere. By combining magnetic feld modelling and spectroscopic
techniques with high-resolution observations and measurements, we show
that the solar wind variability detected in situ by Solar Orbiter in March
2022 is driven by spatio-temporal changes in the magnetic connectivity to
multiple sources in the solar atmosphere. The magnetic feld footpoints
connected to the spacecraft moved from the boundaries of a coronal hole
to one active region (12961) and then across to another region (12957). This
is refected in the in situ measurements, which show the transition from fast
to highly Alfvénic then to slow solar wind that is disrupted by the arrival of
a coronal mass ejection. Our results describe solar wind variability at 0.5 au
but are applicable to near-Earth observatories.
What is greenhouse gasses and how many gasses are there to affect the Earth.moosaasad1975
What are greenhouse gasses how they affect the earth and its environment what is the future of the environment and earth how the weather and the climate effects.
Professional air quality monitoring systems provide immediate, on-site data for analysis, compliance, and decision-making.
Monitor common gases, weather parameters, particulates.
Richard's aventures in two entangled wonderlandsRichard Gill
Since the loophole-free Bell experiments of 2020 and the Nobel prizes in physics of 2022, critics of Bell's work have retreated to the fortress of super-determinism. Now, super-determinism is a derogatory word - it just means "determinism". Palmer, Hance and Hossenfelder argue that quantum mechanics and determinism are not incompatible, using a sophisticated mathematical construction based on a subtle thinning of allowed states and measurements in quantum mechanics, such that what is left appears to make Bell's argument fail, without altering the empirical predictions of quantum mechanics. I think however that it is a smoke screen, and the slogan "lost in math" comes to my mind. I will discuss some other recent disproofs of Bell's theorem using the language of causality based on causal graphs. Causal thinking is also central to law and justice. I will mention surprising connections to my work on serial killer nurse cases, in particular the Dutch case of Lucia de Berk and the current UK case of Lucy Letby.
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
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
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