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.
On Execution Platforms for Large-Scale Aggregate ComputingRoberto Casadei
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.
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.
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.
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.
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.
On Execution Platforms for Large-Scale Aggregate ComputingRoberto Casadei
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.
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.
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.
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.
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.
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.
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.
The variational Gaussian process (VGP), a Bayesian nonparametric model which adapts its shape to match com- plex posterior distributions. The VGP generates approximate posterior samples by generating latent inputs and warping them through random non-linear mappings; the distribution over random mappings is learned during inference, enabling the transformed outputs to adapt to varying complexity.
Kernel methods and variable selection for exploratory analysis and multi-omic...tuxette
Nathalie Vialaneix
4th course on Computational Systems Biology of Cancer: Multi-omics and Machine Learning Approaches
International course, Curie training
https://training.institut-curie.org/courses/sysbiocancer2021
(remote)
September 29th, 2021
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 Framework to Specify and Verify Computational Fields for Pervasive Computin...Danilo Pianini
Pervasive context-aware computing networks call for designing algorithms for information propagation and reconfiguration that promote self-adaptation, namely, which can guarantee – at least to a probabilistic extent – certain reliability and robustness properties in spite of unpredicted changes and conditions. The possibility of formally analyzing their properties is obviously an essential engineering requirement, calling for general-purpose models and tools. As proposed in recent works, several such algorithms can be modeled by the notion of computational field: a dynamically evolving spatial data structure mapping every node of the network to a data value. Based on this idea, as a contribution toward formally verifying properties of pervasive computing systems, in this article we propose a specification language to model computational fields, and a framework based on PRISM stochastic model checker explicitly targeted at supporting temporal property verification. By a number of pervasive computing examples, we show that the proposed approach can be effectively used for quantitative analysis of systems running on networks composed of hundreds of nodes.
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).
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.
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.
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.
The variational Gaussian process (VGP), a Bayesian nonparametric model which adapts its shape to match com- plex posterior distributions. The VGP generates approximate posterior samples by generating latent inputs and warping them through random non-linear mappings; the distribution over random mappings is learned during inference, enabling the transformed outputs to adapt to varying complexity.
Kernel methods and variable selection for exploratory analysis and multi-omic...tuxette
Nathalie Vialaneix
4th course on Computational Systems Biology of Cancer: Multi-omics and Machine Learning Approaches
International course, Curie training
https://training.institut-curie.org/courses/sysbiocancer2021
(remote)
September 29th, 2021
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 Framework to Specify and Verify Computational Fields for Pervasive Computin...Danilo Pianini
Pervasive context-aware computing networks call for designing algorithms for information propagation and reconfiguration that promote self-adaptation, namely, which can guarantee – at least to a probabilistic extent – certain reliability and robustness properties in spite of unpredicted changes and conditions. The possibility of formally analyzing their properties is obviously an essential engineering requirement, calling for general-purpose models and tools. As proposed in recent works, several such algorithms can be modeled by the notion of computational field: a dynamically evolving spatial data structure mapping every node of the network to a data value. Based on this idea, as a contribution toward formally verifying properties of pervasive computing systems, in this article we propose a specification language to model computational fields, and a framework based on PRISM stochastic model checker explicitly targeted at supporting temporal property verification. By a number of pervasive computing examples, we show that the proposed approach can be effectively used for quantitative analysis of systems running on networks composed of hundreds of nodes.
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).
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.
Aggregate computing is a research topic that is addressed by multiple perspectives: computational models, programming languages, distributed adaptive algorithms, middleware architectures, formal analysis, tools.
Towards XMAS: eXplainability through Multi-Agent SystemsGiovanni Ciatto
In the context of the Internet of Things (IoT), intelligent systems (IS) are increasingly relying on Machine Learning (ML) techniques. Given the opaqueness of most ML techniques, however, humans have to rely on their intuition to fully understand the IS outcomes: helping them is the target of eXplainable Artificial Intelligence (XAI). Current solutions – mostly too specific, and simply aimed at making ML easier to interpret – cannot satisfy the needs of IoT, characterised by heterogeneous stimuli, devices, and data-types concurring in the composition of complex information structures. Moreover, Multi-Agent Systems (MAS) achievements and advancements are most often ignored, even when they could bring about key features like explainability and trustworthiness. Accordingly, in this paper we (i) elicit and discuss the most significant issues affecting modern IS, and (ii) devise the main elements and related interconnections paving the way towards reconciling interpretable and explainable IS using MAS.
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.
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
Understanding everyday users’ perception of socio-technical issues through s...Ahreum lee
I gave a talk at ImagineXLab, Seoul, Korea.
In this presentation, I would like to share my recent works that have been explored sociotechnical issues through social media data.
1) /r/Assholedesign: Online conversation about ethical concerns (ACM DIS 20' Honorable Mention Award)
2) /r/Digitalnomad: Current tensions in community-based spaces (ACM CHI 2019 LBW, CSCW 2019)
3) /r/Purdue: Everyday users’ perception of delivery robots on campus (ACM CSCW 2020 LBW)
Edge Computing is rapidly gaining traction in scenarios such as Cyber-Physical Systems and Web of Things. Whereas the Cloud hides heterogeneity of devices behind its standard interfaces and protocols, the Edge should deal with it, as well as with openness and governing interactions. In this paper we propose TuSoW as a model and technology for bringing tuple-based coordination at the Edge.
Will Robots Take all the Jobs? Not yet.Dagmar Monett
Slides of the talk at the 3rd European Conference on the Impact of Artificial Intelligence and Robotics, ECIAIR 2021 (a virtual conference), November 18th, 2021.
Ph.D. Thesis: A Methodology for the Development of Autonomic and Cognitive In...Universita della Calabria,
Doctoral Defence in ICT (Università della Calabria, Italy). Ph.D. candidate Claudio Savaglio. Thesis title: A Methodology for the Development of Autonomic and Cognitive Internet of Things Ecosystems.
An Abstract Framework for Agent-Based Explanations in AIGiovanni Ciatto
We propose an abstract framework for XAI based on MAS encompassing the main definitions and results from the literature, focussing on the key notions of interpretation and explanation.
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.
Novel Opportunities for Tuple-based Coordination: XPath, the Blockchain, and ...Andrea Omicini
The increasing maturity of some well-established technologies – such as XPath – along with the sharp rise of brand-new ones – i.e. the blockchain – presents new opportunities to researchers in the field of multi-agent coordination. In this talk we briefly discuss a few technologies which, once suitably interpreted and integrated, have the potential to impact the very roots of tuple-based coordination as it stems from the archetypal LINDA model.
Engineering computational ecosystems (2nd year PhD seminar)Danilo Pianini
This tutorial will introduce the research field of pervasive computing, with particular focus on spatial computing and pervasive ecosystems. It will show the applicative domain with a focus on pervasive displays, analysing the main challenges such systems present to software engineers. It will also show how relevant is the role of the simulation and properties checking in this area, in which a complete system deployment prior to release is almost impossible.
Doctoral Symposium ACSOS 2021: Research directions for Aggregate Computing wi...Gianluca Aguzzi
Collective adaptive systems (CASs) are challenging from the engineering perspective. Different techniques aim at taming these systems, either using declarative or black-box approaches (e.g. Machine Learning, Evolutionary Algorithms, etc.).Among the many declarative approaches, Aggregate Computing is a novel technique by which developers can express collective system behaviours from a global perspective, using a compositional and functional programming technique. Over the years, Aggregate Computing has been applied in different scenarios, ranging from smart cities to a crowd of augmented people. Despite its promising capabilities, it is sometimes challenging to describe aggregate behaviours, so we aim at merging Aggregate Computing with black-box techniques to simplify the aggregate program synthesis
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.
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.
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
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.
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.
Cancer cell metabolism: special Reference to Lactate PathwayAADYARAJPANDEY1
Normal Cell Metabolism:
Cellular respiration describes the series of steps that cells use to break down sugar and other chemicals to get the energy we need to function.
Energy is stored in the bonds of glucose and when glucose is broken down, much of that energy is released.
Cell utilize energy in the form of ATP.
The first step of respiration is called glycolysis. In a series of steps, glycolysis breaks glucose into two smaller molecules - a chemical called pyruvate. A small amount of ATP is formed during this process.
Most healthy cells continue the breakdown in a second process, called the Kreb's cycle. The Kreb's cycle allows cells to “burn” the pyruvates made in glycolysis to get more ATP.
The last step in the breakdown of glucose is called oxidative phosphorylation (Ox-Phos).
It takes place in specialized cell structures called mitochondria. This process produces a large amount of ATP. Importantly, cells need oxygen to complete oxidative phosphorylation.
If a cell completes only glycolysis, only 2 molecules of ATP are made per glucose. However, if the cell completes the entire respiration process (glycolysis - Kreb's - oxidative phosphorylation), about 36 molecules of ATP are created, giving it much more energy to use.
IN CANCER CELL:
Unlike healthy cells that "burn" the entire molecule of sugar to capture a large amount of energy as ATP, cancer cells are wasteful.
Cancer cells only partially break down sugar molecules. They overuse the first step of respiration, glycolysis. They frequently do not complete the second step, oxidative phosphorylation.
This results in only 2 molecules of ATP per each glucose molecule instead of the 36 or so ATPs healthy cells gain. As a result, cancer cells need to use a lot more sugar molecules to get enough energy to survive.
Unlike healthy cells that "burn" the entire molecule of sugar to capture a large amount of energy as ATP, cancer cells are wasteful.
Cancer cells only partially break down sugar molecules. They overuse the first step of respiration, glycolysis. They frequently do not complete the second step, oxidative phosphorylation.
This results in only 2 molecules of ATP per each glucose molecule instead of the 36 or so ATPs healthy cells gain. As a result, cancer cells need to use a lot more sugar molecules to get enough energy to survive.
introduction to WARBERG PHENOMENA:
WARBURG EFFECT Usually, cancer cells are highly glycolytic (glucose addiction) and take up more glucose than do normal cells from outside.
Otto Heinrich Warburg (; 8 October 1883 – 1 August 1970) In 1931 was awarded the Nobel Prize in Physiology for his "discovery of the nature and mode of action of the respiratory enzyme.
WARNBURG EFFECT : cancer cells under aerobic (well-oxygenated) conditions to metabolize glucose to lactate (aerobic glycolysis) is known as the Warburg effect. Warburg made the observation that tumor slices consume glucose and secrete lactate at a higher rate than normal tissues.
THE IMPORTANCE OF MARTIAN ATMOSPHERE SAMPLE RETURN.Sérgio Sacani
The return of a sample of near-surface atmosphere from Mars would facilitate answers to several first-order science questions surrounding the formation and evolution of the planet. One of the important aspects of terrestrial planet formation in general is the role that primary atmospheres played in influencing the chemistry and structure of the planets and their antecedents. Studies of the martian atmosphere can be used to investigate the role of a primary atmosphere in its history. Atmosphere samples would also inform our understanding of the near-surface chemistry of the planet, and ultimately the prospects for life. High-precision isotopic analyses of constituent gases are needed to address these questions, requiring that the analyses are made on returned samples rather than in situ.
A brief information about the SCOP protein database used in bioinformatics.
The Structural Classification of Proteins (SCOP) database is a comprehensive and authoritative resource for the structural and evolutionary relationships of proteins. It provides a detailed and curated classification of protein structures, grouping them into families, superfamilies, and folds based on their structural and sequence similarities.
Deep Behavioral Phenotyping in Systems Neuroscience for Functional Atlasing a...Ana Luísa Pinho
Functional Magnetic Resonance Imaging (fMRI) provides means to characterize brain activations in response to behavior. However, cognitive neuroscience has been limited to group-level effects referring to the performance of specific tasks. To obtain the functional profile of elementary cognitive mechanisms, the combination of brain responses to many tasks is required. Yet, to date, both structural atlases and parcellation-based activations do not fully account for cognitive function and still present several limitations. Further, they do not adapt overall to individual characteristics. In this talk, I will give an account of deep-behavioral phenotyping strategies, namely data-driven methods in large task-fMRI datasets, to optimize functional brain-data collection and improve inference of effects-of-interest related to mental processes. Key to this approach is the employment of fast multi-functional paradigms rich on features that can be well parametrized and, consequently, facilitate the creation of psycho-physiological constructs to be modelled with imaging data. Particular emphasis will be given to music stimuli when studying high-order cognitive mechanisms, due to their ecological nature and quality to enable complex behavior compounded by discrete entities. I will also discuss how deep-behavioral phenotyping and individualized models applied to neuroimaging data can better account for the subject-specific organization of domain-general cognitive systems in the human brain. Finally, the accumulation of functional brain signatures brings the possibility to clarify relationships among tasks and create a univocal link between brain systems and mental functions through: (1) the development of ontologies proposing an organization of cognitive processes; and (2) brain-network taxonomies describing functional specialization. To this end, tools to improve commensurability in cognitive science are necessary, such as public repositories, ontology-based platforms and automated meta-analysis tools. I will thus discuss some brain-atlasing resources currently under development, and their applicability in cognitive as well as clinical neuroscience.
Observation of Io’s Resurfacing via Plume Deposition Using Ground-based Adapt...Sérgio Sacani
Since volcanic activity was first discovered on Io from Voyager images in 1979, changes
on Io’s surface have been monitored from both spacecraft and ground-based telescopes.
Here, we present the highest spatial resolution images of Io ever obtained from a groundbased telescope. These images, acquired by the SHARK-VIS instrument on the Large
Binocular Telescope, show evidence of a major resurfacing event on Io’s trailing hemisphere. When compared to the most recent spacecraft images, the SHARK-VIS images
show that a plume deposit from a powerful eruption at Pillan Patera has covered part
of the long-lived Pele plume deposit. Although this type of resurfacing event may be common on Io, few have been detected due to the rarity of spacecraft visits and the previously low spatial resolution available from Earth-based telescopes. The SHARK-VIS instrument ushers in a new era of high resolution imaging of Io’s surface using adaptive
optics at visible wavelengths.
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.
Introduction:
RNA interference (RNAi) or Post-Transcriptional Gene Silencing (PTGS) is an important biological process for modulating eukaryotic gene expression.
It is highly conserved process of posttranscriptional gene silencing by which double stranded RNA (dsRNA) causes sequence-specific degradation of mRNA sequences.
dsRNA-induced gene silencing (RNAi) is reported in a wide range of eukaryotes ranging from worms, insects, mammals and plants.
This process mediates resistance to both endogenous parasitic and exogenous pathogenic nucleic acids, and regulates the expression of protein-coding genes.
What are small ncRNAs?
micro RNA (miRNA)
short interfering RNA (siRNA)
Properties of small non-coding RNA:
Involved in silencing mRNA transcripts.
Called “small” because they are usually only about 21-24 nucleotides long.
Synthesized by first cutting up longer precursor sequences (like the 61nt one that Lee discovered).
Silence an mRNA by base pairing with some sequence on the mRNA.
Discovery of siRNA?
The first small RNA:
In 1993 Rosalind Lee (Victor Ambros lab) was studying a non- coding gene in C. elegans, lin-4, that was involved in silencing of another gene, lin-14, at the appropriate time in the
development of the worm C. elegans.
Two small transcripts of lin-4 (22nt and 61nt) were found to be complementary to a sequence in the 3' UTR of lin-14.
Because lin-4 encoded no protein, she deduced that it must be these transcripts that are causing the silencing by RNA-RNA interactions.
Types of RNAi ( non coding RNA)
MiRNA
Length (23-25 nt)
Trans acting
Binds with target MRNA in mismatch
Translation inhibition
Si RNA
Length 21 nt.
Cis acting
Bind with target Mrna in perfect complementary sequence
Piwi-RNA
Length ; 25 to 36 nt.
Expressed in Germ Cells
Regulates trnasposomes activity
MECHANISM OF RNAI:
First the double-stranded RNA teams up with a protein complex named Dicer, which cuts the long RNA into short pieces.
Then another protein complex called RISC (RNA-induced silencing complex) discards one of the two RNA strands.
The RISC-docked, single-stranded RNA then pairs with the homologous mRNA and destroys it.
THE RISC COMPLEX:
RISC is large(>500kD) RNA multi- protein Binding complex which triggers MRNA degradation in response to MRNA
Unwinding of double stranded Si RNA by ATP independent Helicase
Active component of RISC is Ago proteins( ENDONUCLEASE) which cleave target MRNA.
DICER: endonuclease (RNase Family III)
Argonaute: Central Component of the RNA-Induced Silencing Complex (RISC)
One strand of the dsRNA produced by Dicer is retained in the RISC complex in association with Argonaute
ARGONAUTE PROTEIN :
1.PAZ(PIWI/Argonaute/ Zwille)- Recognition of target MRNA
2.PIWI (p-element induced wimpy Testis)- breaks Phosphodiester bond of mRNA.)RNAse H activity.
MiRNA:
The Double-stranded RNAs are naturally produced in eukaryotic cells during development, and they have a key role in regulating gene expression .
Comparing Evolved Extractive Text Summary Scores of Bidirectional Encoder Rep...University of Maribor
Slides from:
11th International Conference on Electrical, Electronics and Computer Engineering (IcETRAN), Niš, 3-6 June 2024
Track: Artificial Intelligence
https://www.etran.rs/2024/en/home-english/
(May 29th, 2024) Advancements in Intravital Microscopy- Insights for Preclini...Scintica Instrumentation
Intravital microscopy (IVM) is a powerful tool utilized to study cellular behavior over time and space in vivo. Much of our understanding of cell biology has been accomplished using various in vitro and ex vivo methods; however, these studies do not necessarily reflect the natural dynamics of biological processes. Unlike traditional cell culture or fixed tissue imaging, IVM allows for the ultra-fast high-resolution imaging of cellular processes over time and space and were studied in its natural environment. Real-time visualization of biological processes in the context of an intact organism helps maintain physiological relevance and provide insights into the progression of disease, response to treatments or developmental processes.
In this webinar we give an overview of advanced applications of the IVM system in preclinical research. IVIM technology is a provider of all-in-one intravital microscopy systems and solutions optimized for in vivo imaging of live animal models at sub-micron resolution. The system’s unique features and user-friendly software enables researchers to probe fast dynamic biological processes such as immune cell tracking, cell-cell interaction as well as vascularization and tumor metastasis with exceptional detail. This webinar will also give an overview of IVM being utilized in drug development, offering a view into the intricate interaction between drugs/nanoparticles and tissues in vivo and allows for the evaluation of therapeutic intervention in a variety of tissues and organs. This interdisciplinary collaboration continues to drive the advancements of novel therapeutic strategies.
4. An Overview of Sugarcane White Leaf Disease in Vietnam.pdf
From Field-based Coordination to Aggregate Computing
1. From Field-Based Coordination to Aggregate
Computing
Mirko Viroli 1 Jacob Beal 2 Ferruccio Damiani 3
Giorgio Audrito 3 Roberto Casadei 1 Danilo Pianini 1
1Alma Mater Studiorum—Universit`a di Bologna, Italy
{mirko.viroli, roby.casadei, danilo.pianini}@unibo.it
2RaytheonBBN Technologies, USA
jakebeal@ieee.org
3Universit`a di Torino, Italy
{damiani, audrito}@di.unito.it
COORDINATION’18
Madrid, 2018/06/19
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 1 / 61
2. The IoT is becoming a crowded and complex place..
Future and emerging Internet-of-things are witnessing..
increasing availability of wearable / mobile / embedded / flying devices
increasing availability of heterogeneous wireless connectivity
increasing availability of computational resources (device/edge/cloud)
increasing production/analysis of data, everywhere, anytime
⇒ business / security / privacy concerns will probably be drivers, too
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 2 / 61
3. What to do? The challenge..
The challenge
Just directly consider the worst scenario possible..
zillion devices unpredictably located and moving in the environment
heterogeneous displacement, pervasive sensing/actuation
computational services are mostly contextual (i.e. proximity-based)
underlying platform (edge/fog/cloud) as an orthogonal issue
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 3 / 61
4. What to do? The challenge..
The challenge
Just directly consider the worst scenario possible..
zillion devices unpredictably located and moving in the environment
heterogeneous displacement, pervasive sensing/actuation
computational services are mostly contextual (i.e. proximity-based)
underlying platform (edge/fog/cloud) as an orthogonal issue
Let’s try to program system coordination for that “computational system”!
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 3 / 61
5. What to do? The challenge..
The challenge
Just directly consider the worst scenario possible..
zillion devices unpredictably located and moving in the environment
heterogeneous displacement, pervasive sensing/actuation
computational services are mostly contextual (i.e. proximity-based)
underlying platform (edge/fog/cloud) as an orthogonal issue
Let’s try to program system coordination for that “computational system”!
What is the right abstraction?
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 3 / 61
6. Towards “Aggregate Computing”
Systems of interest: collective adaptive situated systems CASS
(possibly very large scale) collective adaptive systems
deployed in physical space (situated, spatial), i.e., IoT-oriented
complex (open, dynamic, in need of much self-*)
Aggregate Computing
the “good” computing/programming model for CASS coordination
it gives nice abstractions, promoting solid engineering principles
it is supported by a toolchain for design and programming
simple idea, few constructs, rather tractable
somehow “very different”
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 4 / 61
7. Towards “Aggregate Computing”
Systems of interest: collective adaptive situated systems CASS
(possibly very large scale) collective adaptive systems
deployed in physical space (situated, spatial), i.e., IoT-oriented
complex (open, dynamic, in need of much self-*)
Aggregate Computing
the “good” computing/programming model for CASS coordination
it gives nice abstractions, promoting solid engineering principles
it is supported by a toolchain for design and programming
simple idea, few constructs, rather tractable
somehow “very different”
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 4 / 61
9. Three key messagges in this talk
Aggregate computing:
1. has a functional compositional model for distributed algorithms
2. has a practical toolchain (ScaFi): experiment with it!
3. targets abstractions and platforms for future IoT
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 6 / 61
10. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Outline
1 Roots: from Coordination to Self-Organisation
2 Aggregate Computing and Field calculus
3 Aggregate Programming in ScaFi
Aggregate Computing API/DSL
Aggregate Computing Platform
4 Perspectives and Roadmap
5 Conclusion
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 7 / 61
11. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Increasing complexity in system coordination
Generative communication
Single-space for process coordination (decoupling, synchronisation, communication
⇒ Linda as archetypal case, with all the many variations
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 8 / 61
12. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Increasing complexity in system coordination
Generative communication
Single-space for process coordination (decoupling, synchronisation, communication
⇒ Linda as archetypal case, with all the many variations
Coordination rules
Adding to a space the ability of programming the coordination rules
⇒ Shared Prolog, MARS, ReSpecT, . . .
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 8 / 61
13. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Increasing complexity in system coordination
Generative communication
Single-space for process coordination (decoupling, synchronisation, communication
⇒ Linda as archetypal case, with all the many variations
Coordination rules
Adding to a space the ability of programming the coordination rules
⇒ Shared Prolog, MARS, ReSpecT, . . .
Distribution
Multiple spaces in multiple locations, addressing distributed/mobile systems
⇒ JavaSpaces, TSpaces, Lime, Klaim, . . .
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 8 / 61
14. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Increasing complexity in system coordination
Generative communication
Single-space for process coordination (decoupling, synchronisation, communication
⇒ Linda as archetypal case, with all the many variations
Coordination rules
Adding to a space the ability of programming the coordination rules
⇒ Shared Prolog, MARS, ReSpecT, . . .
Distribution
Multiple spaces in multiple locations, addressing distributed/mobile systems
⇒ JavaSpaces, TSpaces, Lime, Klaim, . . .
Nature-inspired, adaptive coordination
Programming distributed behaviour by some natural inspiration
⇒ TOTA (physics), chemTS (chemistry), SwarmLinda (biology), SAPERE (ecology)
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 8 / 61
15. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Other works addressing “spatial aggregation” [Bea+13]
Languages abstracting individual networked devices
Hood, Meld, Gro, MPI, . . .
Spatial patterns and languages
Growing Point Language, Origami Shape, Self-healing Geometries, . . .
Languages for summarising/streaming info over space-time regions
E.g., Regiment, TinyLime, TinyDB, Cougar, . . .
Foundation of group interactions
E.g., 3π, Shape Calculus, bi-graphs, SMuC, . . .
Space-time computing models
E.g., MGS, Proto, . . .
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 9 / 61
16. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
A source of problems: the IoT
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 10 / 61
17. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Gathering local context
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 11 / 61
18. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Crowd Detection
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 12 / 61
19. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Crowd Anticipation
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 13 / 61
20. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Crowd-aware Steering
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 14 / 61
21. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Crowd dispersal
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 15 / 61
22. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Crowd evacuation upon alerts
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 16 / 61
23. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Outline
1 Roots: from Coordination to Self-Organisation
2 Aggregate Computing and Field calculus
3 Aggregate Programming in ScaFi
Aggregate Computing API/DSL
Aggregate Computing Platform
4 Perspectives and Roadmap
5 Conclusion
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 17 / 61
24. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Manifesto of aggregate computing
Motto: program the aggregate, not individual devices!
1. The reference computing machine
⇒ an aggregate of devices as single “body”, fading to the actual space
2. The reference elaboration process
⇒ atomic manipulation of a collective data structure (a field)
3. The actual networked computation
⇒ a proximity-based self-organised system hidden “under-the-hood”
neighborhood
device
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 18 / 61
25. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Computational Fields [MZ09; Bea+13]
Traditionally a map: Space → Values
possibly: evolving over time, dynamically injected, stabilising
smoothly adapting to very heterogeneous domains
more easily “understood” on continuous and flat spatial domains
ranging to: booleans, reals, vectors, functions
boolean channel in 2D numeric partition in 2D gradient in 2D
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 19 / 61
26. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
The “channel” example: computing a route
Atemporal visualisation of the “channel” boolean field
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 20 / 61
27. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
The “channel” example: computing a route
Atemporal visualisation of the “channel” boolean field
the figure shows a stabilised time-snapshot of the field,
in time, there’s a transient for the formation of the field
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 20 / 61
28. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
The “channel” example: computing a route
How would you program it?
how could the channel program be platform-independent,
unaware of global map, resilient to changes, faults,..
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 21 / 61
29. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Aggregate programming as a functional approach
Functionally composing fields
Inputs: sensor fields, Output: actuator field
Computation is a pure function over fields (time embeds state!)
⇒ for this to be practical/expressive we need a good programming language
source destination
gradient distancegradient
<=
+
dilate
width
37
10
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 22 / 61
30. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Preview / requirement
How we want that computation to be expressed?
source, dest and width as inputs
gradient, distance and dilate as reusable functions
⇒ note we are reusing and composing global-level, aggregate specs
source destination
gradient distancegradient
<=
+
dilate
width
37
10
;; Here the ‘‘aggregate’’ nature of our approach gets revealed
def channel(source, dest, width) {
dilate( gradient(source) + gradient(dest) <= distance(source,dest), width )
}
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 23 / 61
31. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Field calculus [Dam+15]
Key idea
a sort of λ-calculus with “everything is a field” philosophy!
Syntax (slightly refactored, semi-formal version of [Dam+15])
e ::= x v e(e1, . . . , en) rep(e0){e} nbr{e} (expr)
v ::= < standard-values > λ (value)
λ ::= f o (x)=>e (functional value)
F ::= def f(x) {e} (function definition)
Few explanations
v includes numbers, booleans, strings,..
..tuples/vectors/maps/any-ADT (of expressions)
f is a user-defined function (the key aggregate computing abstraction)
o is a built-in local operator (pure math, local sensors,..)
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 24 / 61
32. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Intuition of global-level (denotational) semantics
The four main constructs at work
⇒ values, application, evolution, and interaction – in aggregate guise
e ::= . . . v e(e1, . . . , en) rep(e0){e} nbr{e}
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]
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 25 / 61
33. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Aggregate programming as a functional approach
Functionally composing fields
...so, is field calculus language practical/expressive?
source destination
gradient distancegradient
<=
+
dilate
width
37
10
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 26 / 61
34. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
A preview: the channel pattern
def gradient(source){ ;; reifying minimum distance from source
rep(Infinity) { ;; distance is infinity initially
(distance) => mux(source, 0, minHood( nbr{distance} + nbrRange ))
} }
def distance(source, dest) { ;; propagates minimum distance between source and dest
snd( ;; returning the second component of the pair
rep(pair(Infinity, Infinity)) { ;; computing a field of pairs (distance,value)
(distanceValue) => mux(source, pair(0, gradient(dest)),
minHood( ;; propagating as a gradient, using for first component of the pair
pair(fst(nbr{distanceValue}) + nbrRange, snd(nbr{distanceValue}))))
} ) }
def dilate(region, width) { ;; a field of booleans
gradient(region) < width
}
;; Here the ‘‘aggregate’’ nature of our approach gets revealed
def channel(source, dest, width) {
dilate( gradient(source) + gradient(dest) <= distance(source,dest), width )
}
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 27 / 61
35. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Channel in action: note inherent self-stabilisation
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 28 / 61
36. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Key idea of the functional semantics
A field as a space-time (event) structure: φ : D → V
event E: a triple δ, t, p – device δ, “firing” at time t in position p
events domain D: a coherent set of events (devices cannot move too fast)
field values V : any data value
Time
Space
Domain
Field computations:
(computable, causal) functions over fields: φ × φ × . . . × φ → φ
input/output fields share the same domain D
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 29 / 61
37. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Key idea of the functional semantics
A field as a space-time (event) structure: φ : D → V
event E: a triple δ, t, p – device δ, “firing” at time t in position p
events domain D: a coherent set of events (devices cannot move too fast)
field values V : any data value
Time
Space
Domain
Time Space
Field
Field computations:
(computable, causal) functions over fields: φ × φ × . . . × φ → φ
input/output fields share the same domain D
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 29 / 61
38. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Key idea of the functional semantics
A field as a space-time (event) structure: φ : D → V
event E: a triple δ, t, p – device δ, “firing” at time t in position p
events domain D: a coherent set of events (devices cannot move too fast)
field values V : any data value
Time
Space
Domain
Time Space
Field
Field computations:
(computable, causal) functions over fields: φ × φ × . . . × φ → φ
input/output fields share the same domain D
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 29 / 61
39. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
On the field calculus
Practically, it can express:
complex spreading / aggregation / decay functions [BPV15]
spatial leader election, partitioning, consensus [DVB16]
distributed spatio-temporal sensing [PBV16]
splitting in parallel independent subprocesses [PBV16]
dynamic deployment/spreading of code [Dam+15]
implicit/explicit device selection of what code execute [Vir+15]
“collective teams” forming based on the selected code [Vir+15]
distributed trust mechanisms [CAV18]
⇒ ..and critically, we can smoothly compose/nest the above features..
Key properties
Self-stabilising fragment [Vir+18]
Eventual consistent fragment (a.k.a. density-independence) [Bea+17]
Universality (see Audrito’s talk)
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 30 / 61
40. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Outline
1 Roots: from Coordination to Self-Organisation
2 Aggregate Computing and Field calculus
3 Aggregate Programming in ScaFi
Aggregate Computing API/DSL
Aggregate Computing Platform
4 Perspectives and Roadmap
5 Conclusion
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 31 / 61
41. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
ScaFi: Scala with Computational Fields
Goal: bring Aggregate Computing to mainstream SW development
What
ScaFi [CV16b] is a library/framework for building aggregate systems
Scala-internal DSL for expressing aggregate computations
Linguistic support + execution support (interpreter/VM)
Correct, complete, efficient impl. of the Higher-Order Field
Calculus [Dam+15]
Distributed platform for execution of aggregate systems
Actor-based implementation (based on Akka)
Support for multiple architectural styles and system configurations
⇒ https://github.com/scafi/scafi
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 32 / 61
42. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Outline
1 Roots: from Coordination to Self-Organisation
2 Aggregate Computing and Field calculus
3 Aggregate Programming in ScaFi
Aggregate Computing API/DSL
Aggregate Computing Platform
4 Perspectives and Roadmap
5 Conclusion
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 33 / 61
43. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Aggregate Programs
So, what is an aggregate program?
The “global” program
“Local” programs obtained via global-to-local mapping
An aggregate program consists of
1) A set of function definitions
2) A body of expressions.
Example: an aggregate program in ScaFi
class MyProgram extends AggregateProgram with MyAPI {
def isSource = sense[Boolean]("source")
// Entry point for execution
override def main() = gradient(isSource)
}
Each device of the aggregate system is given an instance of MyProgram
Each device repeatedly runs main at async rounds of execution
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 34 / 61
44. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Computing with fields
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 branch[A](cond: => Boolean)(th: => A)(el: => A): A
// Foundational built-ins
def mid(): ID
def sense[A](name: LSNS): A
def nbrvar[A](name: NSNS): A
}
Mechanisms for context-sensitiveness: nbr, nbrvar, sense
Mechanisms for field evolution: rep
Mechanisms for (structurally aligned) interaction: nbr
Mechanisms for field domain restriction/partitioning: branch
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 35 / 61
45. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Aggregate (computing) systems & Execution model
Structure ⇒ (network/graph)
A set of devices (aka nodes/points/things)
Communication links based on an neighbouring relation
App-specific; usually mirrors space-time locality (cf., broadcast range)
Asynchronous, round-based dynamics
(1) Retrieve context
⇐ Local state at the previous round (cf., reps)
⇐ Messages from neighbours (cf., nbrs)
⇐ Sensor values (cf., senses)
(2) Aggregate program execution
⇒ export (a tree-like descriptor) + output (result of main expr)
(3) Broadcast export to neighbourhood
(4) Execute actuation
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 36 / 61
46. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Tree evaluation: pictorial semantics
Neighbour trees Evaluation tree
rep
if
nbr fun
time
persistence
domain
restriction
neighbour
alignment
tree
expansion
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 37 / 61
47. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
A mini-tutorial: http://github.com/metaphori/coord18-demos
[00] 1 // Local & field value (constant, uniform)
[01] 2 + 3 // Expression
[02] (10, 20) // Tuple
[03] Random.nextInt(1000) // Random int < 1000 (implementation-specific)
[04] sense[Boolean]("sens1")// Read sensor (non-const, non-uniform)
[05] if(sense[Boolean]("sens1") && sense[Boolean]("sens2")) "hot" else "cold"
[06] mid() // Device IDs (const for fixed domain, non-uniform)
[07] def sense1() = sense[Boolean]("sens1") // Function for reuse
foldhood(0)(_+_){ if(nbr{sense1}) 1 else 0 }
// Fold over neighbouring value with given init val and aggregator
[08] (minHood{nbrRange}, minHoodPlus{nbrRange})
[09] rep(0){ x => x + 1 }
[10] rep(Random.nextInt(100)){ x => x }
[11] rep(0){ x => x + rep(Random.nextInt(100))(y => y) }
[12] rep(Double.PositiveInfinity)(distance =>
mux(sense[Boolean]("source")){ 0.0 }{
minHoodPlus(nbr{distance} + nbrRange)
})
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 38 / 61
48. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Exports
Interaction protocol: export broadcasting to neighbours
Exports are descriptors for local computations
Support aligned interaction and hence compositionality
Bigger programs ⇒ bigger exports, still same protocol!
def distanceTo(src: Boolean): Double = rep(Double.PositiveInfinity)(distance =>
mux(src){ 0.0 }{ minHoodPlus(nbr{distance} + nbrRange) })
def main: Double =
branch(sense[Boolean]("withinAreaOfInterest")){ // Splits the domain
distanceTo(sense[Boolean]("source")) // * ’then’ branch
}{ Double.PositiveInfinity } // ’ * ’else’ branch
yields an export like the following (on nodes where sensor is active)
Map(P:/ -> 2.0, // Root value (computation result)
P:/Branch(0,true) -> 2.0 // Node corresp. to branch(c){t}{e}
P:/Branch(0,true)/Rep(0) -> 2.0,
P:/Branch(0,true)/Rep(0)/FoldHood(0) -> 2.0, // Cf., *hoodPlus ops
P:/Branch(0,true)/Rep(0)/FoldHood(0)/Nbr(0) -> 5, // For nbr{distance}
P:/Branch(0,true)/Rep(0)/FoldHood(0)/Nbr(1) -> 2.0))
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 39 / 61
49. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Example: distributed sensing
trait DSensing extends BlockG with BlockC with BlockS { I: AggregateProgram =>
def distributedSense(size:Double, metric: =>Double, v:Double): Double = {
val leaders = S(size, metric)
val potential = distanceTo(leaders, metric)
val collection = sumCollect(potential, v)
val count = sumCollect(potential, 1.0)
val avg = collection / count
broadcast(leaders, avg)
}
def sumCollect(potential: Double, v: Double): Double = C(potential, _+_, v, 0)
def broadcast[V: Bounded](src: Boolean, v: V): V = G(src, v, x => x, nbrRange)
}
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 40 / 61
50. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Example: distributed sensing
trait DSensing extends BlockG with BlockC with BlockS { I: AggregateProgram =>
def distributedSense(size:Double, metric: =>Double, v:Double): Double = {
val leaders = S(size, metric)
val potential = distanceTo(leaders, metric)
val collection = sumCollect(potential, v)
val count = sumCollect(potential, 1.0)
val avg = collection / count
broadcast(leaders, avg)
}
def sumCollect(potential: Double, v: Double): Double = C(potential, _+_, v, 0)
def broadcast[V: Bounded](src: Boolean, v: V): V = G(src, v, x => x, nbrRange)
}
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 40 / 61
51. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Example: distributed sensing
trait DSensing extends BlockG with BlockC with BlockS { I: AggregateProgram =>
def distributedSense(size:Double, metric: =>Double, v:Double): Double = {
val leaders = S(size, metric)
val potential = distanceTo(leaders, metric)
val collection = sumCollect(potential, v)
val count = sumCollect(potential, 1.0)
val avg = collection / count
broadcast(leaders, avg)
}
def sumCollect(potential: Double, v: Double): Double = C(potential, _+_, v, 0)
def broadcast[V: Bounded](src: Boolean, v: V): V = G(src, v, x => x, nbrRange)
}
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 40 / 61
52. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Example: distributed sensing
trait DSensing extends BlockG with BlockC with BlockS { I: AggregateProgram =>
def distributedSense(size:Double, metric: =>Double, v:Double): Double = {
val leaders = S(size, metric)
val potential = distanceTo(leaders, metric)
val collection = sumCollect(potential, v)
val count = sumCollect(potential, 1.0)
val avg = collection / count
broadcast(leaders, avg)
}
def sumCollect(potential: Double, v: Double): Double = C(potential, _+_, v, 0)
def broadcast[V: Bounded](src: Boolean, v: V): V = G(src, v, x => x, nbrRange)
}
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 40 / 61
53. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Outline
1 Roots: from Coordination to Self-Organisation
2 Aggregate Computing and Field calculus
3 Aggregate Programming in ScaFi
Aggregate Computing API/DSL
Aggregate Computing Platform
4 Perspectives and Roadmap
5 Conclusion
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 41 / 61
54. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Aggregate Computing and Actor Systems [CV16a]
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 42 / 61
55. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Akka-based distributed platform
Goal: easy configuration and execution of aggregate systems
Setup of an aggregate application
Setup of individual nodes/subsystems
Support for multiple architectural styles and system configurations
Fully peer-to-peer
Server-based (mediating communications)
Implemented on top of the Akka actor framework
An actor is a (re)active entity that
encapsulates a state, behaviour, and control (autonomy);
has a global UID that allows for location transparency;
interacts with other actors via async message passing
ScaFi components are actors: devices, sensors, schedulers...
OO-facade API & message-based API (exposing underlying actors)
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 43 / 61
56. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
(Fully operational) Device actors
Responsibilities (each assigned to an actor)
(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)
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 44 / 61
57. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Setup of an (actor-based) aggregate system
// STEP 1: CHOOSE INCARNATION
import scafi.incarnations.{ BasicActorP2P => Platform }
import Platform.{AggregateProgram,Settings,PlatformConfig}
// STEP 2: DEFINE AGGREGATE PROGRAM SCHEMA
class Program extends AggregateProgram with DSensing {
// Specify "distributed sensing" aggregate computation
override def main(): Any = distributedSense(size = 10.0,
metric = nbrRange,
v = sense[Double]("temperature"))
}
// STEP 3: PLATFORM SETUP
val settings = Settings()
val platform = PlatformConfig.setupPlatform(settings)
// STEP 4: NODE SETUP
val sys = platform.newAggregateApplication()
val dm = sys.newDevice(id = Utils.newId(),
program = Program,
neighbours = Utils.discoverNbrs())
val devActor = dm.actorRef // get underlying actor
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 45 / 61
58. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Outline
1 Roots: from Coordination to Self-Organisation
2 Aggregate Computing and Field calculus
3 Aggregate Programming in ScaFi
Aggregate Computing API/DSL
Aggregate Computing Platform
4 Perspectives and Roadmap
5 Conclusion
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 46 / 61
59. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Ready to jump
So...Aggregate Computing has moved
from a fragmented collection of ideas and tools
to a stable core calculus and layered framework for distributed CAS
engineering
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 47 / 61
60. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
The Aggregate Computing Stack
sensors
local functions
actuators
Application
Code
Developer
APIs
Field Calculus
Constructs
Resilient
Coordination
Operators
Device
Capabilities
functions repnbr
TGCfunctions
communication state
PerceptionPerception
summarize
average
regionMax
…
ActionAction StateState
Collective BehaviorCollective Behavior
distanceTo
broadcast
partition
…
timer
lowpass
recentTrue
…
collectivePerception
collectiveSummary
managementRegions
…
Crowd ManagementCrowd Management
dangerousDensity crowdTracking
crowdWarning safeDispersal
restriction
selfstabilisation
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 48 / 61
61. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Current Toolchain for Aggregate Computing
Field Calculus
Protelis
Xtext parsing
Static analysis Interpreter
Alchemist
Android/Rest/Cloud
Formal
foundation
Programming
Language
Language
tools
Simulation
Execution
Properties
Scala
simGUI
Scafi Core
ScafiAkka
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 49 / 61
62. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
State-of-the-art
Main results
Higher-Order Field Calculus & code mobility [Dam+15]
Self-stabilisation and substitution semantics [Vir+18]
Universality [Aud+18]
Eventual consistency [Bea+17]
Variants of key algorithms
Gradients: Flex, CRF, BIS, SVD, ULT [Aud+17]
Collection: single-path, (weighted) multi-path, via time-replicated
gossip
Toolchain
DSLs: Protelis [PBV15], ScaFi [CV16b]
Platform [VCP16]
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 50 / 61
63. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Future work
Research directions
Elaboration of libraries – modular; type safe; usable; ..
Techniques to control dynamics – feedback; stability; convergence; ..
Security — code mobility, trust fields [CAV18]
Applications
IoT scenarios in dense urban environments (cf., Smart City)
Drones, unmanned vehicles
Coordination service for networked systems
Development of software platforms/middlewares
Management of mobile devices and processes
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 51 / 61
64. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Aggregate Computing Platforms: Roadmap
Solid support for distributed Aggregate Systems
⇓
Flexible deployment and execution
Design-time, manual
⇓
Dynamic deployment and execution
Run-time, manually triggered
⇓
Self-adaptive deployment and execution
Run-time, automatic (reacting to available infrastructure)
⇓
Opportunistic deployment and execution
Run-time, automatic (optimising)
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 52 / 61
65. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Execution strategies and architectures [VCP16]
Adaptivity requirements demand for fluid responsibilities
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 53 / 61
66. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Aggregate Processes I
Motivation
Field calculus is space-time universal, but expressing
a dynamic number of
space-time dynamic computations
is not currently as straightforward as it should be.
The Aggregate Process notion
From a single computation for the entire system
To a set of parallel computations (processes)
- with ad-hoc spatial and temporal extension
- i.e., opportunistically executed by a dynamic coalition of device
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 54 / 61
67. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Aggregate Processes II
New construct: spawn
Generation: activation of new process instances
Evolution: propagation and retraction of processes
Fusion: merging of “identical” process instances
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 55 / 61
68. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Aggregate Processes: time-replicated gossip [PBV16]
Gossip #1Gossip #1
Gossip #3Gossip #3
Gossip #2Gossip #2
…
Time
p
k=3
Gossip #4Gossip #4
def replicated[T,R](proc: T => R)(arg: T, p: Double, k: Int): Map[Long,R] = {
val pid = sharedClock(p, dt())
val newProcs = if(changed(pid)) Set(pid) else Set[Long]()
spawn[Long,T,R]((thisPid) => (arg) => {
(proc(arg), if(thisPid-pid < k){Output} else {External})
}, newProcs, arg)
}
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 56 / 61
69. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Outline
1 Roots: from Coordination to Self-Organisation
2 Aggregate Computing and Field calculus
3 Aggregate Programming in ScaFi
Aggregate Computing API/DSL
Aggregate Computing Platform
4 Perspectives and Roadmap
5 Conclusion
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 57 / 61
70. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
Wrap-up
Key takeaways
Aggregate computing:
1. has a functional compositional model for distributed algorithms
2. has a practical toolchain (ScaFi): experiment with it!
3. targets abstractions and platforms for future IoT
Conclusion
A bunch of results and tools emerged, many to come
We’re always eager to find new collaborations!
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 58 / 61
71. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
References I
[Aud+17] Giorgio Audrito et al. “Compositional Blocks for Optimal Self-Healing
Gradients”. In: Self-Adaptive and Self-Organising Systems (SASO), IEEE
International Conference on. Accepted for publication. IEEE. 2017.
[Aud+18] Giorgio Audrito et al. “Space-Time Universality of Field Calculus”. In:
International Conference on Coordination Languages and Models. Springer.
2018, pp. 1–20.
[Bea+13] Jacob Beal et al. “Organizing the Aggregate: Languages for Spatial
Computing”. In: Formal and Practical Aspects of DSLs: Recent Developments.
A longer version at: http://arxiv.org/abs/1202.5509. IGI Global, 2013.
Chap. 16, pp. 436–501. isbn: 978-1-4666-2092-6.
[Bea+17] Jacob Beal et al. “Self-adaptation to Device Distribution in the Internet of
Things”. In: ACM Transactions on Autonomous and Adaptive Systems (TAAS)
12.3 (2017), p. 12.
[BPV15] Jacob Beal, Danilo Pianini, and Mirko Viroli. “Aggregate Programming for the
Internet of Things”. In: IEEE Computer (2015). issn: 1364-503X.
[CAV18] Roberto Casadei, Alessandro Aldini, and Mirko Viroli. “Combining Trust and
Aggregate Computing”. In: Software Engineering and Formal Methods. Ed. by
Antonio Cerone and Marco Roveri. Cham: Springer International Publishing,
2018, pp. 507–522. isbn: 978-3-319-74781-1.
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 59 / 61
72. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
References II
[CV16a] Roberto Casadei and Mirko Viroli. “Programming Actor-based Collective
Adaptive Systems”. In: AGERE16 workshop. To appear. ACM SIGPLAN. 2016.
[CV16b] Roberto Casadei and Mirko Viroli. “Towards Aggregate Programming in Scala”.
In: First Workshop on Programming Models and Languages for Distributed
Computing. PMLDC ’16. Rome, Italy: ACM, 2016, 5:1–5:7. isbn:
978-1-4503-4775-4. doi: 10.1145/2957319.2957372. url:
http://doi.acm.org/10.1145/2957319.2957372.
[Dam+15] Ferruccio Damiani et al. “Code Mobility Meets Self-organisation: A
Higher-Order Calculus of Computational Fields”. English. In: Formal
Techniques for Distributed Objects, Components, and Systems. Vol. 9039.
Lecture Notes in Computer Science. Extended version submitted to ACM TOCL
journal. Springer International Publishing, 2015, pp. 113–128. isbn:
978-3-319-19194-2. doi: 10.1007/978-3-319-19195-9textunderscore8.
[DVB16] Ferruccio Damiani, Mirko Viroli, and Jacob Beal. “A type-sound calculus of
computational fields”. In: Science of Computer Programming 117 (2016),
pp. 17 –44. issn: 0167-6423. doi:
http://dx.doi.org/10.1016/j.scico.2015.11.005. url:
http://www.sciencedirect.com/science/article/pii/S0167642315003573.
[MZ09] Marco Mamei and Franco Zambonelli. “Programming pervasive and mobile
computing applications: The TOTA approach”. In: ACM Transactions on
Software Engineering and Methodologies 18.4 (2009).
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 60 / 61
73. 1. Roots 2. Aggregate Computing 3. Toolchain 4. Roadmap Conclusion Referen
References III
[PBV15] Danilo Pianini, Jacob Beal, and Mirko Viroli. “Practical Aggregate
Programming with Protelis”. In: ACM Symposium on Applied Computing
(SAC 2015). To appear. 2015.
[PBV16] Danilo Pianini, Jacob Beal, and Mirko Viroli. “Improving gossip dynamics
through overlapping replicates”. In: Lecture Notes in Computer Science
(including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in
Bioinformatics) 9686 (2016), pp. 192–207. issn: 16113349. doi:
10.1007/978-3-319-39519-7_12.
[VCP16] Mirko Viroli, Roberto Casadei, and Danilo Pianini. “On Execution Platforms for
Large-Scale Aggregate Computing”. In: 3rd International Workshop on
Collective Adaptation in Very Large Scale Ubicomp (VLSU): Towards a
Superorganism of Wearables - UbiComp. Heidelberg, Germany, 2016.
[Vir+15] Mirko Viroli et al. “Multi-agent Systems Meet Aggregate Programming:
Towards a Notion of Aggregate Plan”. In: PRIMA 2015: Principles and Practice
of Multi-Agent Systems - 18th International Conference, Bertinoro, Italy,
October 26-30, 2015, Proceedings. 2015, pp. 49–64. doi:
url{10.1007/978-3-319-25524-8_4}. url:
url{http://dx.doi.org/10.1007/978-3-319-25524-8_4}.
[Vir+18] Mirko Viroli et al. “Engineering resilient collective adaptive systems by
self-stabilisation”. In: ACM Transactions on Modeling and Computer Simulation
(TOMACS) 28.2 (2018), p. 16.
M. Viroli, R. Casadei et al (UNIBO) Aggregate Computing 2018/06/19 61 / 61