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.
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.
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.
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.
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.
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.
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.
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.
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.
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 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.
REDUCING RENDER TIME IN RAY TRACING BY PIXEL AVERAGINGijgca
Many computer graphics rendering algorithms and techniques use ray tracing for generating natural and photo-realistic images. Ray tracing is a method to convert 3D-modeles into 2D-high quality images by complex computation. The millions of rays must be simulated and traced to create realistic image. A
method for reducing render time is acceleration structures. The kd-tree is the most commonly used in accelerating ray tracing algorithms. This paper has focused on reducing render time. We propose tow methods that are combined with ray tracing method for obtaining some pixel colour of image plane. Our methods are linear algorithm and are faster than ray tracing method. Our results show that our methods are at least 50% faster than spatial median approach for reasonably complex scenes with around 70k polygons and about 0.2% quality degradation. In this article, we show that these proposal methods can be
combined with other ray tracing methods such as SAH to reduce render time.
Reducing Render Time in Ray Tracing by Pixel Averaging ijcga
Many computer graphics rendering algorithms and techniques use ray tracing for generating natural and photo-realistic images. Ray tracing is a method to convert 3D-modeles into 2D-high quality images by
complex computation. The millions of rays must be simulated and traced to create realistic image. A
method for reducing render time is acceleration structures. The kd-tree is the most commonly used in accelerating ray tracing algorithms. This paper has focused on reducing render time. We propose tow methods that are combined with ray tracing method for obtaining some pixel colour of image plane. Our methods are linear algorithm and are faster than ray tracing method. Our results show that our methods are at least 50% faster than spatial median approach for reasonably complex scenes with around 70k
polygons and about 0.2% quality degradation. In this article, we show that these proposal methods can be
combined with other ray tracing methods such as SAH to reduce render time.
International Journal of Engineering Research and Applications (IJERA) is an open access online peer reviewed international journal that publishes research and review articles in the fields of Computer Science, Neural Networks, Electrical Engineering, Software Engineering, Information Technology, Mechanical Engineering, Chemical Engineering, Plastic Engineering, Food Technology, Textile Engineering, Nano Technology & science, Power Electronics, Electronics & Communication Engineering, Computational mathematics, Image processing, Civil Engineering, Structural Engineering, Environmental Engineering, VLSI Testing & Low Power VLSI Design etc.
Robust Low-rank and Sparse Decomposition for Moving Object DetectionActiveEon
Presentation summary:
* Moving object detection by background modeling and subtraction.
* Solved and unsolved challenges.
* Framework for low-rank and sparse decomposition.
* Some applications of RPCA on:
* * Background modeling and foreground separation.
* * Very dynamic background.
* * Multidimensional and streaming data.
* LRSLibrary1 + demo.
Cari presentation maurice-tchoupe-joskelngoufoMokhtar SELLAMI
A publish/subscribe approach for implementing GAG’s distributed
collaborative business processes with high data availability
Maurice Tchoupé Tchendji and Joskel Ngoufo Tagueu
International Journal of Engineering Research and Applications (IJERA) is an open access online peer reviewed international journal that publishes research and review articles in the fields of Computer Science, Neural Networks, Electrical Engineering, Software Engineering, Information Technology, Mechanical Engineering, Chemical Engineering, Plastic Engineering, Food Technology, Textile Engineering, Nano Technology & science, Power Electronics, Electronics & Communication Engineering, Computational mathematics, Image processing, Civil Engineering, Structural Engineering, Environmental Engineering, VLSI Testing & Low Power VLSI Design etc.
Moldable pipelines for CNNs on heterogeneous edge devicesLEGATO project
Abstract: Modern edge devices are equipped with more powerful computing resources than ever before which opens up the opportunity to execute deep neural networks on the devices instead of cloud-based implementation. Existing DNN frameworks such as TensorFlow, Caffe, Torch, etc.. do not exploit the heterogeneous features of these devices except supporting GPUs. Modern edge devices contain different categories of heterogeneity i.e. clusters of different types of cores fabricated on the same chip. An example of such type of board is Jetson TX2 from Nvidia. To support DNN applications on heterogeneous edge devices, we have developed a framework which generates an efficient and balanced parallel pipelined implementation of CNN inference from a simplified template language interface. We leverage the input and output information provided by template language to generate a balanced pipeline. Since the cores are heterogeneous, we run a brief online training phase to find the best core distribution for a balanced and high throughput pipeline.
Our experiments show that a pipeline mapping configuration obtained from online training provides upto 22% faster pipeline as compared to the baseline. We compare against kernel level parallel implementation of widely used image classification CNN, VGG-16 on Nvidia Jetson TX2 board.
Poster presented by Pirah Noor Soomro at the LEGaTO Final Event: 'Low-Energy Heterogeneous Computing Workshop'
In recent years, we are witnessing a growing interest in large-scale situated systems, such as those falling under the umbrella of pervasive computing, cyber-physical systems, and the Internet of Things. The actor model is a natural choice for designing and implementing such systems, thanks to the ability of actors to address distribution, autonomy of control, and asynchronous communication: namely, it is convenient to view the pervasive cyberspace as an environment densely inhabited by mobile embedded actors. But how can an actor-centric development approach be fruitfully used to engineer a complex coordination strategy, where a myriad of devices/actors performs adaptive distributed sensing/processing/acting?
Aggregate computing has been proposed as an emerging paradigm that faces this general problem by adopting a global, system-level stance, allowing to specify and functionally compose collective behaviours by operating on diffused data structures, known as “computational fields”. In this paper, we develop on the idea of integrating the actor model and aggregate computing, presenting a software framework where declarative global-level system specifications are automatically turned into an underlying system of Scala/Akka actors carrying on computation over the pervasive computing system.
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.
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.
REDUCING RENDER TIME IN RAY TRACING BY PIXEL AVERAGINGijgca
Many computer graphics rendering algorithms and techniques use ray tracing for generating natural and photo-realistic images. Ray tracing is a method to convert 3D-modeles into 2D-high quality images by complex computation. The millions of rays must be simulated and traced to create realistic image. A
method for reducing render time is acceleration structures. The kd-tree is the most commonly used in accelerating ray tracing algorithms. This paper has focused on reducing render time. We propose tow methods that are combined with ray tracing method for obtaining some pixel colour of image plane. Our methods are linear algorithm and are faster than ray tracing method. Our results show that our methods are at least 50% faster than spatial median approach for reasonably complex scenes with around 70k polygons and about 0.2% quality degradation. In this article, we show that these proposal methods can be
combined with other ray tracing methods such as SAH to reduce render time.
Reducing Render Time in Ray Tracing by Pixel Averaging ijcga
Many computer graphics rendering algorithms and techniques use ray tracing for generating natural and photo-realistic images. Ray tracing is a method to convert 3D-modeles into 2D-high quality images by
complex computation. The millions of rays must be simulated and traced to create realistic image. A
method for reducing render time is acceleration structures. The kd-tree is the most commonly used in accelerating ray tracing algorithms. This paper has focused on reducing render time. We propose tow methods that are combined with ray tracing method for obtaining some pixel colour of image plane. Our methods are linear algorithm and are faster than ray tracing method. Our results show that our methods are at least 50% faster than spatial median approach for reasonably complex scenes with around 70k
polygons and about 0.2% quality degradation. In this article, we show that these proposal methods can be
combined with other ray tracing methods such as SAH to reduce render time.
International Journal of Engineering Research and Applications (IJERA) is an open access online peer reviewed international journal that publishes research and review articles in the fields of Computer Science, Neural Networks, Electrical Engineering, Software Engineering, Information Technology, Mechanical Engineering, Chemical Engineering, Plastic Engineering, Food Technology, Textile Engineering, Nano Technology & science, Power Electronics, Electronics & Communication Engineering, Computational mathematics, Image processing, Civil Engineering, Structural Engineering, Environmental Engineering, VLSI Testing & Low Power VLSI Design etc.
Robust Low-rank and Sparse Decomposition for Moving Object DetectionActiveEon
Presentation summary:
* Moving object detection by background modeling and subtraction.
* Solved and unsolved challenges.
* Framework for low-rank and sparse decomposition.
* Some applications of RPCA on:
* * Background modeling and foreground separation.
* * Very dynamic background.
* * Multidimensional and streaming data.
* LRSLibrary1 + demo.
Cari presentation maurice-tchoupe-joskelngoufoMokhtar SELLAMI
A publish/subscribe approach for implementing GAG’s distributed
collaborative business processes with high data availability
Maurice Tchoupé Tchendji and Joskel Ngoufo Tagueu
International Journal of Engineering Research and Applications (IJERA) is an open access online peer reviewed international journal that publishes research and review articles in the fields of Computer Science, Neural Networks, Electrical Engineering, Software Engineering, Information Technology, Mechanical Engineering, Chemical Engineering, Plastic Engineering, Food Technology, Textile Engineering, Nano Technology & science, Power Electronics, Electronics & Communication Engineering, Computational mathematics, Image processing, Civil Engineering, Structural Engineering, Environmental Engineering, VLSI Testing & Low Power VLSI Design etc.
Moldable pipelines for CNNs on heterogeneous edge devicesLEGATO project
Abstract: Modern edge devices are equipped with more powerful computing resources than ever before which opens up the opportunity to execute deep neural networks on the devices instead of cloud-based implementation. Existing DNN frameworks such as TensorFlow, Caffe, Torch, etc.. do not exploit the heterogeneous features of these devices except supporting GPUs. Modern edge devices contain different categories of heterogeneity i.e. clusters of different types of cores fabricated on the same chip. An example of such type of board is Jetson TX2 from Nvidia. To support DNN applications on heterogeneous edge devices, we have developed a framework which generates an efficient and balanced parallel pipelined implementation of CNN inference from a simplified template language interface. We leverage the input and output information provided by template language to generate a balanced pipeline. Since the cores are heterogeneous, we run a brief online training phase to find the best core distribution for a balanced and high throughput pipeline.
Our experiments show that a pipeline mapping configuration obtained from online training provides upto 22% faster pipeline as compared to the baseline. We compare against kernel level parallel implementation of widely used image classification CNN, VGG-16 on Nvidia Jetson TX2 board.
Poster presented by Pirah Noor Soomro at the LEGaTO Final Event: 'Low-Energy Heterogeneous Computing Workshop'
In recent years, we are witnessing a growing interest in large-scale situated systems, such as those falling under the umbrella of pervasive computing, cyber-physical systems, and the Internet of Things. The actor model is a natural choice for designing and implementing such systems, thanks to the ability of actors to address distribution, autonomy of control, and asynchronous communication: namely, it is convenient to view the pervasive cyberspace as an environment densely inhabited by mobile embedded actors. But how can an actor-centric development approach be fruitfully used to engineer a complex coordination strategy, where a myriad of devices/actors performs adaptive distributed sensing/processing/acting?
Aggregate computing has been proposed as an emerging paradigm that faces this general problem by adopting a global, system-level stance, allowing to specify and functionally compose collective behaviours by operating on diffused data structures, known as “computational fields”. In this paper, we develop on the idea of integrating the actor model and aggregate computing, presenting a software framework where declarative global-level system specifications are automatically turned into an underlying system of Scala/Akka actors carrying on computation over the pervasive computing system.
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.
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.
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.
Aggregate programming is a novel paradigm that addresses, at the core, many issues commonly found in the development of large-scale, situated, self-adaptive systems. It is a particular macro-programming approach where a developer expresses the behaviour of the system at the aggregate-level, by targeting the distributed computational machine which is given by the entire set of (possibly mobile and heterogeneous) networked devices pervading the environment. It is the model that takes care of turning a system-level behaviour specification into the concrete, device-centric programs executed locally by each component.
Aggregate computing is formally grounded in the field calculus, a minimal functional language that works with computational fields, i.e., distributed data structures mapping devices (digital representatives of space-time portions) to computational objects. Fields are a useful unifying abstraction for drawing a connection between the physical and the computational world, and between the local and global programming viewpoints. This approach is compositional, allowing to define layers of building blocks of increasing abstraction, and is also amenable to formal analyses.
In this talk, I will present scafi (SCAla with computational FIels), an aggregate computing framework for the Scala programming language which provides (i) an internal DSL for expressing aggregate computations as well as (ii) a library support for the configuration and execution of aggregate systems. There is no need to learn ad-hoc external DSLs anymore: with scafi, Scala programmers can instantaneously start playing with this new, intriguing development approach!
Aggregate computing is a research topic that is addressed by multiple perspectives: computational models, programming languages, distributed adaptive algorithms, middleware architectures, formal analysis, tools.
Recent works in the context of large-scale adaptive systems, such as those for the Internet of Things (IoT) scenario, promote aggregate programming [3], a development approach for distributed systems in which one programs the aggregate of computational devices instead of individual ones. This makes the resulting behaviour highly insensitive to network size, density, and topology, and as such, intrinsically robust to failures and changes to working conditions (e.g., location of computational load, communication technology, and computational infrastructure).
In this paper we are concerned with how this approach can impact mainstream software development, and hence outline a Scala-based support of aggregate programming, leveraging Scala advanced type system, DSL support, and actors mechanisms.
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.
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.
Compositional Blocks for Optimal Self-Healing GradientsRoberto Casadei
This papers revises the state-of-art in gradient computations, provides an evaluation of the performance of different gradient algorithms, presents a new algorithm with multi-path speed optimality, and shows how different techniques and algorithms can be used together to come up with a new optimal gradient implementation.
Computational steering Interactive Design-through-Analysis for Simulation Sci...SURFevents
Computational steering has evolved with advances in computing and visualization technologies. This session will showcase interactive design-through-analysis techniques that seamlessly integrate computer-aided design and simulation-based analysis tools. The approach replaces traditional simulation-based analysis with IgANets, which embeds physics-informed machine learning into the Isogeometric Analysis paradigm. IgANets train parametrized deep networks to predict solution coefficients of B-Spline/NURBS representations, enabling instantaneous evaluation and interactive feedback loops. A first-of-its-kind demonstrator coupling IgANets with a novel user frontend, developed at SURF, will be presented to initiate a new trend in computational steering towards interactive design-through-analysis.
Implementation of Efficiency CORDIC Algorithmfor Sine & Cosine GenerationIOSR Journals
Abstract: This paper presents an area-time efficient coordinate rotation digital computer (CORDIC) algorithm that completely eliminates the scale-factor. A generalized micro-rotation selection technique based on high speed most-significant-1-detection obviates the complex search algorithms for identifying the micro-rotations. This algorithm is redefined as the elementary angles for reducing the number of CORDIC iterations. Compared to the existing re-cursive architectures the proposed one has 17% lower slice-delay product on Xilinx Spartan XC2S200E device. The CORDIC processor pro-vides the flexibility to manipulate the number of iterations depending on the accuracy, area and latency requirements. Index Terms—coordinate rotation digital computer (CORDIC), cosine/sine, field-programmable gate array(FPGA),most-significant-1, recursive architecture.
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.
Edge computing brings cloud services closer to the edge of the network, where data originates, and dramatically reduces the network latency of the cloud. It is a bridge linking clouds and users making the foundation for novel interconnected applications. However, edge computing still faces many challenges like remote configuration, well-defined native applications model, and limited node capacity. It lacks geo-organization and a clear separation of concerns. As such edge computing is hard to be offered as a service for future real-time user-centric applications. This paper presents the dynamic organization of geo-distributed edge nodes into micro data-centers to cover any arbitrary area and expand capacity, availability, and reliability. A cloud organization is used as an influence with adaptations for a different environment, and a model for edge applications utilizing these adaptations is presented. It is argued that the presented model can be integrated into existing solutions or used as a base for the development of future systems. Furthermore, a clear separation of concerns is given for the proposed model. With the separation of concerns setup, edge-native applications model, and a unified node organization, we are moving towards the idea of edge computing as a service, like any other utility in cloud computing.
The Virtual Dimension Center (VDC) Fellbach has published the whitepaper "Virtual Techniques in Factory Planning". It presents applications, technologies and practical examples of Virtual and Augmented Reality (VR, AR) in factory planning. The conclusion is clear: the fields of application and potential benefits are numerous. Virtual hedging techniques help to reduce consequential costs.
Computational Fields meet Augmented Reality: Perspectives and ChallengesDanilo Pianini
Recently, two different techniques emerged that are tailored to environments pervaded of computational devices. On the one hand, aggregate programming, and especially computational fields-based programming, is a promising abstraction for coordinating the activities of multiple situated devices. On the other hand, augmented reality is emerging as new means of interaction with both software and physical entities. We note that both computational fields and augmented reality are tightly bound to the physical world, and that they both enrich it, with collective computation and augmented information respectively. This work presents an initial analysis of possible future research directions that involve these techniques, discussing some possible ways of integrating them.
ScaFi-Web, A Web-Based application for Field-based CoordinationGianluca Aguzzi
Field-based coordination is a model for expressing the coordination logic of large-scale adaptive systems, composing functional
blocks from a global perspective. As for any coordination model, a proper toolchain must be developed to support its adoption across all development phases. Under this point of view, the ScaFi toolkit provides a coordination language (field calculus) as a DSL internal in the Scala
language, a library of reusable building blocks, and an infrastructure
for simulation of distributed deployments. In this work, we enrich such
a toolchain by introducing ScaFi-Web, a web-based application allowing in-browser editing, execution, and visualisation of ScaFi programs.
ScaFi-Web facilitates access to the ScaFi coordination technology by
flattening the learning curve and simplifying configuration and requirements, thus promoting agile prototyping of field-based coordination specifications. In turn, this opens the door to easier demonstrations and experimentation, and also constitutes a stepping stone towards monitoring
and control of simulated/deployed systems.
Repository: https://github.com/scafi/scafi-web
PhD summary of Luuk Brederode, presented at 2023-10-17 to Veitch Lister Consu...Luuk Brederode
Summary of the results from the PhD research by Luuk Brederode (TU Delft, Goudappel / DAT.Mobility), as presented on 2023/10/17 for Veitch Lister Consulting.
Contents:
1)relevance of the research
2)positioning of the developed traffic assignment model STAQ and the research as a whole
3)results of the developed matrix adjustment method using STAQ: MSMC
4)results of the developed semi- dynamic version of STAQ
Programming (and Learning) Self-Adaptive & Self-Organising Behaviour with Sca...Roberto Casadei
Large-scale and fully distributed cyber-physical sys-
tems (CPS), such as swarm robotics or IoT systems, pose
significant challenges for programming and design. These chal-
lenges include promoting the desired (emergent) collective and
self-organising behaviour, dealing with failures, enacting decen-
tralised coordination, and deploying efficient executions. Aggre-
gate computing is a promising approach that aims to simplify
the design of such systems by providing a high-level abstraction
for describing collective and self-organising behaviours. In this
tutorial, we introduce a toolchain that supports the development
of aggregate computing applications, based on ScaFi (a Scala-
based language and toolkit for aggregate computing) and Al-
chemist (a simulator for CPS scenarios). We will showcase the
toolchain by means of a series of examples, ranging from simple
collective behaviours to more complex self-adaptive and self-
organising ones. Finally, we provide several pointers to research
opportunities (e.g., related to learning collective behaviours
and adaptive large-scale deployments) and applications (e.g., in
swarm robotics, edge-cloud ecosystems, and more).
Introduction to the 1st DISCOLI workshop on distributed collective intelligenceRoberto Casadei
The 1st DISCOLI workshop on DIStributed COLlective Intelligence is co-located with the 42nd IEEE International Conference on Distributed Computing Systems (ICDCS 2022) that will take place in Bologna, Italy, 10-13 July 2022.
Recent technological and scientific trends are promoting a vision where intelligence is more and more distributed and collective. Indeed, as computing and communication technologies are becoming increasingly pervasive, and complexity of systems is growing in terms of scale, heterogeneity, and interaction, hence the focus tends to shift from the intelligence of individual devices or agents to the collective intelligence (CI) emerging from a dynamic collection of diverse devices. Such intelligence would allow systems to address complex problems through proper coordination (e.g., cooperation or competition), to self-organise to promote functionality under changing environments, and to improve decision-making capabilities.
The workshop aims to provide a forum where researchers and practitioners can share and discuss fundamental concepts, models, and techniques for studying and implementing collectively intelligent distributed systems. Accordingly, it welcomes original research work providing ideas and technical contributions for promoting scientific discussion and practical adoption of CI mechanisms in engineered systems. As such, the workshop also welcomes cross-disciplinary contributions (e.g., extracting computational mechanisms from natural systems exhibiting forms of CI) and contributions from related research areas like coordination (the study of interaction), multi-agent systems (MAS), socio-technical systems, organisational paradigms, Wireless Sensor and Actuator Networks (WSANs), the Internet of Things (IoT), crowd computing, and swarm robotics.
The topics of interest include (but are not limited to) the following:
Algorithms for self-adaptive/self-organizing system behaviour
Algorithms of artificial collective intelligence (e.g., multi-agent reinforcement learning)
Techniques for task-specific collective intelligence
Extraction of collective knowledge in Internet of Things systems
Collaborations of humans and artificial agents in socio-technical systems
Formal models for computational collective intelligence
Design and verification of emergent properties in distributed systems
Coordination models and languages
Programming languages for distributed CI systems
Languages for multi-tier programming or macro-programming
CI for distributed wearable computing systems
Techniques for crowd computing systems and applications
Applications of distributed CI for smart environments (e.g., smart cities, smart buildings)
Tools for programming and simulation of multi-agent systems
6th eCAS workshop on Engineering Collective Adaptive SystemsRoberto Casadei
This is the presentation introducing the 6th eCAS workshop on Engineering Collective Adaptive Systems. It recaps its scope, provides data regarding this edition, provides an overview of the program and related initiatives.
Augmented Collective Digital Twins for Self-Organising Cyber-Physical SystemsRoberto Casadei
Context. Self-organising and collective computing
approaches are increasingly applied to large-scale cyber-physical
systems (CPS), enabling them to adapt and cooperate in dynamic
environments. Also, in CPS engineering, digital twins are often
leveraged to provide synchronised logical counterparts of physical
entities, whereas in sensor networks the different-but-related
concept of virtual device is used e.g. to abstract groups of sensors.
Vision. We envision the design concept of “augmented collective
digital twin” that captures digital twins at a collective level
extended with purely virtual devices. We argue that this concept
can foster the engineering of self-organising CPS by providing a
holistic, declarative, and integrated system view.
Method. From a review and proposed taxonomy of logical
devices comprehending both digital twins and virtual devices,
we reinterpret a meta-model for self-organising CPSs and discuss
how it can support augmented collective digital twins. We illus-
trate the approach in a crowd-aware navigation scenario, where
virtual devices are opportunistically integrated into the system
to enhance spatial coverage, improving navigation capabilities.
Conclusion. By integrating physical and virtual devices, the
novel notion of augmented collective digital twin paves the way
to self-improving system functionality and intelligent use of
resources in self-organising CPSs.
Testing: an Introduction and Panorama
- what testing is
- perspectives on testing
- xUnit, TDD, acceptance testing
- pointers to more stuff about testing
Novel scenarios like IoT and smart cities promote
a vision of computational ecosystems whereby heterogeneous
collectives of humans, devices and computing infrastructure
interact to provide various services. There, autonomous agents
with different capabilities are expected to cooperate towards
global goals in dependable ways. This is challenging, as deployments are within unknown, changing and loosely connected environments characterized by lack of centralized control, where
components may come and go, or disruption may be caused by
failures. Key issues include (i) how to leverage, functionally and
non-functionally, forms of opportunistic computing and locality
that often underlie IoT scenarios; (ii) how to design and operate
large-scale, resilient ecosystems through suitable assumptions,
decentralized control, and adaptive mechanisms; and (iii) how
to capture and enact “global” behaviors and properties, when
the system consists of heterogeneous, autonomous entities. In
this paper, we propose a model for resilient, collaborative edge-
enabled IoT that leverages spatial locality, opportunistic agents,
and coordinator nodes at the edge. The engineering approach
is declarative and configurable, and works by dynamically
dividing the environment into collaboration areas coordinated
by edge devices. We provide an implementation as a collective, self-organizing workflow based on Aggregate Computing,
provide evaluation by means of simulation, and finally discuss
properties and general applicability of the approach.
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.
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 .
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.
Richard's entangled aventures in wonderlandRichard 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.
Multi-source connectivity as the driver of solar wind variability in the heli...Sérgio Sacani
The ambient solar wind that flls the heliosphere originates from multiple
sources in the solar corona and is highly structured. It is often described
as high-speed, relatively homogeneous, plasma streams from coronal
holes and slow-speed, highly variable, streams whose source regions are
under debate. A key goal of ESA/NASA’s Solar Orbiter mission is to identify
solar wind sources and understand what drives the complexity seen in the
heliosphere. By combining magnetic feld modelling and spectroscopic
techniques with high-resolution observations and measurements, we show
that the solar wind variability detected in situ by Solar Orbiter in March
2022 is driven by spatio-temporal changes in the magnetic connectivity to
multiple sources in the solar atmosphere. The magnetic feld footpoints
connected to the spacecraft moved from the boundaries of a coronal hole
to one active region (12961) and then across to another region (12957). This
is refected in the in situ measurements, which show the transition from fast
to highly Alfvénic then to slow solar wind that is disrupted by the arrival of
a coronal mass ejection. Our results describe solar wind variability at 0.5 au
but are applicable to near-Earth observatories.
Professional air quality monitoring systems provide immediate, on-site data for analysis, compliance, and decision-making.
Monitor common gases, weather parameters, particulates.
This pdf is about the Schizophrenia.
For more details visit on YouTube; @SELF-EXPLANATORY;
https://www.youtube.com/channel/UCAiarMZDNhe1A3Rnpr_WkzA/videos
Thanks...!
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.
A Programming Framework for Collective Adaptive Ecosystems
1. A Programming Framework for Collective Adaptive
Ecosystems
Roberto Casadei
roby.casadei@unibo.it
PhD Student @
Department of Computer Science and Engineering (DISI), Cesena
Alma Mater Studiorum – Università of Bologna
October 5, 2018
https://www.slideshare.net/robertocasadei
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 1/55
2. Context (1/3)
How do we exploit such abundance?
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 2/55
3. Context (2/3)
How do we (smartly) exploit such resources/architectures?
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 3/55
4. Context (3/3)
Environment + (Mobile, Large-scale) Networks of { devices + people }
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 4/55
5. Introduction Computational Field Calculus
Outline
1 Background: Aggregate Computing
Introduction
Computational Field Calculus
2 SCAFI: Practical Aggregate Programming in Scala
3 Perspectives and Research Directions
4 Conclusion
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 5/55
6. Introduction Computational Field Calculus
Outline
1 Background: Aggregate Computing
Introduction
Computational Field Calculus
2 SCAFI: Practical Aggregate Programming in Scala
3 Perspectives and Research Directions
4 Conclusion
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 6/55
7. Introduction Computational Field Calculus
The Aggregate Computing approach
Issues proposed solution
Getting local-to-global mapping right is hard
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 7/55
8. Introduction Computational Field Calculus
The Aggregate Computing approach
Issues proposed solution
Getting local-to-global mapping right is hard
global spec + automatic global-to-local
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 7/55
9. Introduction Computational Field Calculus
The Aggregate Computing approach
Issues proposed solution
Getting local-to-global mapping right is hard
global spec + automatic global-to-local
Horizontal scalability (cf., bottlenecks..) & fault-tolerance (cf., SPoF)
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 7/55
10. Introduction Computational Field Calculus
The Aggregate Computing approach
Issues proposed solution
Getting local-to-global mapping right is hard
global spec + automatic global-to-local
Horizontal scalability (cf., bottlenecks..) & fault-tolerance (cf., SPoF)
asynchronous, decentralised computation
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 7/55
11. Introduction Computational Field Calculus
The Aggregate Computing approach
Issues proposed solution
Getting local-to-global mapping right is hard
global spec + automatic global-to-local
Horizontal scalability (cf., bottlenecks..) & fault-tolerance (cf., SPoF)
asynchronous, decentralised computation
Environment change, open system boundaries
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 7/55
12. Introduction Computational Field Calculus
The Aggregate Computing approach
Issues proposed solution
Getting local-to-global mapping right is hard
global spec + automatic global-to-local
Horizontal scalability (cf., bottlenecks..) & fault-tolerance (cf., SPoF)
asynchronous, decentralised computation
Environment change, open system boundaries
“continuous execution”, self-*
Exploit available infrastructure
flexible application partitioning & execution
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 7/55
13. Introduction Computational Field Calculus
Aggregate Computing
Motto: program the aggregate, not individual devices!
1) Ref. computing machine the entire aggregate of devices
Like a single “computational body”
As a discrete approximation of the actual space
2) Ref. elaboration process atomic manipulation of collective data structures (fields)
3) Actual computation a proximity-based self-organised system (“under-the-hood”)
neighborhood
device
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 8/55
14. Introduction Computational Field Calculus
Aggregate Programming Stack [BPV15]
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 9/55
15. Introduction Computational Field Calculus
Past, Present, Future of Aggregate Computing [VBDACP18]
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 10/55
16. Introduction Computational Field Calculus
Aggregate Computing » Applications
Applications
Crowd management services [BPV15; CPV16; CFPRSV18]
Rescue scenarios in emergency situations [VPRC17]
Distributed sensing/event recognition [CV18]
Sharing of airborne sensors [BULM16]
Geometric self-construction [BDUVC13]
Swarms, flock formations, etc. [BDUVC13]
Coordinating recovery operations for networks of enterprise services [CBP15]
Particular pieces of (distributed, adaptive) logic in larger systems [CV18]
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 11/55
17. Introduction Computational Field Calculus
Outline
1 Background: Aggregate Computing
Introduction
Computational Field Calculus
2 SCAFI: Practical Aggregate Programming in Scala
3 Perspectives and Research Directions
4 Conclusion
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 12/55
18. Introduction Computational Field Calculus
Computational fields [DVB16] (1/2)
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 (e.g., devices cannot move too fast)
Computational 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
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 13/55
19. Introduction Computational Field Calculus
Computational fields [DVB16] (2/2)
Fields can be considered across different perspectives
Computational: fields map devices to the results of their computations
“Converge” with density of events (losing track of device identities) [BVPD17]
Spatio-temporal: fields map space-time to values
Situated devices approximate space-time
Dynamical: fields evolve over time as devices compute
(Hopefully) Eventually reaching a fixpoint (self-stabilisation) [VABDP18]
Structural: the domain of fields is equipped with a neighbouring relation (communication)
Functional (I/O): field computations as functions from sensor fields to actuation fields
neighborhood
device
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 14/55
20. Introduction Computational Field Calculus
Computational fields » a detailed view
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 15/55
21. Introduction Computational Field Calculus
The “channel” example: computing a route (1/5)
Stabilised time-snapshot of the “channel” boolean field
How to program it to be unaware of the map, resilient to changes/faults, and
infrastructure-independent?
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 16/55
22. Introduction Computational Field Calculus
The “channel” example: computing a route (2/5)
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 17/55
23. Introduction Computational Field Calculus
The “channel” example: computing a route (3/5)
Functional approach: what we want to express
class ChannelProgram extends AggregateProgram with ChannelAPI {
def main = channel(isSource, isDestination, width)
}
Just give this aggregate program to every device in the system
The AC platform will transparently handle necessary computations and interactions
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 18/55
24. Introduction Computational Field Calculus
The “channel” example: computing a route (4/5)
def channel(src: Boolean, dest: Boolean, width: Double) =
distTo(src) + distTo(dest) <= distBetween(src,dest) + width
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 19/55
26. Introduction Computational Field Calculus
Field calculus [DVPB15]
Key idea
a sort of λ-calculus with “everything is a field” philosophy!
Syntax (slightly refactored, semi-formal version of [DVPB15])
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 basic types (numbers, bools, strings..), collection types (tuples, maps, ..), etc.
f is a user-defined function (the key aggregate computing abstraction)
o is a built-in local operator (pure math, local sensors,..)
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 21/55
27. Introduction Computational Field Calculus
Intuition of global-level (denotational) semantics
The four main constructs at work
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]
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 22/55
28. Introduction Computational Field Calculus
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 [DVPB15]
implicit/explicit device selection of what code execute [VPRBC15]
“collective teams” forming based on the selected code [VPRBC15]
distributed trust mechanisms [CAV18a]
⇒ ..and critically, we can smoothly compose/nest the above features..
Key properties
Self-stabilising fragment [VABDP18]
Eventual consistent fragment (a.k.a. density-independence) [BVPD17]
Universality [ABDV18]
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 23/55
29. Aggregate Computing API/DSL Aggregate Computing Platform
Outline
1 Background: Aggregate Computing
2 SCAFI: Practical Aggregate Programming in Scala
Aggregate Computing API/DSL
Aggregate Computing Platform
3 Perspectives and Research Directions
4 Conclusion
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 24/55
30. Aggregate Computing API/DSL Aggregate Computing Platform
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
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 25/55
31. Aggregate Computing API/DSL Aggregate Computing Platform
SCAFI: Scala with Computational Fields
Goal: bring Aggregate Computing to mainstream SW development
What
SCAFI [CV16] 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 [DVPB15]
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
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 26/55
32. Aggregate Computing API/DSL Aggregate Computing Platform
Outline
1 Background: Aggregate Computing
2 SCAFI: Practical Aggregate Programming in Scala
Aggregate Computing API/DSL
Aggregate Computing Platform
3 Perspectives and Research Directions
4 Conclusion
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 27/55
33. Aggregate Computing API/DSL Aggregate Computing Platform
Aggregate Programs
So, what is an aggregate program?
The “global” program
“Local” programs automatically 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
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 28/55
34. Aggregate Computing API/DSL Aggregate Computing Platform
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
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 29/55
35. Aggregate Computing API/DSL Aggregate Computing Platform
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
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 30/55
36. Aggregate Computing API/DSL Aggregate Computing Platform
How Aggregate Computing works
Repeated execution provides reactivity and incremental adaptivity
Broadcast + aligned interaction allows building & spreading local/global contexts
Neighbour trees Evaluation tree
rep
if
nbr fun
time
persistence
domain
restriction
neighbour
alignment
tree
expansion
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 31/55
37. Aggregate Computing API/DSL Aggregate Computing Platform
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("sens2")) "hot" else "cold"
[06] mid() // Dev 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)
})
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 32/55
38. Aggregate Computing API/DSL Aggregate Computing Platform
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)(d =>
mux(src){ 0.0 }{ minHoodPlus(nbr{d} + 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))
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 33/55
39. Aggregate Computing API/DSL Aggregate Computing Platform
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)
}
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 34/55
40. Aggregate Computing API/DSL Aggregate Computing Platform
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)
}
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 34/55
41. Aggregate Computing API/DSL Aggregate Computing Platform
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)
}
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 34/55
42. Aggregate Computing API/DSL Aggregate Computing Platform
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)
}
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 34/55
43. Aggregate Computing API/DSL Aggregate Computing Platform
Outline
1 Background: Aggregate Computing
2 SCAFI: Practical Aggregate Programming in Scala
Aggregate Computing API/DSL
Aggregate Computing Platform
3 Perspectives and Research Directions
4 Conclusion
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 35/55
44. Aggregate Computing API/DSL Aggregate Computing Platform
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)
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 36/55
45. Aggregate Computing API/DSL Aggregate Computing Platform
(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)
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 37/55
46. Aggregate Computing API/DSL Aggregate Computing Platform
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
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 38/55
47. Aggregate Computing API/DSL Aggregate Computing Platform
Aggregate Computing and Actor Systems [CV18]
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 39/55
48. Outline
1 Background: Aggregate Computing
2 SCAFI: Practical Aggregate Programming in Scala
3 Perspectives and Research Directions
4 Conclusion
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 40/55
49. State-of-the-art
Main results
Higher-Order Field Calculus & code mobility [DVPB15]
Self-stabilisation and substitution semantics [VABDP18]
Space-Time Universality [ABDV18]
“Eventual” consistency [BVPD17]
Variants of key algorithms
Gradients: Flex, CRF, BIS, SVD, ULT [ACDV17]
Collection: single-path, (weighted) multi-path, via time-replicated gossip [PBV16]
Toolchain
DSLs: Protelis [PBV15], SCAFI [CV16; CPV16]
Platform [VCP16; CV18]
Miscellaneous
Attack-resistant aggregate computations via trust [CAV18b]
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 41/55
50. Future work
Research directions
Elaboration of libraries – modular; type safe; usable; ..
Techniques to control dynamics – feedback; stability; convergence; ..
Security — code mobility, trust fields [CAV18a]
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
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 42/55
51. 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 (strategically optimising)
⇓
Opportunistic deployment and execution
Run-time, automatic (tactically optimising)
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 43/55
52. Execution strategies and architectures [VCP16]
Adaptivity requirements demand for fluid responsibilities
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 44/55
53. Aggregate Processes (1/2)
Motivation
Field calculus is space-time universal [ABDV18], but expressing
a dynamic number of dynamically managed aggregate 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
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 45/55
54. Aggregate Processes (2/2)
New construct: spawn
Generation: activation of new process instances
Evolution: propagation and retraction of processes
Fusion: merging of “identical” process instances
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 46/55
55. 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)
}
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 47/55
56. Outline
1 Background: Aggregate Computing
2 SCAFI: Practical Aggregate Programming in Scala
3 Perspectives and Research Directions
4 Conclusion
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 48/55
57. Wrap-up
Aggregate Computing: key takeaways
Aggregate computing:
1) has a functional compositional model for distributed algorithms
2) has a practical toolchain (SCAFI): you can experiment with it
3) targets abstractions and platforms for future IoT ecosystems
* A bunch of results and tools emerged, many to come
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 49/55
58. Who we are
Raytheon BBN Technologies, USA
Jacob Beal, Senior Scientist
Alma Mater Studiorum – Università di Bologna, Italy
Mirko Viroli, Full Professor
Danilo Pianini, Post-Doc
Roberto Casadei, PhD Student – roby.casadei@unibo.it
Università degli Studi di Torino, Italy
Ferruccio Damiani, Associate Professor
Giorgio Audrito, Post-Doc
R. Casadei Background: Aggregate Computing SCAFI Perspectives and Research Directions Conclusion 50/55
59. References (1/5)
[ABDV18] Giorgio Audrito, Jacob Beal, Ferruccio Damiani, and Mirko Viroli. “Space-Time
Universality of Field Calculus”. In: International Conference on Coordination Languages
and Models. Springer. 2018, pp. 1–20.
[ACDV17] Giorgio Audrito, Roberto Casadei, Ferruccio Damiani, and Mirko Viroli. “Compositional
Blocks for Optimal Self-Healing Gradients”. In: Self-Adaptive and Self-Organising
Systems (SASO), IEEE International Conference on. IEEE. 2017.
[BDUVC13] Jacob Beal, Stefan Dulman, Kyle Usbeck, Mirko Viroli, and Nikolaus Correll. “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.
[BPV15] Jacob Beal, Danilo Pianini, and Mirko Viroli. “Aggregate Programming for the Internet of
Things”. In: IEEE Computer (2015). ISSN: 1364-503X.
[BULM16] Jacob Beal, Kyle Usbeck, Joseph Loyall, and James Metzler. “Opportunistic sharing of
airborne sensors”. In: Distributed Computing in Sensor Systems (DCOSS), 2016
International Conference on. IEEE. 2016, pp. 25–32.
[BVPD17] Jacob Beal, Mirko Viroli, Danilo Pianini, and Ferruccio Damiani. “Self-adaptation to
Device Distribution in the Internet of Things”. In: ACM Transactions on Autonomous and
Adaptive Systems (TAAS) 12.3 (2017), p. 12.
R. Casadei Appendix References 51/55
60. References (2/5)
[CAV18a] 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.
[CAV18b] Roberto Casadei, Aldini Alessandro, and Mirko Viroli. “Towards attack-resistant
Aggregate Computing using trust mechanisms”. In: Science of Computer Programming
167 (2018), pp. 114–137. ISSN: 0167-6423. DOI: 10.1016/j.scico.2018.07.006.
URL: http:
//www.sciencedirect.com/science/article/pii/S0167642318303046.
[CBP15] Shane S Clark, Jacob Beal, and Partha Pal. “Distributed recovery for enterprise
services”. In: Self-Adaptive and Self-Organizing Systems (SASO), 2015 IEEE 9th
International Conference on. IEEE. 2015, pp. 111–120.
[CFPRSV18] Roberto Casadei, Giancarlo Fortino, Danilo Pianini, Wilma Russo, Claudio Savaglio,
and Mirko Viroli. “Modelling and Simulation of Opportunistic IoT Services with
Aggregate Computing”. In: Future Generation Computer Systems 91 (2018),
pp. 252–262. ISSN: 0167-739X. DOI: 10.1016/j.future.2018.09.005. URL:
https://doi.org/10.1016/j.future.2018.09.005.
[CPV16] Roberto Casadei, Danilo Pianini, and Mirko Viroli. “Simulating Large-scale Aggregate
MASs with Alchemist and Scala”. In: Proceedings of the Federated Conference on
Computer Science and Information Systems (FedCSIS 2016). Ed. by Maria Ganzha,
Leszek Maciaszek, and Marcin Paprzycki. Gdansk, Poland: IEEE Computer Society
Press, 2016.
R. Casadei Appendix References 52/55
61. References (3/5)
[CV16] 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.
[CV18] Roberto Casadei and Mirko Viroli. “Programming Actor-Based Collective Adaptive
Systems”. In: Programming with Actors: State-of-the-Art and Research Perspectives.
Ed. by Alessandro Ricci and Philipp Haller. Vol. 10789. Lecture Notes in Computer
Science. Springer International Publishing, 2018, pp. 94–122. DOI:
10.1007/978-3-030-00302-9_4. URL:
https://doi.org/10.1007/978-3-030-00302-9_4.
[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.
[DVPB15] Ferruccio Damiani, Mirko Viroli, Danilo Pianini, and Jacob Beal. “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-9_8.
R. Casadei Appendix References 53/55
62. References (4/5)
[PBV15] Danilo Pianini, Jacob Beal, and Mirko Viroli. “Practical Aggregate Programming with
PROTELIS”. In: ACM Symposium on Applied Computing (SAC 2015). 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.
[VABDP18] Mirko Viroli, Giorgio Audrito, Jacob Beal, Ferruccio Damiani, and Danilo Pianini.
“Engineering resilient collective adaptive systems by self-stabilisation”. In: ACM
Transactions on Modeling and Computer Simulation (TOMACS) 28.2 (2018), p. 16.
[VBDACP18] Mirko Viroli, Jacob Beal, Ferruccio Damiani, Giorgio Audrito, Roberto Casadei, and
Danilo Pianini. “From Field-Based Coordination to Aggregate Computing”. In:
Coordination Models and Languages - 20th IFIP WG 6.1 International Conference,
COORDINATION 2018, Held as Part of the 13th International Federated Conference on
Distributed Computing Techniques, DisCoTec 2018, Madrid, Spain, June 18-21, 2018.
Proceedings. Ed. by Giovanna Di Marzo Serugendo and Michele Loreti. Vol. 10852.
Lecture Notes in Computer Science. Springer, 2018, pp. 252–279. DOI:
10.1007/978-3-319-92408-3_12. URL:
https://doi.org/10.1007/978-3-319-92408-3_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.
R. Casadei Appendix References 54/55
63. References (5/5)
[VPRBC15] Mirko Viroli, Danilo Pianini, Alessandro Ricci, Pietro Brunetti, and Angelo Croatti.
“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}.
[VPRC17] Mirko Viroli, Danilo Pianini, Alessandro Ricci, and Angelo Croatti. “Aggregate plans for
multiagent systems”. In: International Journal of Agent-Oriented Software Engineering
4.5 (2017), pp. 336–365. ISSN: 1746-1375.
R. Casadei Appendix References 55/55